IOC vs FOK, ordres au marché et à cours limité : les types d’ordres pour l’exécution algorithmique sur le forex novembre 4, 2026 – Posted in: Arbitrage Software, Forex trading

BJF TRADING GROUP · EXÉCUTION FOREX

IOC, FOK, au marché ou à cours limité : choisir l’ordre adapté à la transaction

Choisir un type d’ordre, c’est décider ce que vous préférez subir : un moins bon prix, une exécution plus petite ou pas d’exécution du tout. Ce guide montre comment chaque instruction se comporte dans le carnet d’ordres, dans les messages FIX et sous last look, avec des exemples chiffrés pour un algorithme qui doit choisir en quelques millisecondes.

Réponse courte : IOC vs FOK. Un ordre Immediate-or-Cancel (IOC) prend tout ce qui est disponible immédiatement à votre prix ou mieux et annule le reste : une exécution partielle est donc possible. Un ordre Fill-or-Kill (FOK) doit être exécuté en totalité immédiatement, sinon il est entièrement annulé : vous obtenez tout ou rien. Utilisez IOC lorsque n’importe quelle partie de la taille vous est utile, et FOK lorsqu’une position partielle serait pire que pas de position du tout.

Type d’ordre et durée de validité : deux décisions distinctes

La plupart des glossaires présentent les ordres au marché, à cours limité, stop, IOC et FOK comme cinq options d’un même menu. Ce n’est pas le cas. Derrière ces termes se cachent deux questions indépendantes, et un algorithme doit répondre aux deux pour chaque ordre :

  • Quel prix suis-je prêt à accepter ? C’est le type d’ordre : au marché (n’importe quel prix), à cours limité (ce prix ou mieux), stop (activation lorsqu’un seuil de déclenchement est traité ou coté).
  • Combien de temps l’ordre peut-il rester actif ? C’est la durée de validité, ou TIF (time in force) : immédiate (IOC, FOK), jusqu’à la fin de la session (Day), jusqu’à annulation (GTC) ou jusqu’à une heure donnée (GTD).

IOC et FOK ne sont donc pas des alternatives à l’ordre à cours limité. Ce sont des durées de vie qui s’y rattachent. « Limit IOC » et « Limit FOK » sont les deux instructions agressives les plus courantes sur le forex algorithmique, et le protocole FIX conserve ces deux décisions dans des champs séparés : OrdType (tag 40) et TimeInForce (tag 59).

PrixType d’ordre, tag 40Au marché, limite, stop, stop-limite. Fixe le pire prix que vous acceptez.
TempsDurée de validité, tag 59IOC, FOK, Day, GTC, GTD. Fixe combien de temps l’ordre peut attendre.
TailleRègle d’exécutionTotalité uniquement (FOK), toute taille (IOC) ou quantité minimale (tag 110) lorsqu’elle est prise en charge.

Les ordres au marché sur le forex : ce que « au marché » signifie vraiment

Un ordre au marché dit : exécutez-moi maintenant, le prix est secondaire. Il n’a pas de limite : il offre donc la plus grande certitude d’exécution et aucune protection sur le prix obtenu. Si le carnet a bougé ou s’il est peu profond, l’ordre remonte les niveaux disponibles jusqu’à ce que la taille soit exécutée. Ce coût, c’est le slippage, traité en détail dans notre guide sur la mesure et la réduction du slippage sur le forex.

Le forex ajoute deux particularités que les explications centrées sur les marchés boursiers passent sous silence :

  • Il n’existe pas de carnet central unique. Votre courtier ou votre ECN affiche un flux agrégé provenant de plusieurs fournisseurs de liquidité. « Au marché » signifie au meilleur prix que votre plateforme peut obtenir de ce flux, et non à un prix de marché universel.
  • Un ordre au marché a tout de même une durée de vie implicite. De nombreuses plateformes traitent en interne les ordres au marché comme des IOC ou des FOK : exécuter ce qui peut l’être maintenant et signaler le reste. Certaines permettent d’ajouter un écart maximal, ce qui transforme de fait l’ordre en ordre à cours limité. Ne présumez de rien : lisez les spécifications de la plateforme.

Dans un algorithme, le rôle pratique d’un ordre au marché est restreint. Il a sa place là où ne pas traiter est le plus grand danger, par exemple pour clôturer une position qui a perdu sa couverture.

Ordres à cours limité, limites exécutables et ordres stop

Ordres à cours limité passifs

Un ordre à cours limité placé à distance du prix actuel reste dans le carnet et attend. Une limite d’achat sous l’ask ne prend pas de liquidité : elle en offre. Vous pouvez gagner le spread au lieu de le payer, mais vous assumez un risque de file d’attente et de sélection adverse : les ordres passifs ont tendance à être exécutés lorsque le marché les traverse. Les ordres passifs sont normalement associés à Day, GTC ou GTD.

Limites exécutables (marketable limit)

Une limite d’achat placée au niveau de l’ask actuel ou au-dessus s’exécute immédiatement, comme un ordre au marché, mais elle ne peut pas être exécutée au-delà de sa limite. Cette « limite exécutable » est le cheval de bataille de l’exécution automatisée. Combinée à IOC, elle signifie : prendre la liquidité maintenant, jusqu’à ce prix, et ne rien laisser dans le carnet.

L’amélioration de prix est souvent mal comprise. Une limite est le pire prix acceptable, et non le prix d’exécution. Si vous achetez avec une limite à 1.08510 et que l’ask est à 1.08502, vous devriez recevoir 1.08502 ou les niveaux suivants jusqu’à votre limite.

Ordres stop et stop-limite

Un ordre stop reste dormant jusqu’à ce que le seuil de déclenchement soit atteint, puis il devient un ordre au marché. Un stop-limite devient quant à lui un ordre à cours limité. Le premier garantit l’activation, pas le prix. Le second plafonne le prix, mais peut vous laisser sans exécution précisément lorsque le marché fait un gap, ce qui est une propriété fâcheuse pour un stop de protection. L’endroit où réside le stop compte aussi : un stop conservé sur la plateforme survit à votre déconnexion, alors qu’un stop simulé dans votre propre logiciel n’y survit pas.

Durée de validité : la liste complète

Instruction FIX 59 Durée de vie Exécution partielle ? Usage typique
Day 0 Jusqu’à la fin de la session Oui Cotations passives pendant une session définie
GTC (Good Till Cancel) 1 Jusqu’à annulation Oui Entrées en attente, ordres take-profit et stop
IOC (Immediate or Cancel) 3 Exécution immédiate, reste annulé Oui Prise de liquidité lorsque toute partie de la taille est utile
FOK (Fill or Kill) 4 Taille complète immédiatement ou rien Non Entrées tout-ou-rien et jambes à taille fixe
GTD (Good Till Date) 6 Jusqu’à une heure précise (tag 126 ou 432) Oui Cotations à expiration ferme, par exemple avant une annonce économique

Les valeurs proviennent de la spécification FIX 4.4. Les plateformes ne prennent normalement en charge qu’une partie de la liste, et certaines réservent un TIF à certains types d’ordres : les règles d’engagement de votre courtier priment donc sur tout tableau publié dans un article.

IOC vs FOK vs marché : un carnet d’ordres, trois résultats

Prenons un cas concret. Un algorithme veut acheter 2,000,000 EURUSD. Le meilleur ask est à 1.08500, et voici le côté vendeur visible à l’arrivée de l’ordre :

Prix ask Taille disponible Cumul
1.08500 500,000 500,000
1.08501 500,000 1,000,000
1.08503 1,000,000 2,000,000
1.08506 2,000,000 4,000,000
Parcours du carnet d'ordres comparant un ordre au marché, une limite IOC et une limite FOK pour un achat de 2 millions d'EURUSD : l'ordre au marché est entièrement exécuté à 1.085018, l'IOC exécute 1 million à 1.085005 et le FOK est annulé
Le même carnet, trois instructions. Le carnet est un exemple construit ; les calculs sont exacts.
Instruction Exécuté Prix moyen Coût par rapport au meilleur ask Résultat
Au marché, 2M 2,000,000 1.085018 0.175 pip, environ $35 Exécuté, à un prix que vous n’avez pas choisi
Limite 1.08502 IOC, 2M 1,000,000 1.085005 0.05 pip, environ $5 La moitié de la taille, 1M annulé
Limite 1.08502 FOK, 2M 0 Aucun $0 Annulé : seulement 1M au niveau de la limite ou en dessous
Limite 1.08503 FOK, 2M 2,000,000 1.085018 0.175 pip, environ $35 Exécuté : la limite était assez large

La dernière ligne est la plus subtile. Un dixième de pip supplémentaire a transformé le FOK : d’aucune transaction, on passe à une exécution complète, à une moyenne meilleure que sa limite. FOK ne signifie pas « serré ». Cela signifie « toute la taille doit tenir sous ce prix à cet instant ». L’IOC et le FOK à la même limite voient la même liquidité. Ils ne diffèrent que par ce qu’ils font lorsqu’elle ne suffit pas.

Il n’existe pas non plus d’instruction universellement moins chère. L’IOC à $5 semble une aubaine face à l’ordre au marché à $35, mais il n’a livré que la moitié de la position. Si le 1M restant doit être acheté plus tard à un moins bon prix, la comparaison change. C’est ce coût de la taille manquante qui fait l’objet de la suite de ce guide.

À quoi ressemblent les ordres en FIX

Sur une connexion FIX API, vous indiquez explicitement chaque instruction dans un message NewOrderSingle (35=D). Réduit aux champs qui comptent, l’ordre IOC de l’exemple se présente ainsi :

35=D | 11=A1001 | 55=EUR/USD | 54=1 | 38=2000000 | 40=2 | 44=1.08502 | 59=3

Remplacez 59=3 par 59=4 et le même ordre devient un FOK. Supprimez le prix et définissez 40=1 : c’est un ordre au marché. L’en-tête, la somme de contrôle, les horodatages et les champs de compte sont omis ici, et le format du symbole varie selon la plateforme : certaines utilisent des identifiants numériques.

Tag Champ Valeurs que vous rencontrerez
40 OrdType 1 Market (au marché), 2 Limit (limite), 3 Stop, 4 Stop-limit (stop-limite), D Previously quoted (précédemment coté)
59 TimeInForce 0 Day, 1 GTC, 3 IOC, 4 FOK, 6 GTD
110 MinQty Quantité minimale devant être exécutée, lorsqu’elle est prise en charge
150 ExecType 0 New (nouveau), F Trade (transaction), 4 Canceled (annulé), 8 Rejected (rejeté), C Expired (expiré)
39 OrdStatus 0 New (nouveau), 1 Partially filled (partiellement exécuté), 2 Filled (exécuté), 4 Canceled (annulé), 8 Rejected (rejeté), C Expired (expiré)
14 / 151 CumQty / LeavesQty Exécuté jusqu’ici / encore ouvert. LeavesQty 0 signifie que l’ordre est terminé
31 / 32 / 6 LastPx / LastQty / AvgPx Prix et taille de cette exécution / moyenne de toutes les exécutions

La difficulté n’est pas d’envoyer l’ordre, mais de lire la réponse. Un seul IOC peut produire une séquence d’ExecutionReports (35=8), et la façon dont le reliquat est signalé dépend de la plateforme.

Cycle de vie FIX d'un ordre IOC de 2 millions : NewOrderSingle, deux rapports d'exécution de transaction avec un CumQty qui monte à 1 million, puis un rapport d'annulation ou d'expiration pour le 1 million restant avec LeavesQty à zéro, et l'algorithme qui couvre uniquement la quantité exécutée
Un IOC n’est terminé que lorsque LeavesQty atteint 0. Votre position est CumQty, jamais la quantité demandée.

Certaines plateformes envoient un accusé de réception supplémentaire (150=0) avant les exécutions. D’autres livrent une seule exécution agrégée. Les sessions FIX 4.2 utilisent pour les exécutions des valeurs ExecType différentes (1 et 2) de celles de FIX 4.3 et versions ultérieures (F). Un gestionnaire robuste s’appuie donc sur CumQty, LeavesQty et OrdStatus, et non sur un nombre fixe de messages. La présentation détaillée du protocole FIX explique la couche de session sous-jacente à ces messages.

Liquidité full-amount et last look : pourquoi le forex est différent

Les explications centrées sur la bourse supposent un carnet d’ordres central où une offre affichée est ferme. Les plateformes forex peuvent se comporter différemment sur deux points qui affectent directement IOC et FOK.

Liquidité sweepable vs full-amount. Dans un carnet sweepable, un ordre peut prendre plusieurs niveaux auprès de plusieurs fournisseurs, comme dans l’exemple ci-dessus. Dans la tarification full-amount, un fournisseur cote un seul prix pour la taille entière et les paliers ne s’additionnent pas : un FOK de 2M doit donc être comparé au palier de 2M, et non à la somme des cotations de 1M. Un même affichage de profondeur peut ainsi signifier des choses différentes.

Last look. Lorsqu’un fournisseur applique le last look, votre ordre est une demande qu’il peut encore rejeter après un bref délai de rétention. Un FOK peut être rejeté alors que le carnet affichait une taille suffisante au moment de l’envoi, et un IOC peut revenir avec une taille inférieure à celle affichée. Le FX Global Code (code de conduite mondial du marché des changes) demande aux fournisseurs qui utilisent le last look de communiquer cette pratique à leurs clients : réclamez donc cette information. Les rejets liés au last look ne sont visibles dans votre journal que si vous les enregistrez. Les mécanismes sont détaillés dans notre guide sur l’exécution des courtiers, A-book, B-book et last look.

Pourquoi c’est important pour la mesure : un ordre agressif sur une plateforme à last look peut afficher d’excellentes statistiques de slippage, car seules les exécutions qui ont convenu au fournisseur figurent dans l’échantillon. Un slippage moyen faible associé à un taux de rejet élevé n’est pas une bonne exécution.

Où placer la limite : un modèle chiffré

Pour un IOC ou un FOK, le paramètre clé n’est pas le TIF, mais le prix limite. Placez-le à la cotation actuelle et la plupart des signaux seront manqués. Laissez-le sans limite et les pires exécutions absorberont votre avantage. Entre ces extrêmes, il existe une réponse calculable.

Considérons un signal de courte durée avec un avantage attendu de 1.2 pips après commissions, mesuré à partir du prix du signal. Entre le signal et l’arrivée sur la plateforme, le prix bouge. Supposons deux régimes : dans 80% des cas, le prix dérive d’environ 0.2 pip en votre défaveur (écart-type de 0.3 pip), et dans 20% des cas, un mouvement rapide l’éloigne d’environ 2 pips (écart-type de 1 pip). Ces données sont illustratives. En pratique, vous les estimez à partir de votre propre journal d’ordres.

Modèle illustratif : le gain net attendu en pips par signal augmente avec la tolérance de la limite, culmine près de 0.82 pips pour une tolérance d'environ 1.2 pips et retombe à 0.64 pips pour un ordre au marché sans limite, tandis que le taux d'exécution passe de 21 pour cent à 100 pour cent
Modèle illustratif, et non résultats de trading : avantage de 1.2 pip et dérive du prix à deux régimes. Une exécution a lieu lorsque la dérive reste dans la tolérance.
Tolérance de la limite par rapport au prix du signal Taux d’exécution Net moyen par exécution Net attendu par signal
0 pip (limite au prix du signal) 20.7% 1.38 pips 0.29 pip
0.3 pip 51.3% 1.18 pips 0.61 pip
0.6 pip 74.3% 1.05 pips 0.78 pip
1.2 pips (égal à l’avantage) 84.2% 0.98 pip 0.82 pip
2.0 pips 90.0% 0.89 pip 0.80 pip
Sans limite (ordre au marché) 100% 0.64 pip 0.64 pip

Trois conclusions restent valables bien au-delà de cet exemple :

  • La meilleure limite est le prix d’équilibre, pas la cotation. Toute exécution qui laisse encore un profit attendu positif mérite d’être prise. Dans ce modèle, le maximum se situe exactement là où la tolérance égale l’avantage, car l’exécution marginale suivante ne rapporte rien.
  • La courbe est plate près du sommet. Entre 0.8 et 2 pips, le profit attendu change à peine. Vous n’avez pas besoin d’une tolérance précise, mais il vous en faut une.
  • Le prix d’exécution moyen est un objectif trompeur. La limite la plus serrée offre le meilleur prix par exécution (1.38 pips) et le pire résultat par signal (0.29 pip), car 79% des signaux ne sont jamais traités.

Le modèle ignore les effets de file d’attente et suppose que toute la taille est exécutée dès que la limite est atteinte. Pour des ordres plus importants, refaites le calcul avec votre profondeur réelle, car la limite détermine aussi la taille qui peut passer. Vérifiez les hypothèses avec des données : notre guide sur l’écart entre les backtests et l’exécution réelle montre comment intégrer le temps d’exécution dans un test.

Gérer les exécutions partielles sans créer de nouveau risque

Une exécution partielle n’est pas une erreur, mais un nouvel état pour lequel l’algorithme doit disposer d’une règle. FOK évite cet état à l’entrée ; IOC déplace le problème dans votre logique. Définissez la politique avant de passer en réel :

Politique pour le reliquat Quand elle convient Risque à contrôler
Accepter et gérer ce qui a été exécuté Entrées dont l’avantage ne dépend pas de la taille Position trop petite pour couvrir les coûts fixes
Renvoyer le reliquat à un nouveau prix Signal encore valide, avantage toujours supérieur à la tolérance Course après le prix. Plafonnez les tentatives et revérifiez l’avantage à chaque fois
Couvrir ou compléter sur une autre plateforme Transactions à plusieurs jambes Pas de lot différents et nouveau risque de non-exécution
Solder la partie exécutée Exécution inférieure à la taille viable Payer le spread deux fois

Les transactions à deux jambes exigent le plus d’attention. Supposons qu’une transaction couverte achète 2M sur la plateforme A en IOC et vende sur la plateforme B. Si A exécute 1M et que l’algorithme vend quand même les 2M prévus, il détient une position courte ouverte de 1M. À environ $100 par pip par million sur l’EURUSD, un mouvement défavorable de 10 pips coûte $1,000, ce qui dépasse facilement l’avantage de nombreuses transactions. La règle est simple : dimensionnez la seconde jambe à partir du CumQty de la première, jamais de la quantité demandée.

Convertissez aussi vers la grille de tailles de la seconde plateforme. Si la première jambe exécute 1,370,000 et que la plateforme B accepte des pas de 100,000, vous pouvez couvrir 1,400,000 ou 1,300,000, mais pas la taille exacte. Définissez également une règle pour ce résidu et traitez tout résidu non couvert comme une limite de risque.

FOK sur la première jambe supprime l’écart de taille, mais multiplie les cas sans transaction. FOK sur la seconde jambe est généralement un mauvais choix : lorsque la première jambe est déjà exécutée, une couverture annulée vous laisse totalement exposé. C’est précisément sur cette seconde jambe que la certitude d’exécution vaut d’être payée.

Quel ordre pour quelle stratégie

Organigramme de décision pour choisir un type d'ordre : si la position doit changer maintenant, utilisez un ordre au marché ou un IOC large ; si une exécution partielle est inutile, utilisez FOK ; si vous prenez de la liquidité avec toute taille utile, utilisez une limite IOC ; sinon, placez une limite passive avec Day, GTC ou GTD
Un point de départ pour la décision. Les règles de la plateforme et vos données d’exécution ont le dernier mot.
Situation Choix par défaut raisonnable Justification
Entrée en arbitrage de latence Limite IOC au prix d’équilibre L’avantage s’érode en quelques millisecondes ; une exécution partielle reste rentable et la limite coupe les extrêmes
Première jambe d’une paire couverte Limite FOK ou IOC avec couverture selon CumQty FOK protège le dimensionnement ; IOC gagne en taux d’exécution, mais exige une meilleure logique
Seconde jambe, lorsque la première est exécutée Au marché ou IOC large Rester sans couverture est le risque le plus important
Entrée liée aux annonces Limite IOC, taille réduite Les spreads et la profondeur changent rapidement, et un ordre au marché n’a pas de plafond
Sortie d’urgence ou stop-out Au marché ou IOC large, répété jusqu’à la clôture complète La certitude d’abord ; un FOK peut laisser la position ouverte
Trading de paires ou statistique Limite IOC ou limite passive de courte durée La période de détention est plus longue : le spread payé compte donc plus que la vitesse
Capture de spread et rééquilibrage Limite passive, Day ou GTD Vous êtes payé pour attendre, et vous devez annuler avant les annonces et le rollover

L’exécution dépend aussi du moment. Autour du rollover et des annonces, les spreads s’élargissent et la profondeur diminue : une limite qui s’exécute bien à midi à Londres peut échouer ou devenir coûteuse pendant ces périodes. Faites dépendre la tolérance et la taille du spread actuel au lieu de les figer pour toute la journée. Pour approfondir les stratégies sensibles à la vitesse, consultez notre guide sur l’arbitrage de latence.

Sept étapes pour configurer l’exécution des ordres

1
Chiffrez la transaction manquée. Déterminez ce que coûte une absence d’exécution. Pour une entrée facultative, c’est zéro ; pour une couverture ou une sortie, c’est un risque ouvert.
2
Calculez le pire prix acceptable. Prenez l’avantage attendu, soustrayez la commission et une marge de sécurité, puis placez la limite à ce point d’équilibre.
3
Choisissez la durée de vie. Utilisez IOC ou FOK pour prendre de la liquidité et Day, GTC ou GTD pour les ordres en attente.
4
Fixez la plus petite exécution utile. Utilisez FOK, ou une quantité minimale lorsqu’elle est prise en charge, si de petites exécutions ne peuvent pas couvrir les coûts fixes.
5
Rédigez la règle du reliquat. Définissez les nouvelles tentatives, leur nombre maximal et le sort de tout résidu non couvert.
6
Confirmez les règles de la plateforme. Vérifiez les paires type d’ordre et TIF prises en charge, les pas de taille, la façon dont les reliquats sont signalés et l’application éventuelle du last look.
7
Journalisez et analysez. Enregistrez chaque ordre, y compris les rejets et les annulations, et ajustez la limite à partir des données d’exécution réelles.

Erreurs fréquentes dans la gestion automatisée des ordres

  • Supposer que la taille demandée a été exécutée. La position doit provenir des rapports d’exécution, et non de l’ordre envoyé.
  • Traiter un FOK annulé comme une erreur système. C’est un résultat normal. Déclencher une alerte à chaque fois vous habitue à ignorer les alertes ; alertez plutôt sur le taux.
  • Réessayer au même prix en boucle. Si le prix a bougé, la nouvelle tentative échoue aussi, et des tentatives rapides peuvent enfreindre les limites de messages. Recalculez le prix ou arrêtez.
  • Ignorer l’état inconnu. Lorsqu’aucune réponse n’arrive, l’ordre peut être encore actif ou déjà exécuté. Interrogez-le avec un OrderStatusRequest (35=H) ou réconciliez la position après la reconnexion avant d’envoyer un ordre de remplacement.
  • Réutiliser des valeurs ClOrdID. Un tag 11 unique pour chaque ordre, y compris chaque nouvelle tentative, est ce qui rend la réconciliation possible.
  • Utiliser des prix obsolètes pour la limite. Une limite calculée à partir d’une cotation retardée est soit trop serrée, soit trop généreuse. Un flux de prix rapide donne tout son sens à la tolérance.
  • Tester avec des exécutions parfaites. Un backtest qui exécute chaque ordre en totalité à la cotation ne peut pas distinguer un ordre au marché d’un IOC ou d’un FOK. Modélisez la profondeur et les rejets, ou faites un forward test avec une petite taille.
  • Reporter les réglages d’une plateforme à l’autre. Une tolérance ajustée chez un courtier ne dit pas grand-chose d’un autre, car la profondeur, le last look et la latence diffèrent tous.

Ce qu’il faut mesurer

Le choix d’un type d’ordre est une question empirique, et seul un journal complet peut y répondre. Les rapports doivent couvrir les signaux et les tentatives, et pas seulement les transactions réalisées.

Indicateur Définition Ce qu’il vous indique
Ratio d’exécution Quantité exécutée / quantité demandée Trop bas : la limite est serrée ou la profondeur est faible
Taux de rejet Ordres rejetés ou annulés / ordres envoyés Une hausse soudaine suggère un changement de liquidité ou de courtier
Slippage Prix d’exécution moins prix de référence au signal, avec signe Coût d’exécution par transaction exécutée
Temps aller-retour De l’envoi de l’ordre au premier rapport d’exécution Si la plateforme ralentit, selon l’heure de la journée
Net par signal Résultat total / tous les signaux, y compris ceux manqués Le chiffre qui doit guider la tolérance

Ventilez ces chiffres par symbole, plateforme, heure et type d’ordre, et comparez les résultats avant et après chaque modification. SharpTrader affiche les ordres et les statistiques de performance avec le PnL, le slippage et le temps d’exécution, ce qui constitue une base pratique pour ce type d’analyse. Les types d’ordres et les valeurs TIF disponibles dans une configuration donnée dépendent du connecteur et du courtier : vérifiez-les pour votre propre compte.

Construisez votre exécution à partir de vos propres données

SharpTrader se connecte aux courtiers via FIX API et d’autres protocoles, exécute des stratégies d’arbitrage et hors arbitrage, et enregistre le slippage et le temps d’exécution de chaque ordre. Pour ajuster les paramètres à partir de ces données, SharpTrader Optimizer automatise la recherche.

Découvrir SharpTraderSharpTrader Optimizer

Scanner d’arbitrage gratuit + mini-cours par e-mail

Recevez le lien du scanner gratuit et quelques e-mails courts et pratiques de Boris : ce que signifie vraiment un écart de prix après les coûts, comment tester une stratégie avant de risquer de l’argent réel et quels outils conviennent à votre marché. Sans promesses exagérées. Les e-mails sont rédigés en anglais.

En envoyant ce formulaire, vous acceptez de recevoir des e-mails de BJF Trading Group sur les outils d’arbitrage et les logiciels de trading. Désinscription possible à tout moment. Consultez notre Politique de confidentialité.

Questions fréquentes

Quelle est la différence entre IOC et FOK ?

Les deux s’exécutent immédiatement et ne restent jamais dans le carnet. IOC accepte une exécution partielle et annule le reliquat non exécuté. FOK exige que toute la quantité soit exécutée d’un coup ; sinon, l’ordre entier est annulé et rien n’est traité.

FOK est-il meilleur qu’IOC ?

Aucun n’est meilleur dans l’absolu. FOK convient aux transactions pour lesquelles une position partielle est inutile ou complique la couverture. IOC traite généralement plus souvent, car une partie de la taille passe, mais votre algorithme doit gérer correctement les exécutions partielles.

Un ordre FOK peut-il être partiellement exécuté ?

Non. Par définition, un ordre FOK est exécuté en totalité ou pas du tout. Si vous constatez une exécution partielle, l’ordre n’était pas un véritable FOK sur cette plateforme : vérifiez comment le courtier traduit l’instruction.

Que devient la partie non exécutée d’un ordre IOC ?

Elle est annulée immédiatement et ne reste jamais dans le carnet. En FIX, vous recevez un rapport d’exécution qui clôture l’ordre, généralement avec le statut Canceled ou Expired selon la plateforme, avec un LeavesQty de 0.

Un ordre au marché est-il identique à un ordre IOC ?

Pas exactement. Un ordre au marché n’a pas de limite de prix, alors qu’un IOC en a normalement une. De nombreuses plateformes exécutent les ordres au marché avec un comportement IOC ou FOK : la durée de vie peut donc être la même, mais seule une limite protège le prix.

Quelles sont les valeurs FIX pour IOC et FOK ?

Dans le champ TimeInForce, tag 59, IOC vaut 3 et FOK vaut 4. Le type d’ordre est défini séparément dans le tag 40, où 1 correspond au marché et 2 à la limite.

Tous les courtiers forex prennent-ils en charge IOC et FOK ?

Non. La prise en charge dépend du courtier, de la plateforme et du type de connexion. Les connexions FIX API offrent généralement plus de contrôle, mais chaque plateforme publie sa propre liste de combinaisons acceptées entre type d’ordre et durée de validité.

Cet article est pédagogique et ne constitue pas un conseil en investissement. Le carnet d’ordres et le modèle sont des exemples illustratifs, et non des résultats de trading. Le trading sur le marché des changes comporte un risque de perte important.