{"id":15930,"date":"2026-11-04T15:22:19","date_gmt":"2026-11-04T15:22:19","guid":{"rendered":"https:\/\/bjftradinggroup.com\/?p=15930"},"modified":"2026-11-04T15:22:19","modified_gmt":"2026-11-04T15:22:19","slug":"ioc-fok-order-types-algo-trading","status":"publish","type":"post","link":"https:\/\/bjftradinggroup.com\/fr\/ioc-fok-order-types-algo-trading\/","title":{"rendered":"IOC vs FOK, ordres au march\u00e9 et \u00e0 cours limit\u00e9 : les types d&rsquo;ordres pour l&rsquo;ex\u00e9cution algorithmique sur le forex"},"content":{"rendered":"<p><\/p>\n<div class=\"iof-page\">\n<div class=\"iof-hero\">\n<span class=\"iof-hero-tag\">BJF TRADING GROUP \u00b7 EX\u00c9CUTION FOREX<\/span><\/p>\n<h2>IOC, FOK, au march\u00e9 ou \u00e0 cours limit\u00e9 : <span class=\"iof-gold\">choisir l&rsquo;ordre adapt\u00e9 \u00e0 la transaction<\/span><\/h2>\n<p class=\"iof-hero-sub\">Choisir un type d&rsquo;ordre, c&rsquo;est d\u00e9cider ce que vous pr\u00e9f\u00e9rez subir : un moins bon prix, une ex\u00e9cution plus petite ou pas d&rsquo;ex\u00e9cution du tout. Ce guide montre comment chaque instruction se comporte dans le carnet d&rsquo;ordres, dans les messages FIX et sous last look, avec des exemples chiffr\u00e9s pour un algorithme qui doit choisir en quelques millisecondes.<\/p>\n<\/div>\n<div class=\"iof-answer\">\n<p><strong>R\u00e9ponse courte : IOC vs FOK.<\/strong> Un ordre Immediate-or-Cancel (IOC) prend tout ce qui est disponible imm\u00e9diatement \u00e0 votre prix ou mieux et annule le reste : une ex\u00e9cution partielle est donc possible. Un ordre Fill-or-Kill (FOK) doit \u00eatre ex\u00e9cut\u00e9 en totalit\u00e9 imm\u00e9diatement, sinon il est enti\u00e8rement annul\u00e9 : vous obtenez tout ou rien. Utilisez IOC lorsque n&rsquo;importe quelle partie de la taille vous est utile, et FOK lorsqu&rsquo;une position partielle serait pire que pas de position du tout.<\/p>\n<\/div>\n<div class=\"iof-toc\">\n<strong>Dans ce guide<\/strong><\/p>\n<ol>\n<li><a href=\"#iof-two-decisions\">Type d&rsquo;ordre et dur\u00e9e de validit\u00e9 : deux d\u00e9cisions distinctes<\/a><\/li>\n<li><a href=\"#iof-market\">Les ordres au march\u00e9 sur le forex<\/a><\/li>\n<li><a href=\"#iof-limit\">Ordres \u00e0 cours limit\u00e9, limites ex\u00e9cutables et ordres stop<\/a><\/li>\n<li><a href=\"#iof-tif\">Dur\u00e9e de validit\u00e9 : IOC, FOK, GTC, Day, GTD<\/a><\/li>\n<li><a href=\"#iof-example\">IOC vs FOK vs march\u00e9 : un carnet d&rsquo;ordres, trois r\u00e9sultats<\/a><\/li>\n<li><a href=\"#iof-fix\">\u00c0 quoi ressemblent les ordres en FIX<\/a><\/li>\n<li><a href=\"#iof-lastlook\">Liquidit\u00e9 full-amount et last look<\/a><\/li>\n<li><a href=\"#iof-tolerance\">O\u00f9 placer la limite : un mod\u00e8le chiffr\u00e9<\/a><\/li>\n<li><a href=\"#iof-partial\">G\u00e9rer les ex\u00e9cutions partielles<\/a><\/li>\n<li><a href=\"#iof-matrix\">Quel ordre pour quelle strat\u00e9gie<\/a><\/li>\n<li><a href=\"#iof-howto\">Sept \u00e9tapes pour configurer l&rsquo;ex\u00e9cution<\/a><\/li>\n<li><a href=\"#iof-mistakes\">Erreurs fr\u00e9quentes<\/a><\/li>\n<li><a href=\"#iof-measure\">Ce qu&rsquo;il faut mesurer<\/a><\/li>\n<li><a href=\"#iof-faq\">Questions fr\u00e9quentes<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"iof-two-decisions\">Type d&rsquo;ordre et dur\u00e9e de validit\u00e9 : deux d\u00e9cisions distinctes<\/h2>\n<p>La plupart des glossaires pr\u00e9sentent les ordres au march\u00e9, \u00e0 cours limit\u00e9, stop, IOC et FOK comme cinq options d&rsquo;un m\u00eame menu. Ce n&rsquo;est pas le cas. Derri\u00e8re ces termes se cachent deux questions ind\u00e9pendantes, et un algorithme doit r\u00e9pondre aux deux pour chaque ordre :<\/p>\n<ul>\n<li><strong>Quel prix suis-je pr\u00eat \u00e0 accepter ?<\/strong> C&rsquo;est le type d&rsquo;ordre : au march\u00e9 (n&rsquo;importe quel prix), \u00e0 cours limit\u00e9 (ce prix ou mieux), stop (activation lorsqu&rsquo;un seuil de d\u00e9clenchement est trait\u00e9 ou cot\u00e9).<\/li>\n<li><strong>Combien de temps l&rsquo;ordre peut-il rester actif ?<\/strong> C&rsquo;est la dur\u00e9e de validit\u00e9, ou TIF (time in force) : imm\u00e9diate (IOC, FOK), jusqu&rsquo;\u00e0 la fin de la session (Day), jusqu&rsquo;\u00e0 annulation (GTC) ou jusqu&rsquo;\u00e0 une heure donn\u00e9e (GTD).<\/li>\n<\/ul>\n<p>IOC et FOK ne sont donc pas des alternatives \u00e0 l&rsquo;ordre \u00e0 cours limit\u00e9. Ce sont des dur\u00e9es de vie qui s&rsquo;y rattachent. \u00ab Limit IOC \u00bb et \u00ab Limit FOK \u00bb sont les deux instructions agressives les plus courantes sur le forex algorithmique, et le protocole FIX conserve ces deux d\u00e9cisions dans des champs s\u00e9par\u00e9s : <code>OrdType<\/code> (tag 40) et <code>TimeInForce<\/code> (tag 59).<\/p>\n<div class=\"iof-cards\">\n<div class=\"iof-card\"><span class=\"iof-card-v\">Prix<\/span><span class=\"iof-card-l\">Type d&rsquo;ordre, tag 40<\/span><span class=\"iof-card-n\">Au march\u00e9, limite, stop, stop-limite. Fixe le pire prix que vous acceptez.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Temps<\/span><span class=\"iof-card-l\">Dur\u00e9e de validit\u00e9, tag 59<\/span><span class=\"iof-card-n\">IOC, FOK, Day, GTC, GTD. Fixe combien de temps l&rsquo;ordre peut attendre.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Taille<\/span><span class=\"iof-card-l\">R\u00e8gle d&rsquo;ex\u00e9cution<\/span><span class=\"iof-card-n\">Totalit\u00e9 uniquement (FOK), toute taille (IOC) ou quantit\u00e9 minimale (tag 110) lorsqu&rsquo;elle est prise en charge.<\/span><\/div>\n<\/div>\n<h2 id=\"iof-market\">Les ordres au march\u00e9 sur le forex : ce que \u00ab au march\u00e9 \u00bb signifie vraiment<\/h2>\n<p>Un ordre au march\u00e9 dit : ex\u00e9cutez-moi maintenant, le prix est secondaire. Il n&rsquo;a pas de limite : il offre donc la plus grande certitude d&rsquo;ex\u00e9cution et aucune protection sur le prix obtenu. Si le carnet a boug\u00e9 ou s&rsquo;il est peu profond, l&rsquo;ordre remonte les niveaux disponibles jusqu&rsquo;\u00e0 ce que la taille soit ex\u00e9cut\u00e9e. Ce co\u00fbt, c&rsquo;est le slippage, trait\u00e9 en d\u00e9tail dans notre guide sur <a href=\"https:\/\/bjftradinggroup.com\/forex-slippage-explained\/\">la mesure et la r\u00e9duction du slippage sur le forex<\/a>.<\/p>\n<p>Le forex ajoute deux particularit\u00e9s que les explications centr\u00e9es sur les march\u00e9s boursiers passent sous silence :<\/p>\n<ul>\n<li><strong>Il n&rsquo;existe pas de carnet central unique.<\/strong> Votre courtier ou votre ECN affiche un flux agr\u00e9g\u00e9 provenant de plusieurs fournisseurs de liquidit\u00e9. \u00ab Au march\u00e9 \u00bb signifie au meilleur prix que votre plateforme peut obtenir de ce flux, et non \u00e0 un prix de march\u00e9 universel.<\/li>\n<li><strong>Un ordre au march\u00e9 a tout de m\u00eame une dur\u00e9e de vie implicite.<\/strong> De nombreuses plateformes traitent en interne les ordres au march\u00e9 comme des IOC ou des FOK : ex\u00e9cuter ce qui peut l&rsquo;\u00eatre maintenant et signaler le reste. Certaines permettent d&rsquo;ajouter un \u00e9cart maximal, ce qui transforme de fait l&rsquo;ordre en ordre \u00e0 cours limit\u00e9. Ne pr\u00e9sumez de rien : lisez les sp\u00e9cifications de la plateforme.<\/li>\n<\/ul>\n<p>Dans un algorithme, le r\u00f4le pratique d&rsquo;un ordre au march\u00e9 est restreint. Il a sa place l\u00e0 o\u00f9 <em>ne pas traiter<\/em> est le plus grand danger, par exemple pour cl\u00f4turer une position qui a perdu sa couverture.<\/p>\n<h2 id=\"iof-limit\">Ordres \u00e0 cours limit\u00e9, limites ex\u00e9cutables et ordres stop<\/h2>\n<h3>Ordres \u00e0 cours limit\u00e9 passifs<\/h3>\n<p>Un ordre \u00e0 cours limit\u00e9 plac\u00e9 \u00e0 distance du prix actuel reste dans le carnet et attend. Une limite d&rsquo;achat sous l&rsquo;ask ne prend pas de liquidit\u00e9 : elle en offre. Vous pouvez gagner le spread au lieu de le payer, mais vous assumez un risque de file d&rsquo;attente et de s\u00e9lection adverse : les ordres passifs ont tendance \u00e0 \u00eatre ex\u00e9cut\u00e9s lorsque le march\u00e9 les traverse. Les ordres passifs sont normalement associ\u00e9s \u00e0 Day, GTC ou GTD.<\/p>\n<h3>Limites ex\u00e9cutables (marketable limit)<\/h3>\n<p>Une limite d&rsquo;achat plac\u00e9e au niveau de l&rsquo;ask actuel ou au-dessus s&rsquo;ex\u00e9cute imm\u00e9diatement, comme un ordre au march\u00e9, mais elle ne peut pas \u00eatre ex\u00e9cut\u00e9e au-del\u00e0 de sa limite. Cette \u00ab limite ex\u00e9cutable \u00bb est le cheval de bataille de l&rsquo;ex\u00e9cution automatis\u00e9e. Combin\u00e9e \u00e0 IOC, elle signifie : prendre la liquidit\u00e9 maintenant, jusqu&rsquo;\u00e0 ce prix, et ne rien laisser dans le carnet.<\/p>\n<p>L&rsquo;am\u00e9lioration de prix est souvent mal comprise. Une limite est le pire prix acceptable, et non le prix d&rsquo;ex\u00e9cution. Si vous achetez avec une limite \u00e0 1.08510 et que l&rsquo;ask est \u00e0 1.08502, vous devriez recevoir 1.08502 ou les niveaux suivants jusqu&rsquo;\u00e0 votre limite.<\/p>\n<h3>Ordres stop et stop-limite<\/h3>\n<p>Un ordre stop reste dormant jusqu&rsquo;\u00e0 ce que le seuil de d\u00e9clenchement soit atteint, puis il devient un ordre au march\u00e9. Un stop-limite devient quant \u00e0 lui un ordre \u00e0 cours limit\u00e9. Le premier garantit l&rsquo;activation, pas le prix. Le second plafonne le prix, mais peut vous laisser sans ex\u00e9cution pr\u00e9cis\u00e9ment lorsque le march\u00e9 fait un gap, ce qui est une propri\u00e9t\u00e9 f\u00e2cheuse pour un stop de protection. L&rsquo;endroit o\u00f9 r\u00e9side le stop compte aussi : un stop conserv\u00e9 sur la plateforme survit \u00e0 votre d\u00e9connexion, alors qu&rsquo;un stop simul\u00e9 dans votre propre logiciel n&rsquo;y survit pas.<\/p>\n<h2 id=\"iof-tif\">Dur\u00e9e de validit\u00e9 : la liste compl\u00e8te<\/h2>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Instruction<\/th>\n<th>FIX 59<\/th>\n<th>Dur\u00e9e de vie<\/th>\n<th>Ex\u00e9cution partielle ?<\/th>\n<th>Usage typique<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Day<\/td>\n<td>0<\/td>\n<td>Jusqu&rsquo;\u00e0 la fin de la session<\/td>\n<td>Oui<\/td>\n<td>Cotations passives pendant une session d\u00e9finie<\/td>\n<\/tr>\n<tr>\n<td>GTC (Good Till Cancel)<\/td>\n<td>1<\/td>\n<td>Jusqu&rsquo;\u00e0 annulation<\/td>\n<td>Oui<\/td>\n<td>Entr\u00e9es en attente, ordres take-profit et stop<\/td>\n<\/tr>\n<tr>\n<td>IOC (Immediate or Cancel)<\/td>\n<td>3<\/td>\n<td>Ex\u00e9cution imm\u00e9diate, reste annul\u00e9<\/td>\n<td>Oui<\/td>\n<td>Prise de liquidit\u00e9 lorsque toute partie de la taille est utile<\/td>\n<\/tr>\n<tr>\n<td>FOK (Fill or Kill)<\/td>\n<td>4<\/td>\n<td>Taille compl\u00e8te imm\u00e9diatement ou rien<\/td>\n<td>Non<\/td>\n<td>Entr\u00e9es tout-ou-rien et jambes \u00e0 taille fixe<\/td>\n<\/tr>\n<tr>\n<td>GTD (Good Till Date)<\/td>\n<td>6<\/td>\n<td>Jusqu&rsquo;\u00e0 une heure pr\u00e9cise (tag 126 ou 432)<\/td>\n<td>Oui<\/td>\n<td>Cotations \u00e0 expiration ferme, par exemple avant une annonce \u00e9conomique<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Les valeurs proviennent de la sp\u00e9cification FIX 4.4. Les plateformes ne prennent normalement en charge qu&rsquo;une partie de la liste, et certaines r\u00e9servent un TIF \u00e0 certains types d&rsquo;ordres : les r\u00e8gles d&rsquo;engagement de votre courtier priment donc sur tout tableau publi\u00e9 dans un article.<\/p>\n<h2 id=\"iof-example\">IOC vs FOK vs march\u00e9 : un carnet d&rsquo;ordres, trois r\u00e9sultats<\/h2>\n<p>Prenons un cas concret. Un algorithme veut acheter 2,000,000 EURUSD. Le meilleur ask est \u00e0 1.08500, et voici le c\u00f4t\u00e9 vendeur visible \u00e0 l&rsquo;arriv\u00e9e de l&rsquo;ordre :<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Prix ask<\/th>\n<th>Taille disponible<\/th>\n<th>Cumul<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1.08500<\/td>\n<td>500,000<\/td>\n<td>500,000<\/td>\n<\/tr>\n<tr>\n<td>1.08501<\/td>\n<td>500,000<\/td>\n<td>1,000,000<\/td>\n<\/tr>\n<tr>\n<td>1.08503<\/td>\n<td>1,000,000<\/td>\n<td>2,000,000<\/td>\n<\/tr>\n<tr>\n<td>1.08506<\/td>\n<td>2,000,000<\/td>\n<td>4,000,000<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/order-book-walk-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Parcours du carnet d'ordres comparant un ordre au march\u00e9, une limite IOC et une limite FOK pour un achat de 2 millions d'EURUSD : l'ordre au march\u00e9 est enti\u00e8rement ex\u00e9cut\u00e9 \u00e0 1.085018, l'IOC ex\u00e9cute 1 million \u00e0 1.085005 et le FOK est annul\u00e9\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Le m\u00eame carnet, trois instructions. Le carnet est un exemple construit ; les calculs sont exacts.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Instruction<\/th>\n<th>Ex\u00e9cut\u00e9<\/th>\n<th>Prix moyen<\/th>\n<th>Co\u00fbt par rapport au meilleur ask<\/th>\n<th>R\u00e9sultat<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Au march\u00e9, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, environ $35<\/td>\n<td>Ex\u00e9cut\u00e9, \u00e0 un prix que vous n&rsquo;avez pas choisi<\/td>\n<\/tr>\n<tr>\n<td>Limite 1.08502 IOC, 2M<\/td>\n<td>1,000,000<\/td>\n<td>1.085005<\/td>\n<td>0.05 pip, environ $5<\/td>\n<td>La moiti\u00e9 de la taille, 1M annul\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Limite 1.08502 FOK, 2M<\/td>\n<td>0<\/td>\n<td>Aucun<\/td>\n<td>$0<\/td>\n<td>Annul\u00e9 : seulement 1M au niveau de la limite ou en dessous<\/td>\n<\/tr>\n<tr>\n<td>Limite 1.08503 FOK, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, environ $35<\/td>\n<td>Ex\u00e9cut\u00e9 : la limite \u00e9tait assez large<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>La derni\u00e8re ligne est la plus subtile. Un dixi\u00e8me de pip suppl\u00e9mentaire a transform\u00e9 le FOK : d&rsquo;aucune transaction, on passe \u00e0 une ex\u00e9cution compl\u00e8te, \u00e0 une moyenne meilleure que sa limite. FOK ne signifie pas \u00ab serr\u00e9 \u00bb. Cela signifie \u00ab toute la taille doit tenir sous ce prix \u00e0 cet instant \u00bb. L&rsquo;IOC et le FOK \u00e0 la m\u00eame limite voient la m\u00eame liquidit\u00e9. Ils ne diff\u00e8rent que par ce qu&rsquo;ils font lorsqu&rsquo;elle ne suffit pas.<\/p>\n<p>Il n&rsquo;existe pas non plus d&rsquo;instruction universellement moins ch\u00e8re. L&rsquo;IOC \u00e0 $5 semble une aubaine face \u00e0 l&rsquo;ordre au march\u00e9 \u00e0 $35, mais il n&rsquo;a livr\u00e9 que la moiti\u00e9 de la position. Si le 1M restant doit \u00eatre achet\u00e9 plus tard \u00e0 un moins bon prix, la comparaison change. C&rsquo;est ce co\u00fbt de la taille manquante qui fait l&rsquo;objet de la suite de ce guide.<\/p>\n<h2 id=\"iof-fix\">\u00c0 quoi ressemblent les ordres en FIX<\/h2>\n<p>Sur une <a href=\"https:\/\/bjftradinggroup.com\/fix-api-forex-trading\/\">connexion FIX API<\/a>, vous indiquez explicitement chaque instruction dans un message NewOrderSingle (<code>35=D<\/code>). R\u00e9duit aux champs qui comptent, l&rsquo;ordre IOC de l&rsquo;exemple se pr\u00e9sente ainsi :<\/p>\n<div class=\"iof-code\">35=D | 11=A1001 | 55=EUR\/USD | 54=1 | 38=2000000 | 40=2 | 44=1.08502 | 59=3<\/div>\n<p>Remplacez <code>59=3<\/code> par <code>59=4<\/code> et le m\u00eame ordre devient un FOK. Supprimez le prix et d\u00e9finissez <code>40=1<\/code> : c&rsquo;est un ordre au march\u00e9. L&rsquo;en-t\u00eate, la somme de contr\u00f4le, les horodatages et les champs de compte sont omis ici, et le format du symbole varie selon la plateforme : certaines utilisent des identifiants num\u00e9riques.<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Tag<\/th>\n<th>Champ<\/th>\n<th>Valeurs que vous rencontrerez<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>40<\/td>\n<td>OrdType<\/td>\n<td>1 Market (au march\u00e9), 2 Limit (limite), 3 Stop, 4 Stop-limit (stop-limite), D Previously quoted (pr\u00e9c\u00e9demment cot\u00e9)<\/td>\n<\/tr>\n<tr>\n<td>59<\/td>\n<td>TimeInForce<\/td>\n<td>0 Day, 1 GTC, 3 IOC, 4 FOK, 6 GTD<\/td>\n<\/tr>\n<tr>\n<td>110<\/td>\n<td>MinQty<\/td>\n<td>Quantit\u00e9 minimale devant \u00eatre ex\u00e9cut\u00e9e, lorsqu&rsquo;elle est prise en charge<\/td>\n<\/tr>\n<tr>\n<td>150<\/td>\n<td>ExecType<\/td>\n<td>0 New (nouveau), F Trade (transaction), 4 Canceled (annul\u00e9), 8 Rejected (rejet\u00e9), C Expired (expir\u00e9)<\/td>\n<\/tr>\n<tr>\n<td>39<\/td>\n<td>OrdStatus<\/td>\n<td>0 New (nouveau), 1 Partially filled (partiellement ex\u00e9cut\u00e9), 2 Filled (ex\u00e9cut\u00e9), 4 Canceled (annul\u00e9), 8 Rejected (rejet\u00e9), C Expired (expir\u00e9)<\/td>\n<\/tr>\n<tr>\n<td>14 \/ 151<\/td>\n<td>CumQty \/ LeavesQty<\/td>\n<td>Ex\u00e9cut\u00e9 jusqu&rsquo;ici \/ encore ouvert. LeavesQty 0 signifie que l&rsquo;ordre est termin\u00e9<\/td>\n<\/tr>\n<tr>\n<td>31 \/ 32 \/ 6<\/td>\n<td>LastPx \/ LastQty \/ AvgPx<\/td>\n<td>Prix et taille de cette ex\u00e9cution \/ moyenne de toutes les ex\u00e9cutions<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>La difficult\u00e9 n&rsquo;est pas d&rsquo;envoyer l&rsquo;ordre, mais de lire la r\u00e9ponse. Un seul IOC peut produire une s\u00e9quence d&rsquo;ExecutionReports (<code>35=8<\/code>), et la fa\u00e7on dont le reliquat est signal\u00e9 d\u00e9pend de la plateforme.<\/p>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/ioc-execution-lifecycle-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Cycle de vie FIX d'un ordre IOC de 2 millions : NewOrderSingle, deux rapports d'ex\u00e9cution de transaction avec un CumQty qui monte \u00e0 1 million, puis un rapport d'annulation ou d'expiration pour le 1 million restant avec LeavesQty \u00e0 z\u00e9ro, et l'algorithme qui couvre uniquement la quantit\u00e9 ex\u00e9cut\u00e9e\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Un IOC n&rsquo;est termin\u00e9 que lorsque LeavesQty atteint 0. Votre position est CumQty, jamais la quantit\u00e9 demand\u00e9e.<\/figcaption><\/figure>\n<p>Certaines plateformes envoient un accus\u00e9 de r\u00e9ception suppl\u00e9mentaire (<code>150=0<\/code>) avant les ex\u00e9cutions. D&rsquo;autres livrent une seule ex\u00e9cution agr\u00e9g\u00e9e. Les sessions FIX 4.2 utilisent pour les ex\u00e9cutions des valeurs ExecType diff\u00e9rentes (1 et 2) de celles de FIX 4.3 et versions ult\u00e9rieures (F). Un gestionnaire robuste s&rsquo;appuie donc sur CumQty, LeavesQty et OrdStatus, et non sur un nombre fixe de messages. La <a href=\"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/\">pr\u00e9sentation d\u00e9taill\u00e9e du protocole FIX<\/a> explique la couche de session sous-jacente \u00e0 ces messages.<\/p>\n<h2 id=\"iof-lastlook\">Liquidit\u00e9 full-amount et last look : pourquoi le forex est diff\u00e9rent<\/h2>\n<p>Les explications centr\u00e9es sur la bourse supposent un carnet d&rsquo;ordres central o\u00f9 une offre affich\u00e9e est ferme. Les plateformes forex peuvent se comporter diff\u00e9remment sur deux points qui affectent directement IOC et FOK.<\/p>\n<p><strong>Liquidit\u00e9 sweepable vs full-amount.<\/strong> Dans un carnet sweepable, un ordre peut prendre plusieurs niveaux aupr\u00e8s de plusieurs fournisseurs, comme dans l&rsquo;exemple ci-dessus. Dans la tarification full-amount, un fournisseur cote un seul prix pour la taille enti\u00e8re et les paliers ne s&rsquo;additionnent pas : un FOK de 2M doit donc \u00eatre compar\u00e9 au palier de 2M, et non \u00e0 la somme des cotations de 1M. Un m\u00eame affichage de profondeur peut ainsi signifier des choses diff\u00e9rentes.<\/p>\n<p><strong>Last look.<\/strong> Lorsqu&rsquo;un fournisseur applique le last look, votre ordre est une demande qu&rsquo;il peut encore rejeter apr\u00e8s un bref d\u00e9lai de r\u00e9tention. Un FOK peut \u00eatre rejet\u00e9 alors que le carnet affichait une taille suffisante au moment de l&rsquo;envoi, et un IOC peut revenir avec une taille inf\u00e9rieure \u00e0 celle affich\u00e9e. Le FX Global Code (code de conduite mondial du march\u00e9 des changes) demande aux fournisseurs qui utilisent le last look de communiquer cette pratique \u00e0 leurs clients : r\u00e9clamez donc cette information. Les rejets li\u00e9s au last look ne sont visibles dans votre journal que si vous les enregistrez. Les m\u00e9canismes sont d\u00e9taill\u00e9s dans notre guide sur <a href=\"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\">l&rsquo;ex\u00e9cution des courtiers, A-book, B-book et last look<\/a>.<\/p>\n<div class=\"iof-box\"><strong>Pourquoi c&rsquo;est important pour la mesure :<\/strong> un ordre agressif sur une plateforme \u00e0 last look peut afficher d&rsquo;excellentes statistiques de slippage, car seules les ex\u00e9cutions qui ont convenu au fournisseur figurent dans l&rsquo;\u00e9chantillon. Un slippage moyen faible associ\u00e9 \u00e0 un taux de rejet \u00e9lev\u00e9 n&rsquo;est pas une bonne ex\u00e9cution.<\/div>\n<h2 id=\"iof-tolerance\">O\u00f9 placer la limite : un mod\u00e8le chiffr\u00e9<\/h2>\n<p>Pour un IOC ou un FOK, le param\u00e8tre cl\u00e9 n&rsquo;est pas le TIF, mais le prix limite. Placez-le \u00e0 la cotation actuelle et la plupart des signaux seront manqu\u00e9s. Laissez-le sans limite et les pires ex\u00e9cutions absorberont votre avantage. Entre ces extr\u00eames, il existe une r\u00e9ponse calculable.<\/p>\n<p>Consid\u00e9rons un signal de courte dur\u00e9e avec un avantage attendu de 1.2 pips apr\u00e8s commissions, mesur\u00e9 \u00e0 partir du prix du signal. Entre le signal et l&rsquo;arriv\u00e9e sur la plateforme, le prix bouge. Supposons deux r\u00e9gimes : dans 80% des cas, le prix d\u00e9rive d&rsquo;environ 0.2 pip en votre d\u00e9faveur (\u00e9cart-type de 0.3 pip), et dans 20% des cas, un mouvement rapide l&rsquo;\u00e9loigne d&rsquo;environ 2 pips (\u00e9cart-type de 1 pip). Ces donn\u00e9es sont illustratives. En pratique, vous les estimez \u00e0 partir de votre propre journal d&rsquo;ordres.<\/p>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/limit-tolerance-model-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Mod\u00e8le illustratif : le gain net attendu en pips par signal augmente avec la tol\u00e9rance de la limite, culmine pr\u00e8s de 0.82 pips pour une tol\u00e9rance d'environ 1.2 pips et retombe \u00e0 0.64 pips pour un ordre au march\u00e9 sans limite, tandis que le taux d'ex\u00e9cution passe de 21 pour cent \u00e0 100 pour cent\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Mod\u00e8le illustratif, et non r\u00e9sultats de trading : avantage de 1.2 pip et d\u00e9rive du prix \u00e0 deux r\u00e9gimes. Une ex\u00e9cution a lieu lorsque la d\u00e9rive reste dans la tol\u00e9rance.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Tol\u00e9rance de la limite par rapport au prix du signal<\/th>\n<th>Taux d&rsquo;ex\u00e9cution<\/th>\n<th>Net moyen par ex\u00e9cution<\/th>\n<th>Net attendu par signal<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0 pip (limite au prix du signal)<\/td>\n<td>20.7%<\/td>\n<td>1.38 pips<\/td>\n<td>0.29 pip<\/td>\n<\/tr>\n<tr>\n<td>0.3 pip<\/td>\n<td>51.3%<\/td>\n<td>1.18 pips<\/td>\n<td>0.61 pip<\/td>\n<\/tr>\n<tr>\n<td>0.6 pip<\/td>\n<td>74.3%<\/td>\n<td>1.05 pips<\/td>\n<td>0.78 pip<\/td>\n<\/tr>\n<tr>\n<td>1.2 pips (\u00e9gal \u00e0 l&rsquo;avantage)<\/td>\n<td>84.2%<\/td>\n<td>0.98 pip<\/td>\n<td>0.82 pip<\/td>\n<\/tr>\n<tr>\n<td>2.0 pips<\/td>\n<td>90.0%<\/td>\n<td>0.89 pip<\/td>\n<td>0.80 pip<\/td>\n<\/tr>\n<tr>\n<td>Sans limite (ordre au march\u00e9)<\/td>\n<td>100%<\/td>\n<td>0.64 pip<\/td>\n<td>0.64 pip<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Trois conclusions restent valables bien au-del\u00e0 de cet exemple :<\/p>\n<ul class=\"iof-checks\">\n<li><strong>La meilleure limite est le prix d&rsquo;\u00e9quilibre, pas la cotation.<\/strong> Toute ex\u00e9cution qui laisse encore un profit attendu positif m\u00e9rite d&rsquo;\u00eatre prise. Dans ce mod\u00e8le, le maximum se situe exactement l\u00e0 o\u00f9 la tol\u00e9rance \u00e9gale l&rsquo;avantage, car l&rsquo;ex\u00e9cution marginale suivante ne rapporte rien.<\/li>\n<li><strong>La courbe est plate pr\u00e8s du sommet.<\/strong> Entre 0.8 et 2 pips, le profit attendu change \u00e0 peine. Vous n&rsquo;avez pas besoin d&rsquo;une tol\u00e9rance pr\u00e9cise, mais il vous en faut une.<\/li>\n<li><strong>Le prix d&rsquo;ex\u00e9cution moyen est un objectif trompeur.<\/strong> La limite la plus serr\u00e9e offre le meilleur prix par ex\u00e9cution (1.38 pips) et le pire r\u00e9sultat par signal (0.29 pip), car 79% des signaux ne sont jamais trait\u00e9s.<\/li>\n<\/ul>\n<p>Le mod\u00e8le ignore les effets de file d&rsquo;attente et suppose que toute la taille est ex\u00e9cut\u00e9e d\u00e8s que la limite est atteinte. Pour des ordres plus importants, refaites le calcul avec votre profondeur r\u00e9elle, car la limite d\u00e9termine aussi la taille qui peut passer. V\u00e9rifiez les hypoth\u00e8ses avec des donn\u00e9es : notre guide sur <a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage-backtest-execution-time-gap\/\">l&rsquo;\u00e9cart entre les backtests et l&rsquo;ex\u00e9cution r\u00e9elle<\/a> montre comment int\u00e9grer le temps d&rsquo;ex\u00e9cution dans un test.<\/p>\n<h2 id=\"iof-partial\">G\u00e9rer les ex\u00e9cutions partielles sans cr\u00e9er de nouveau risque<\/h2>\n<p>Une ex\u00e9cution partielle n&rsquo;est pas une erreur, mais un nouvel \u00e9tat pour lequel l&rsquo;algorithme doit disposer d&rsquo;une r\u00e8gle. FOK \u00e9vite cet \u00e9tat \u00e0 l&rsquo;entr\u00e9e ; IOC d\u00e9place le probl\u00e8me dans votre logique. D\u00e9finissez la politique avant de passer en r\u00e9el :<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Politique pour le reliquat<\/th>\n<th>Quand elle convient<\/th>\n<th>Risque \u00e0 contr\u00f4ler<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Accepter et g\u00e9rer ce qui a \u00e9t\u00e9 ex\u00e9cut\u00e9<\/td>\n<td>Entr\u00e9es dont l&rsquo;avantage ne d\u00e9pend pas de la taille<\/td>\n<td>Position trop petite pour couvrir les co\u00fbts fixes<\/td>\n<\/tr>\n<tr>\n<td>Renvoyer le reliquat \u00e0 un nouveau prix<\/td>\n<td>Signal encore valide, avantage toujours sup\u00e9rieur \u00e0 la tol\u00e9rance<\/td>\n<td>Course apr\u00e8s le prix. Plafonnez les tentatives et rev\u00e9rifiez l&rsquo;avantage \u00e0 chaque fois<\/td>\n<\/tr>\n<tr>\n<td>Couvrir ou compl\u00e9ter sur une autre plateforme<\/td>\n<td>Transactions \u00e0 plusieurs jambes<\/td>\n<td>Pas de lot diff\u00e9rents et nouveau risque de non-ex\u00e9cution<\/td>\n<\/tr>\n<tr>\n<td>Solder la partie ex\u00e9cut\u00e9e<\/td>\n<td>Ex\u00e9cution inf\u00e9rieure \u00e0 la taille viable<\/td>\n<td>Payer le spread deux fois<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Les transactions \u00e0 deux jambes exigent le plus d&rsquo;attention.<\/strong> Supposons qu&rsquo;une transaction couverte ach\u00e8te 2M sur la plateforme A en IOC et vende sur la plateforme B. Si A ex\u00e9cute 1M et que l&rsquo;algorithme vend quand m\u00eame les 2M pr\u00e9vus, il d\u00e9tient une position courte ouverte de 1M. \u00c0 environ $100 par pip par million sur l&rsquo;EURUSD, un mouvement d\u00e9favorable de 10 pips co\u00fbte $1,000, ce qui d\u00e9passe facilement l&rsquo;avantage de nombreuses transactions. La r\u00e8gle est simple : dimensionnez la seconde jambe \u00e0 partir du CumQty de la premi\u00e8re, jamais de la quantit\u00e9 demand\u00e9e.<\/p>\n<p>Convertissez aussi vers la grille de tailles de la seconde plateforme. Si la premi\u00e8re jambe ex\u00e9cute 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\u00e9finissez \u00e9galement une r\u00e8gle pour ce r\u00e9sidu et traitez tout r\u00e9sidu non couvert comme une limite de risque.<\/p>\n<p>FOK sur la premi\u00e8re jambe supprime l&rsquo;\u00e9cart de taille, mais multiplie les cas sans transaction. FOK sur la seconde jambe est g\u00e9n\u00e9ralement un mauvais choix : lorsque la premi\u00e8re jambe est d\u00e9j\u00e0 ex\u00e9cut\u00e9e, une couverture annul\u00e9e vous laisse totalement expos\u00e9. C&rsquo;est pr\u00e9cis\u00e9ment sur cette seconde jambe que la certitude d&rsquo;ex\u00e9cution vaut d&rsquo;\u00eatre pay\u00e9e.<\/p>\n<h2 id=\"iof-matrix\">Quel ordre pour quelle strat\u00e9gie<\/h2>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/order-type-decision-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Organigramme de d\u00e9cision pour choisir un type d'ordre : si la position doit changer maintenant, utilisez un ordre au march\u00e9 ou un IOC large ; si une ex\u00e9cution partielle est inutile, utilisez FOK ; si vous prenez de la liquidit\u00e9 avec toute taille utile, utilisez une limite IOC ; sinon, placez une limite passive avec Day, GTC ou GTD\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Un point de d\u00e9part pour la d\u00e9cision. Les r\u00e8gles de la plateforme et vos donn\u00e9es d&rsquo;ex\u00e9cution ont le dernier mot.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Situation<\/th>\n<th>Choix par d\u00e9faut raisonnable<\/th>\n<th>Justification<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Entr\u00e9e en arbitrage de latence<\/td>\n<td>Limite IOC au prix d&rsquo;\u00e9quilibre<\/td>\n<td>L&rsquo;avantage s&rsquo;\u00e9rode en quelques millisecondes ; une ex\u00e9cution partielle reste rentable et la limite coupe les extr\u00eames<\/td>\n<\/tr>\n<tr>\n<td>Premi\u00e8re jambe d&rsquo;une paire couverte<\/td>\n<td>Limite FOK ou IOC avec couverture selon CumQty<\/td>\n<td>FOK prot\u00e8ge le dimensionnement ; IOC gagne en taux d&rsquo;ex\u00e9cution, mais exige une meilleure logique<\/td>\n<\/tr>\n<tr>\n<td>Seconde jambe, lorsque la premi\u00e8re est ex\u00e9cut\u00e9e<\/td>\n<td>Au march\u00e9 ou IOC large<\/td>\n<td>Rester sans couverture est le risque le plus important<\/td>\n<\/tr>\n<tr>\n<td>Entr\u00e9e li\u00e9e aux annonces<\/td>\n<td>Limite IOC, taille r\u00e9duite<\/td>\n<td>Les spreads et la profondeur changent rapidement, et un ordre au march\u00e9 n&rsquo;a pas de plafond<\/td>\n<\/tr>\n<tr>\n<td>Sortie d&rsquo;urgence ou stop-out<\/td>\n<td>Au march\u00e9 ou IOC large, r\u00e9p\u00e9t\u00e9 jusqu&rsquo;\u00e0 la cl\u00f4ture compl\u00e8te<\/td>\n<td>La certitude d&rsquo;abord ; un FOK peut laisser la position ouverte<\/td>\n<\/tr>\n<tr>\n<td>Trading de paires ou statistique<\/td>\n<td>Limite IOC ou limite passive de courte dur\u00e9e<\/td>\n<td>La p\u00e9riode de d\u00e9tention est plus longue : le spread pay\u00e9 compte donc plus que la vitesse<\/td>\n<\/tr>\n<tr>\n<td>Capture de spread et r\u00e9\u00e9quilibrage<\/td>\n<td>Limite passive, Day ou GTD<\/td>\n<td>Vous \u00eates pay\u00e9 pour attendre, et vous devez annuler avant les annonces et le rollover<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>L&rsquo;ex\u00e9cution d\u00e9pend aussi du moment. Autour du <a href=\"https:\/\/bjftradinggroup.com\/forex-spread-widening\/\">rollover et des annonces, les spreads s&rsquo;\u00e9largissent et la profondeur diminue<\/a> : une limite qui s&rsquo;ex\u00e9cute bien \u00e0 midi \u00e0 Londres peut \u00e9chouer ou devenir co\u00fbteuse pendant ces p\u00e9riodes. Faites d\u00e9pendre la tol\u00e9rance et la taille du spread actuel au lieu de les figer pour toute la journ\u00e9e. Pour approfondir les strat\u00e9gies sensibles \u00e0 la vitesse, consultez notre guide sur <a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage\/\">l&rsquo;arbitrage de latence<\/a>.<\/p>\n<h2 id=\"iof-howto\">Sept \u00e9tapes pour configurer l&rsquo;ex\u00e9cution des ordres<\/h2>\n<div class=\"iof-steps\">\n<div class=\"iof-step\"><span class=\"iof-step-n\">1<\/span><\/p>\n<div><strong>Chiffrez la transaction manqu\u00e9e.<\/strong> D\u00e9terminez ce que co\u00fbte une absence d&rsquo;ex\u00e9cution. Pour une entr\u00e9e facultative, c&rsquo;est z\u00e9ro ; pour une couverture ou une sortie, c&rsquo;est un risque ouvert.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">2<\/span><\/p>\n<div><strong>Calculez le pire prix acceptable.<\/strong> Prenez l&rsquo;avantage attendu, soustrayez la commission et une marge de s\u00e9curit\u00e9, puis placez la limite \u00e0 ce point d&rsquo;\u00e9quilibre.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">3<\/span><\/p>\n<div><strong>Choisissez la dur\u00e9e de vie.<\/strong> Utilisez IOC ou FOK pour prendre de la liquidit\u00e9 et Day, GTC ou GTD pour les ordres en attente.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">4<\/span><\/p>\n<div><strong>Fixez la plus petite ex\u00e9cution utile.<\/strong> Utilisez FOK, ou une quantit\u00e9 minimale lorsqu&rsquo;elle est prise en charge, si de petites ex\u00e9cutions ne peuvent pas couvrir les co\u00fbts fixes.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">5<\/span><\/p>\n<div><strong>R\u00e9digez la r\u00e8gle du reliquat.<\/strong> D\u00e9finissez les nouvelles tentatives, leur nombre maximal et le sort de tout r\u00e9sidu non couvert.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">6<\/span><\/p>\n<div><strong>Confirmez les r\u00e8gles de la plateforme.<\/strong> V\u00e9rifiez les paires type d&rsquo;ordre et TIF prises en charge, les pas de taille, la fa\u00e7on dont les reliquats sont signal\u00e9s et l&rsquo;application \u00e9ventuelle du last look.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">7<\/span><\/p>\n<div><strong>Journalisez et analysez.<\/strong> Enregistrez chaque ordre, y compris les rejets et les annulations, et ajustez la limite \u00e0 partir des donn\u00e9es d&rsquo;ex\u00e9cution r\u00e9elles.<\/div>\n<\/div>\n<\/div>\n<h2 id=\"iof-mistakes\">Erreurs fr\u00e9quentes dans la gestion automatis\u00e9e des ordres<\/h2>\n<ul class=\"iof-checks\">\n<li><strong>Supposer que la taille demand\u00e9e a \u00e9t\u00e9 ex\u00e9cut\u00e9e.<\/strong> La position doit provenir des rapports d&rsquo;ex\u00e9cution, et non de l&rsquo;ordre envoy\u00e9.<\/li>\n<li><strong>Traiter un FOK annul\u00e9 comme une erreur syst\u00e8me.<\/strong> C&rsquo;est un r\u00e9sultat normal. D\u00e9clencher une alerte \u00e0 chaque fois vous habitue \u00e0 ignorer les alertes ; alertez plut\u00f4t sur le taux.<\/li>\n<li><strong>R\u00e9essayer au m\u00eame prix en boucle.<\/strong> Si le prix a boug\u00e9, la nouvelle tentative \u00e9choue aussi, et des tentatives rapides peuvent enfreindre les limites de messages. Recalculez le prix ou arr\u00eatez.<\/li>\n<li><strong>Ignorer l&rsquo;\u00e9tat inconnu.<\/strong> Lorsqu&rsquo;aucune r\u00e9ponse n&rsquo;arrive, l&rsquo;ordre peut \u00eatre encore actif ou d\u00e9j\u00e0 ex\u00e9cut\u00e9. Interrogez-le avec un OrderStatusRequest (<code>35=H<\/code>) ou r\u00e9conciliez la position apr\u00e8s la reconnexion avant d&rsquo;envoyer un ordre de remplacement.<\/li>\n<li><strong>R\u00e9utiliser des valeurs ClOrdID.<\/strong> Un tag 11 unique pour chaque ordre, y compris chaque nouvelle tentative, est ce qui rend la r\u00e9conciliation possible.<\/li>\n<li><strong>Utiliser des prix obsol\u00e8tes pour la limite.<\/strong> Une limite calcul\u00e9e \u00e0 partir d&rsquo;une cotation retard\u00e9e est soit trop serr\u00e9e, soit trop g\u00e9n\u00e9reuse. Un <a href=\"https:\/\/bjftradinggroup.com\/fast-feed-for-arbitrage\/\">flux de prix rapide<\/a> donne tout son sens \u00e0 la tol\u00e9rance.<\/li>\n<li><strong>Tester avec des ex\u00e9cutions parfaites.<\/strong> Un backtest qui ex\u00e9cute chaque ordre en totalit\u00e9 \u00e0 la cotation ne peut pas distinguer un ordre au march\u00e9 d&rsquo;un IOC ou d&rsquo;un FOK. Mod\u00e9lisez la profondeur et les rejets, ou faites un forward test avec une petite taille.<\/li>\n<li><strong>Reporter les r\u00e9glages d&rsquo;une plateforme \u00e0 l&rsquo;autre.<\/strong> Une tol\u00e9rance ajust\u00e9e chez un courtier ne dit pas grand-chose d&rsquo;un autre, car la profondeur, le last look et la latence diff\u00e8rent tous.<\/li>\n<\/ul>\n<h2 id=\"iof-measure\">Ce qu&rsquo;il faut mesurer<\/h2>\n<p>Le choix d&rsquo;un type d&rsquo;ordre est une question empirique, et seul un journal complet peut y r\u00e9pondre. Les rapports doivent couvrir les signaux et les tentatives, et pas seulement les transactions r\u00e9alis\u00e9es.<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Indicateur<\/th>\n<th>D\u00e9finition<\/th>\n<th>Ce qu&rsquo;il vous indique<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Ratio d&rsquo;ex\u00e9cution<\/td>\n<td>Quantit\u00e9 ex\u00e9cut\u00e9e \/ quantit\u00e9 demand\u00e9e<\/td>\n<td>Trop bas : la limite est serr\u00e9e ou la profondeur est faible<\/td>\n<\/tr>\n<tr>\n<td>Taux de rejet<\/td>\n<td>Ordres rejet\u00e9s ou annul\u00e9s \/ ordres envoy\u00e9s<\/td>\n<td>Une hausse soudaine sugg\u00e8re un changement de liquidit\u00e9 ou de courtier<\/td>\n<\/tr>\n<tr>\n<td>Slippage<\/td>\n<td>Prix d&rsquo;ex\u00e9cution moins prix de r\u00e9f\u00e9rence au signal, avec signe<\/td>\n<td>Co\u00fbt d&rsquo;ex\u00e9cution par transaction ex\u00e9cut\u00e9e<\/td>\n<\/tr>\n<tr>\n<td>Temps aller-retour<\/td>\n<td>De l&rsquo;envoi de l&rsquo;ordre au premier rapport d&rsquo;ex\u00e9cution<\/td>\n<td>Si la plateforme ralentit, selon l&rsquo;heure de la journ\u00e9e<\/td>\n<\/tr>\n<tr>\n<td>Net par signal<\/td>\n<td>R\u00e9sultat total \/ tous les signaux, y compris ceux manqu\u00e9s<\/td>\n<td>Le chiffre qui doit guider la tol\u00e9rance<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Ventilez ces chiffres par symbole, plateforme, heure et type d&rsquo;ordre, et comparez les r\u00e9sultats avant et apr\u00e8s chaque modification. SharpTrader affiche les ordres et les statistiques de performance avec le PnL, le slippage et le temps d&rsquo;ex\u00e9cution, ce qui constitue une base pratique pour ce type d&rsquo;analyse. Les types d&rsquo;ordres et les valeurs TIF disponibles dans une configuration donn\u00e9e d\u00e9pendent du connecteur et du courtier : v\u00e9rifiez-les pour votre propre compte.<\/p>\n<div class=\"iof-cta\">\n<h3>Construisez votre ex\u00e9cution \u00e0 partir de vos propres donn\u00e9es<\/h3>\n<p>SharpTrader se connecte aux courtiers via FIX API et d&rsquo;autres protocoles, ex\u00e9cute des strat\u00e9gies d&rsquo;arbitrage et hors arbitrage, et enregistre le slippage et le temps d&rsquo;ex\u00e9cution de chaque ordre. Pour ajuster les param\u00e8tres \u00e0 partir de ces donn\u00e9es, SharpTrader Optimizer automatise la recherche.<\/p>\n<p><a class=\"iof-btn\" href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-forex-crypto-arbitrage\/\">D\u00e9couvrir SharpTrader<\/a><a class=\"iof-btn iof-btn-alt\" href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-optimizer\/\">SharpTrader Optimizer<\/a>\n<\/div>\n<div class=\"bjf-ff-wrap\"><div class=\"bjf-ff\" id=\"bjfff7741\" style=\"max-width:640px;margin:28px auto;padding:24px 26px;border:1px solid #d9e1ec;border-radius:12px;background:#f6f8fb\">\n<p style=\"margin:0 0 6px;font-size:20px;font-weight:700;color:#0f1b2d\">Scanner d\u2019arbitrage gratuit + mini-cours par e-mail<\/p>\n<p style=\"margin:0 0 16px;font-size:15px;line-height:1.55;color:#44505f\">Recevez le lien du scanner gratuit et quelques e-mails courts et pratiques de Boris : ce que signifie vraiment un \u00e9cart de prix apr\u00e8s les co\u00fbts, comment tester une strat\u00e9gie avant de risquer de l\u2019argent r\u00e9el et quels outils conviennent \u00e0 votre march\u00e9. Sans promesses exag\u00e9r\u00e9es. Les e-mails sont r\u00e9dig\u00e9s en anglais.<\/p>\n<form method=\"post\" novalidate>\n<input type=\"hidden\" name=\"market\" value=\"forex\"><input type=\"hidden\" name=\"source\" value=\"blog\"><input type=\"hidden\" name=\"ts\" value=\"1793827038\"><input type=\"hidden\" name=\"ref\" value=\"ioc-fok-order-types-algo-trading\"><input type=\"hidden\" name=\"lang\" value=\"fr\"><div style=\"position:absolute;left:-9999px\" aria-hidden=\"true\"><label>Website<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div>\n<div style=\"display:flex;flex-wrap:wrap;gap:10px\">\n<input type=\"text\" name=\"first_name\" placeholder=\"Pr\u00e9nom\" aria-label=\"Pr\u00e9nom\" autocomplete=\"given-name\" style=\"flex:1 1 160px;min-width:0;padding:11px 12px;border:1px solid #c9d3df;border-radius:8px;font-size:15px\">\n<input type=\"email\" name=\"email\" required placeholder=\"E-mail\" aria-label=\"E-mail\" autocomplete=\"email\" style=\"flex:2 1 220px;min-width:0;padding:11px 12px;border:1px solid #c9d3df;border-radius:8px;font-size:15px\">\n<button type=\"submit\" style=\"flex:1 1 160px;padding:11px 16px;border:0;border-radius:8px;background:#c9962a;color:#0f1b2d;font-weight:700;font-size:15px;cursor:pointer\">Envoyez-le-moi<\/button>\n<\/div>\n<p style=\"margin:10px 0 0;font-size:12px;line-height:1.5;color:#6b7785\">En envoyant ce formulaire, vous acceptez de recevoir des e-mails de BJF Trading Group sur les outils d\u2019arbitrage et les logiciels de trading. D\u00e9sinscription possible \u00e0 tout moment. Consultez notre <a href=\"https:\/\/bjftradinggroup.com\/fr\/privacy-policy\/\">Politique de confidentialit\u00e9<\/a>.<\/p>\n<p class=\"bjf-ff-msg\" role=\"status\" style=\"margin:10px 0 0;font-size:15px;font-weight:600\"><\/p>\n<\/form><\/div>\n<script>(function(){var M={\"invalid\":\"Veuillez saisir une adresse e-mail valide.\",\"sending\":\"Envoi\\u2026\",\"done\":\"C\\u2019est fait ! Consultez votre bo\\u00eete de r\\u00e9ception dans quelques minutes.\",\"err\":\"Une erreur s\\u2019est produite, veuillez r\\u00e9essayer.\",\"net\":\"Erreur r\\u00e9seau, veuillez r\\u00e9essayer.\",\"srv\":false};var b=document.getElementById('bjfff7741');if(!b)return;var f=b.querySelector('form'),m=b.querySelector('.bjf-ff-msg');f.addEventListener('submit',function(e){e.preventDefault();var d=new FormData(f);if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(d.get('email')||'')){m.style.color='#b42318';m.textContent=M.invalid;return;}var btn=f.querySelector('button');btn.disabled=true;m.style.color='#44505f';m.textContent=M.sending;fetch('\/wp-json\/bjf\/v1\/subscribe',{method:'POST',body:d}).then(function(r){return r.json()}).then(function(j){if(j&&j.ok){m.style.color='#1a7f4b';m.textContent=M.done;f.querySelectorAll('input,button').forEach(function(x){x.disabled=true});if(window.gtag)gtag('event','generate_lead',{form_source:d.get('source')});if(window.fbq)fbq('track','Lead',{content_name:d.get('source')});}else{btn.disabled=false;m.style.color='#b42318';m.textContent=(M.srv&&j&&j.msg)||M.err;}}).catch(function(){btn.disabled=false;m.style.color='#b42318';m.textContent=M.net;});});})();<\/script>\n<\/div>\n<h2 id=\"iof-faq\">Questions fr\u00e9quentes<\/h2>\n<div class=\"iof-faq\">\n<h3>Quelle est la diff\u00e9rence entre IOC et FOK ?<\/h3>\n<p>Les deux s&rsquo;ex\u00e9cutent imm\u00e9diatement et ne restent jamais dans le carnet. IOC accepte une ex\u00e9cution partielle et annule le reliquat non ex\u00e9cut\u00e9. FOK exige que toute la quantit\u00e9 soit ex\u00e9cut\u00e9e d&rsquo;un coup ; sinon, l&rsquo;ordre entier est annul\u00e9 et rien n&rsquo;est trait\u00e9.<\/p>\n<h3>FOK est-il meilleur qu&rsquo;IOC ?<\/h3>\n<p>Aucun n&rsquo;est meilleur dans l&rsquo;absolu. FOK convient aux transactions pour lesquelles une position partielle est inutile ou complique la couverture. IOC traite g\u00e9n\u00e9ralement plus souvent, car une partie de la taille passe, mais votre algorithme doit g\u00e9rer correctement les ex\u00e9cutions partielles.<\/p>\n<h3>Un ordre FOK peut-il \u00eatre partiellement ex\u00e9cut\u00e9 ?<\/h3>\n<p>Non. Par d\u00e9finition, un ordre FOK est ex\u00e9cut\u00e9 en totalit\u00e9 ou pas du tout. Si vous constatez une ex\u00e9cution partielle, l&rsquo;ordre n&rsquo;\u00e9tait pas un v\u00e9ritable FOK sur cette plateforme : v\u00e9rifiez comment le courtier traduit l&rsquo;instruction.<\/p>\n<h3>Que devient la partie non ex\u00e9cut\u00e9e d&rsquo;un ordre IOC ?<\/h3>\n<p>Elle est annul\u00e9e imm\u00e9diatement et ne reste jamais dans le carnet. En FIX, vous recevez un rapport d&rsquo;ex\u00e9cution qui cl\u00f4ture l&rsquo;ordre, g\u00e9n\u00e9ralement avec le statut Canceled ou Expired selon la plateforme, avec un LeavesQty de 0.<\/p>\n<h3>Un ordre au march\u00e9 est-il identique \u00e0 un ordre IOC ?<\/h3>\n<p>Pas exactement. Un ordre au march\u00e9 n&rsquo;a pas de limite de prix, alors qu&rsquo;un IOC en a normalement une. De nombreuses plateformes ex\u00e9cutent les ordres au march\u00e9 avec un comportement IOC ou FOK : la dur\u00e9e de vie peut donc \u00eatre la m\u00eame, mais seule une limite prot\u00e8ge le prix.<\/p>\n<h3>Quelles sont les valeurs FIX pour IOC et FOK ?<\/h3>\n<p>Dans le champ TimeInForce, tag 59, IOC vaut 3 et FOK vaut 4. Le type d&rsquo;ordre est d\u00e9fini s\u00e9par\u00e9ment dans le tag 40, o\u00f9 1 correspond au march\u00e9 et 2 \u00e0 la limite.<\/p>\n<h3>Tous les courtiers forex prennent-ils en charge IOC et FOK ?<\/h3>\n<p>Non. La prise en charge d\u00e9pend du courtier, de la plateforme et du type de connexion. Les connexions FIX API offrent g\u00e9n\u00e9ralement plus de contr\u00f4le, mais chaque plateforme publie sa propre liste de combinaisons accept\u00e9es entre type d&rsquo;ordre et dur\u00e9e de validit\u00e9.<\/p>\n<\/div>\n<p class=\"iof-note\">Cet article est p\u00e9dagogique et ne constitue pas un conseil en investissement. Le carnet d&rsquo;ordres et le mod\u00e8le sont des exemples illustratifs, et non des r\u00e9sultats de trading. Le trading sur le march\u00e9 des changes comporte un risque de perte important.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"Article\",\n      \"headline\": \"IOC vs FOK, ordres au march\u00e9 et \u00e0 cours limit\u00e9 : les types d'ordres pour l'ex\u00e9cution algorithmique sur le forex\",\n      \"description\": \"IOC vs FOK expliqu\u00e9s avec un carnet d'ordres chiffr\u00e9, les tags FIX, le last look, la gestion des ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite dans les algorithmes forex.\",\n      \"image\": \"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\n      \"author\": {\n        \"@type\": \"Organization\",\n        \"name\": \"BJF Trading Group\",\n        \"url\": \"https:\/\/bjftradinggroup.com\/\"\n      },\n      \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"BJF Trading Group\",\n        \"url\": \"https:\/\/bjftradinggroup.com\/\"\n      },\n      \"datePublished\": \"2026-11-04\",\n      \"dateModified\": \"2026-11-04\",\n      \"mainEntityOfPage\": \"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/\"\n    },\n    {\n      \"@type\": \"HowTo\",\n      \"name\": \"Comment configurer l'ex\u00e9cution des ordres d'un algorithme forex\",\n      \"step\": [\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 1,\n          \"name\": \"Chiffrez la transaction manqu\u00e9e\",\n          \"text\": \"Chiffrez la transaction manqu\u00e9e. D\u00e9terminez ce que co\u00fbte une absence d'ex\u00e9cution. Pour une entr\u00e9e facultative, c'est z\u00e9ro ; pour une couverture ou une sortie, c'est un risque ouvert.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 2,\n          \"name\": \"Calculez le pire prix acceptable\",\n          \"text\": \"Calculez le pire prix acceptable. Prenez l'avantage attendu, soustrayez la commission et une marge de s\u00e9curit\u00e9, puis placez la limite \u00e0 ce point d'\u00e9quilibre.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 3,\n          \"name\": \"Choisissez la dur\u00e9e de vie\",\n          \"text\": \"Choisissez la dur\u00e9e de vie. Utilisez IOC ou FOK pour prendre de la liquidit\u00e9 et Day, GTC ou GTD pour les ordres en attente.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 4,\n          \"name\": \"Fixez la plus petite ex\u00e9cution utile\",\n          \"text\": \"Fixez la plus petite ex\u00e9cution utile. Utilisez FOK, ou une quantit\u00e9 minimale lorsqu'elle est prise en charge, si de petites ex\u00e9cutions ne peuvent pas couvrir les co\u00fbts fixes.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 5,\n          \"name\": \"R\u00e9digez la r\u00e8gle du reliquat\",\n          \"text\": \"R\u00e9digez la r\u00e8gle du reliquat. D\u00e9finissez les nouvelles tentatives, leur nombre maximal et le sort de tout r\u00e9sidu non couvert.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 6,\n          \"name\": \"Confirmez les r\u00e8gles de la plateforme\",\n          \"text\": \"Confirmez les r\u00e8gles de la plateforme. V\u00e9rifiez les paires type d'ordre et TIF prises en charge, les pas de taille, la fa\u00e7on dont les reliquats sont signal\u00e9s et l'application \u00e9ventuelle du last look.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 7,\n          \"name\": \"Journalisez et analysez\",\n          \"text\": \"Journalisez et analysez. Enregistrez chaque ordre, y compris les rejets et les annulations, et ajustez la limite \u00e0 partir des donn\u00e9es d'ex\u00e9cution r\u00e9elles.\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Quelle est la diff\u00e9rence entre IOC et FOK ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Les deux s'ex\u00e9cutent imm\u00e9diatement et ne restent jamais dans le carnet. IOC accepte une ex\u00e9cution partielle et annule le reliquat non ex\u00e9cut\u00e9. FOK exige que toute la quantit\u00e9 soit ex\u00e9cut\u00e9e d'un coup ; sinon, l'ordre entier est annul\u00e9 et rien n'est trait\u00e9.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"FOK est-il meilleur qu'IOC ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"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\u00e9n\u00e9ralement plus souvent, car une partie de la taille passe, mais votre algorithme doit g\u00e9rer correctement les ex\u00e9cutions partielles.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Un ordre FOK peut-il \u00eatre partiellement ex\u00e9cut\u00e9 ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Non. Par d\u00e9finition, un ordre FOK est ex\u00e9cut\u00e9 en totalit\u00e9 ou pas du tout. Si vous constatez une ex\u00e9cution partielle, l'ordre n'\u00e9tait pas un v\u00e9ritable FOK sur cette plateforme : v\u00e9rifiez comment le courtier traduit l'instruction.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Que devient la partie non ex\u00e9cut\u00e9e d'un ordre IOC ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Elle est annul\u00e9e imm\u00e9diatement et ne reste jamais dans le carnet. En FIX, vous recevez un rapport d'ex\u00e9cution qui cl\u00f4ture l'ordre, g\u00e9n\u00e9ralement avec le statut Canceled ou Expired selon la plateforme, avec un LeavesQty de 0.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Un ordre au march\u00e9 est-il identique \u00e0 un ordre IOC ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Pas exactement. Un ordre au march\u00e9 n'a pas de limite de prix, alors qu'un IOC en a normalement une. De nombreuses plateformes ex\u00e9cutent les ordres au march\u00e9 avec un comportement IOC ou FOK : la dur\u00e9e de vie peut donc \u00eatre la m\u00eame, mais seule une limite prot\u00e8ge le prix.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Quelles sont les valeurs FIX pour IOC et FOK ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Dans le champ TimeInForce, tag 59, IOC vaut 3 et FOK vaut 4. Le type d'ordre est d\u00e9fini s\u00e9par\u00e9ment dans le tag 40, o\u00f9 1 correspond au march\u00e9 et 2 \u00e0 la limite.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Tous les courtiers forex prennent-ils en charge IOC et FOK ?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Non. La prise en charge d\u00e9pend du courtier, de la plateforme et du type de connexion. Les connexions FIX API offrent g\u00e9n\u00e9ralement plus de contr\u00f4le, mais chaque plateforme publie sa propre liste de combinaisons accept\u00e9es entre type d'ordre et dur\u00e9e de validit\u00e9.\"\n          }\n        }\n      ]\n    }\n  ]\n}\n<\/script>\n<\/div>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>IOC vs FOK et les autres types d&rsquo;ordres entre lesquels un algorithme doit choisir : comment les ordres au march\u00e9, \u00e0 cours limit\u00e9 et stop se combinent avec la dur\u00e9e de validit\u00e9, un carnet d&rsquo;ordres et trois r\u00e9sultats, les tags FIX et les rapports d&rsquo;ex\u00e9cution, le last look, o\u00f9 placer la limite, la gestion des ex\u00e9cutions partielles et une matrice des strat\u00e9gies.<\/p>\n","protected":false},"author":1,"featured_media":15931,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[53,221],"tags":[],"class_list":["post-15930","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arbitrage-software","category-forex-trading"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.7 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>IOC vs FOK : choisir ses ordres sur le forex algorithmique<\/title>\n<meta name=\"description\" content=\"IOC vs FOK expliqu\u00e9s avec un carnet d&#039;ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bjftradinggroup.com\/fr\/ioc-fok-order-types-algo-trading\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IOC vs FOK : choisir ses ordres sur le forex algorithmique\" \/>\n<meta property=\"og:description\" content=\"IOC vs FOK expliqu\u00e9s avec un carnet d&#039;ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bjftradinggroup.com\/fr\/ioc-fok-order-types-algo-trading\/\" \/>\n<meta property=\"og:site_name\" content=\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/bjftradinggroup\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-04T15:22:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Boris Fesenko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Boris Fesenko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"},\"author\":{\"name\":\"Boris Fesenko\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\"},\"headline\":\"IOC vs FOK, ordres au march\u00e9 et \u00e0 cours limit\u00e9 : les types d&rsquo;ordres pour l&rsquo;ex\u00e9cution algorithmique sur le forex\",\"datePublished\":\"2026-11-04T15:22:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"},\"wordCount\":41110,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"articleSection\":[\"Arbitrage Software\",\"Forex trading\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#respond\"]}],\"name\":\"IOC vs FOK : choisir ses ordres sur le forex algorithmique\",\"description\":\"IOC vs FOK expliqu\u00e9s avec un carnet d'ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.\",\"publisher\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\",\"name\":\"IOC vs FOK : choisir ses ordres sur le forex algorithmique\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"datePublished\":\"2026-11-04T15:22:19+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\"},\"description\":\"IOC vs FOK expliqu\u00e9s avec un carnet d'ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"contentUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"width\":1200,\"height\":630,\"caption\":\"IOC vs FOK order types for algorithmic forex execution: an order book ladder with a limit line\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bjftradinggroup.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IOC vs FOK, Market and Limit Orders: Order Types for Algorithmic Forex Execution\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"name\":\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\",\"description\":\"FX Software pioneer since 2000\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bjftradinggroup.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\",\"name\":\"Boris Fesenko\",\"pronouns\":\"He\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"caption\":\"Boris Fesenko\"},\"description\":\"Born in 1971 in Ukraine, I graduated from East Ukrainian State University and later completed postgraduate studies at the same university, where I also wrote my PhD dissertation. In 2006, I moved to Canada. I am the founder of BJF Trading Group and specialize in the development and implementation of advanced arbitrage trading systems for the Forex and cryptocurrency markets, as well as other trading solutions.\",\"sameAs\":[\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\",\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.instagram.com\\\/bjftradinggroup\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/bjftradinggroup\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCapi2ct0Iv7axHJ93wN_bsQ\"],\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/fr\\\/author\\\/boris\\\/\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\",\"name\":\"BJF Trading Group Inc.\",\"legalName\":\"BJF Trading Group Inc.\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/logo.png\",\"width\":512,\"height\":512},\"foundingDate\":\"2000\",\"founder\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\\\/#person\"},\"address\":{\"@type\":\"PostalAddress\",\"addressRegion\":\"Ontario\",\"addressCountry\":\"CA\"},\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"support@bjftradinggroup.com\",\"availableLanguage\":[\"English\",\"German\",\"Japanese\",\"Korean\",\"Spanish\",\"Portuguese\",\"Arabic\",\"Indonesian\",\"Vietnamese\"]}],\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/twitter.com\\\/BjfGroup\",\"https:\\\/\\\/www.youtube.com\\\/@bjftradinggroup\",\"https:\\\/\\\/t.me\\\/bjftradinggroup\",\"https:\\\/\\\/instagram.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bjf-trading-group\\\/\"],\"knowsAbout\":[\"Forex arbitrage\",\"Cryptocurrency arbitrage\",\"Latency arbitrage\",\"News trading\",\"FIX API trading\",\"High-frequency trading\",\"Lock arbitrage\",\"Hedge arbitrage\",\"Pair trading\",\"Algorithmic trading software\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"IOC vs FOK : choisir ses ordres sur le forex algorithmique","description":"IOC vs FOK expliqu\u00e9s avec un carnet d'ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bjftradinggroup.com\/fr\/ioc-fok-order-types-algo-trading\/","og_locale":"fr_FR","og_type":"article","og_title":"IOC vs FOK : choisir ses ordres sur le forex algorithmique","og_description":"IOC vs FOK expliqu\u00e9s avec un carnet d'ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.","og_url":"https:\/\/bjftradinggroup.com\/fr\/ioc-fok-order-types-algo-trading\/","og_site_name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","article_author":"https:\/\/www.facebook.com\/bjftradinggroup","article_published_time":"2026-11-04T15:22:19+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","type":"image\/webp"}],"author":"Boris Fesenko","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"Boris Fesenko","Dur\u00e9e de lecture estim\u00e9e":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#article","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"},"author":{"name":"Boris Fesenko","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9"},"headline":"IOC vs FOK, ordres au march\u00e9 et \u00e0 cours limit\u00e9 : les types d&rsquo;ordres pour l&rsquo;ex\u00e9cution algorithmique sur le forex","datePublished":"2026-11-04T15:22:19+00:00","mainEntityOfPage":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"},"wordCount":41110,"commentCount":0,"image":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage"},"thumbnailUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","articleSection":["Arbitrage Software","Forex trading"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#respond"]}],"name":"IOC vs FOK : choisir ses ordres sur le forex algorithmique","description":"IOC vs FOK expliqu\u00e9s avec un carnet d'ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.","publisher":{"@id":"https:\/\/bjftradinggroup.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/","url":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/","name":"IOC vs FOK : choisir ses ordres sur le forex algorithmique","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage"},"image":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage"},"thumbnailUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","datePublished":"2026-11-04T15:22:19+00:00","author":{"@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9"},"description":"IOC vs FOK expliqu\u00e9s avec un carnet d'ordres chiffr\u00e9, les tags FIX, le last look, les ex\u00e9cutions partielles et un mod\u00e8le pour placer le prix limite.","breadcrumb":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","contentUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","width":1200,"height":630,"caption":"IOC vs FOK order types for algorithmic forex execution: an order book ladder with a limit line"},{"@type":"BreadcrumbList","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bjftradinggroup.com\/"},{"@type":"ListItem","position":2,"name":"IOC vs FOK, Market and Limit Orders: Order Types for Algorithmic Forex Execution"}]},{"@type":"WebSite","@id":"https:\/\/bjftradinggroup.com\/#website","url":"https:\/\/bjftradinggroup.com\/","name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","description":"FX Software pioneer since 2000","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bjftradinggroup.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9","name":"Boris Fesenko","pronouns":"He","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","caption":"Boris Fesenko"},"description":"Born in 1971 in Ukraine, I graduated from East Ukrainian State University and later completed postgraduate studies at the same university, where I also wrote my PhD dissertation. In 2006, I moved to Canada. I am the founder of BJF Trading Group and specialize in the development and implementation of advanced arbitrage trading systems for the Forex and cryptocurrency markets, as well as other trading solutions.","sameAs":["https:\/\/bjftradinggroup.com\/about-boris-fesenko","https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/www.instagram.com\/bjftradinggroup\/","https:\/\/www.linkedin.com\/in\/bjftradinggroup\/","https:\/\/www.youtube.com\/channel\/UCapi2ct0Iv7axHJ93wN_bsQ"],"url":"https:\/\/bjftradinggroup.com\/fr\/author\/boris\/"},{"@type":"Organization","@id":"https:\/\/bjftradinggroup.com\/#organization","name":"BJF Trading Group Inc.","legalName":"BJF Trading Group Inc.","url":"https:\/\/bjftradinggroup.com\/","logo":{"@type":"ImageObject","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/logo.png","width":512,"height":512},"foundingDate":"2000","founder":{"@id":"https:\/\/bjftradinggroup.com\/about-boris-fesenko\/#person"},"address":{"@type":"PostalAddress","addressRegion":"Ontario","addressCountry":"CA"},"contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@bjftradinggroup.com","availableLanguage":["English","German","Japanese","Korean","Spanish","Portuguese","Arabic","Indonesian","Vietnamese"]}],"sameAs":["https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/twitter.com\/BjfGroup","https:\/\/www.youtube.com\/@bjftradinggroup","https:\/\/t.me\/bjftradinggroup","https:\/\/instagram.com\/bjftradinggroup","https:\/\/www.linkedin.com\/company\/bjf-trading-group\/"],"knowsAbout":["Forex arbitrage","Cryptocurrency arbitrage","Latency arbitrage","News trading","FIX API trading","High-frequency trading","Lock arbitrage","Hedge arbitrage","Pair trading","Algorithmic trading software"]}]}},"_links":{"self":[{"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/posts\/15930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/comments?post=15930"}],"version-history":[{"count":37,"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/posts\/15930\/revisions"}],"predecessor-version":[{"id":15972,"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/posts\/15930\/revisions\/15972"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/media\/15931"}],"wp:attachment":[{"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/media?parent=15930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/categories?post=15930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/fr\/wp-json\/wp\/v2\/tags?post=15930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}