{"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\/it\/ioc-fok-order-types-algo-trading\/","title":{"rendered":"IOC vs FOK, ordini a mercato e limite: i tipi di ordine per l&#8217;esecuzione algoritmica nel 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 ESECUZIONE FOREX<\/span><\/p>\n<h2>IOC, FOK, a mercato o limite: <span class=\"iof-gold\">scegliere l&#8217;ordine giusto per il trade<\/span><\/h2>\n<p class=\"iof-hero-sub\">Un tipo di ordine \u00e8 una decisione su che cosa preferisci subire: un prezzo peggiore, un&#8217;esecuzione pi\u00f9 piccola o nessuna esecuzione. Questa guida mostra come si comporta ogni istruzione nel book, nei messaggi FIX e in presenza di last look, con esempi numerici per un algoritmo che deve scegliere in pochi millisecondi.<\/p>\n<\/div>\n<div class=\"iof-answer\">\n<p><strong>Risposta breve: IOC vs FOK.<\/strong> Un ordine Immediate-or-Cancel (IOC) prende ci\u00f2 che \u00e8 disponibile in quel momento al tuo prezzo o a un prezzo migliore e cancella il resto, quindi \u00e8 possibile un&#8217;esecuzione parziale. Un ordine Fill-or-Kill (FOK) deve essere eseguito per intero e immediatamente, altrimenti viene cancellato del tutto: o ottieni tutto o niente. Usa IOC quando qualsiasi parte della size ti \u00e8 utile, e FOK quando una posizione parziale sarebbe peggio di nessuna posizione.<\/p>\n<\/div>\n<div class=\"iof-toc\">\n<strong>In questa guida<\/strong><\/p>\n<ol>\n<li><a href=\"#iof-two-decisions\">Tipo di ordine e time in force sono due decisioni<\/a><\/li>\n<li><a href=\"#iof-market\">Gli ordini a mercato nel forex<\/a><\/li>\n<li><a href=\"#iof-limit\">Ordini limite, marketable limit e stop<\/a><\/li>\n<li><a href=\"#iof-tif\">Time in force: IOC, FOK, GTC, Day, GTD<\/a><\/li>\n<li><a href=\"#iof-example\">IOC vs FOK vs mercato: un book, tre risultati<\/a><\/li>\n<li><a href=\"#iof-fix\">Come appaiono gli ordini in FIX<\/a><\/li>\n<li><a href=\"#iof-lastlook\">Liquidit\u00e0 full-amount e last look<\/a><\/li>\n<li><a href=\"#iof-tolerance\">Dove mettere il limite: un modello con i numeri<\/a><\/li>\n<li><a href=\"#iof-partial\">Gestire le esecuzioni parziali<\/a><\/li>\n<li><a href=\"#iof-matrix\">Quale ordine per quale strategia<\/a><\/li>\n<li><a href=\"#iof-howto\">Sette passi per configurare l&#8217;esecuzione<\/a><\/li>\n<li><a href=\"#iof-mistakes\">Errori comuni<\/a><\/li>\n<li><a href=\"#iof-measure\">Che cosa misurare<\/a><\/li>\n<li><a href=\"#iof-faq\">Domande frequenti<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"iof-two-decisions\">Tipo di ordine e time in force sono due decisioni separate<\/h2>\n<p>La maggior parte dei glossari elenca mercato, limite, stop, IOC e FOK come se fossero cinque opzioni dello stesso menu. Non \u00e8 cos\u00ec. Dietro ci sono due domande indipendenti, e un algoritmo deve rispondere a entrambe per ogni ordine:<\/p>\n<ul>\n<li><strong>Quale prezzo sono disposto ad accettare?<\/strong> Questo \u00e8 il tipo di ordine: a mercato (qualsiasi prezzo), limite (questo prezzo o migliore), stop (si attiva quando un trigger viene scambiato o quotato).<\/li>\n<li><strong>Per quanto tempo pu\u00f2 restare attivo l&#8217;ordine?<\/strong> Questo \u00e8 il time in force, o TIF: immediatamente (IOC, FOK), fino alla fine della sessione (Day), fino alla cancellazione (GTC) o fino a un orario prestabilito (GTD).<\/li>\n<\/ul>\n<p>Quindi IOC e FOK non sono alternative a un ordine limite: sono durate associate a esso. \u00abLimit IOC\u00bb e \u00abLimit FOK\u00bb sono le due istruzioni aggressive pi\u00f9 comuni nel forex algoritmico, e il protocollo FIX tiene le due decisioni in campi separati: <code>OrdType<\/code> (tag 40) e <code>TimeInForce<\/code> (tag 59).<\/p>\n<div class=\"iof-cards\">\n<div class=\"iof-card\"><span class=\"iof-card-v\">Prezzo<\/span><span class=\"iof-card-l\">Tipo di ordine, tag 40<\/span><span class=\"iof-card-n\">Mercato, limite, stop, stop-limit. Stabilisce il prezzo peggiore che accetti.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Tempo<\/span><span class=\"iof-card-l\">Time in force, tag 59<\/span><span class=\"iof-card-n\">IOC, FOK, Day, GTC, GTD. Stabilisce quanto a lungo l&#8217;ordine pu\u00f2 attendere.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Size<\/span><span class=\"iof-card-l\">Regola di esecuzione<\/span><span class=\"iof-card-n\">Solo per intero (FOK), qualsiasi quantit\u00e0 (IOC) o una quantit\u00e0 minima (tag 110), dove supportata.<\/span><\/div>\n<\/div>\n<h2 id=\"iof-market\">Ordini a mercato nel forex: che cosa significa davvero \u00aba mercato\u00bb<\/h2>\n<p>Un ordine a mercato dice: eseguimi subito, il prezzo \u00e8 secondario. Non ha limite, quindi offre la massima certezza di esecuzione e nessuna protezione sul prezzo che ottieni. Se il book si \u00e8 mosso o \u00e8 sottile, l&#8217;ordine risale i livelli disponibili finch\u00e9 la size non \u00e8 completata. Questo costo \u00e8 lo slippage, trattato a fondo nella nostra guida su <a href=\"https:\/\/bjftradinggroup.com\/forex-slippage-explained\/\">come misurare e ridurre lo slippage nel forex<\/a>.<\/p>\n<p>Il forex aggiunge due dettagli che le spiegazioni basate sulle borse trascurano:<\/p>\n<ul>\n<li><strong>Non esiste un unico book centrale.<\/strong> Il tuo broker o ECN mostra un flusso aggregato di diversi fornitori di liquidit\u00e0. \u00abA mercato\u00bb significa al miglior prezzo che la tua sede di esecuzione riesce a ottenere da quel flusso, non a un prezzo di mercato universale.<\/li>\n<li><strong>Anche un ordine a mercato ha una durata implicita.<\/strong> Molte sedi trattano internamente gli ordini a mercato come IOC o FOK: eseguono ci\u00f2 che \u00e8 eseguibile subito e riportano il resto. Alcune consentono di aggiungere una deviazione massima, che di fatto trasforma l&#8217;ordine in un limite. Non dare nulla per scontato: leggi le specifiche della sede.<\/li>\n<\/ul>\n<p>Il ruolo pratico di un ordine a mercato in un algoritmo \u00e8 ristretto. Serve dove il pericolo maggiore \u00e8 <em>non operare<\/em>, ad esempio per chiudere una posizione che ha perso la copertura.<\/p>\n<h2 id=\"iof-limit\">Ordini limite, marketable limit e stop<\/h2>\n<h3>Ordini limite passivi<\/h3>\n<p>Un ordine limite piazzato lontano dal prezzo corrente resta nel book e attende. Un buy limit sotto l&#8217;ask non prende liquidit\u00e0: la offre. Puoi guadagnare lo spread invece di pagarlo, ma ti assumi il rischio di coda e la selezione avversa: gli ordini passivi tendono a essere eseguiti proprio quando il mercato li sta attraversando. Gli ordini passivi si abbinano normalmente a Day, GTC o GTD.<\/p>\n<h3>Ordini marketable limit<\/h3>\n<p>Un buy limit con prezzo pari o superiore all&#8217;ask corrente viene eseguito subito, come un ordine a mercato, ma non pu\u00f2 essere eseguito oltre il suo limite. Questo \u00abmarketable limit\u00bb \u00e8 il cavallo di battaglia dell&#8217;esecuzione automatizzata. Combinato con IOC significa: prendi la liquidit\u00e0 adesso, fino a questo prezzo, e non lasciare nulla nel book.<\/p>\n<p>Il miglioramento di prezzo \u00e8 un punto spesso frainteso. Un limite \u00e8 il prezzo peggiore accettabile, non il prezzo di esecuzione. Se compri con un limite a 1.08510 e l&#8217;ask \u00e8 1.08502, dovresti ricevere 1.08502 o i livelli successivi fino al tuo limite.<\/p>\n<h3>Ordini stop e stop-limit<\/h3>\n<p>Un ordine stop resta dormiente finch\u00e9 non viene raggiunto il trigger, poi diventa un ordine a mercato. Uno stop-limit diventa invece un ordine limite. Il primo garantisce l&#8217;attivazione, non il prezzo. Il secondo fissa un tetto al prezzo, ma pu\u00f2 lasciarti senza esecuzione proprio quando il mercato fa un gap, una caratteristica sgradevole per uno stop di protezione. Conta anche dove risiede lo stop: uno stop tenuto sulla sede sopravvive alla tua disconnessione, mentre uno simulato nel tuo software no.<\/p>\n<h2 id=\"iof-tif\">Time in force: l&#8217;elenco completo<\/h2>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Istruzione<\/th>\n<th>FIX 59<\/th>\n<th>Durata<\/th>\n<th>Esecuzione parziale?<\/th>\n<th>Uso tipico<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Day<\/td>\n<td>0<\/td>\n<td>Fino alla fine della sessione<\/td>\n<td>S\u00ec<\/td>\n<td>Quotazioni passive durante una sessione definita<\/td>\n<\/tr>\n<tr>\n<td>GTC (Good Till Cancel)<\/td>\n<td>1<\/td>\n<td>Fino alla cancellazione<\/td>\n<td>S\u00ec<\/td>\n<td>Ingressi in attesa, ordini take-profit e stop<\/td>\n<\/tr>\n<tr>\n<td>IOC (Immediate or Cancel)<\/td>\n<td>3<\/td>\n<td>Eseguito subito, il resto viene cancellato<\/td>\n<td>S\u00ec<\/td>\n<td>Prendere liquidit\u00e0 quando qualsiasi parte della size \u00e8 utile<\/td>\n<\/tr>\n<tr>\n<td>FOK (Fill or Kill)<\/td>\n<td>4<\/td>\n<td>Tutta la size subito o niente<\/td>\n<td>No<\/td>\n<td>Ingressi tutto-o-niente e gambe a size fissa<\/td>\n<\/tr>\n<tr>\n<td>GTD (Good Till Date)<\/td>\n<td>6<\/td>\n<td>Fino a un orario specificato (tag 126 o 432)<\/td>\n<td>S\u00ec<\/td>\n<td>Quotazioni con scadenza rigida, ad esempio prima di una notizia<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>I valori provengono dalla specifica FIX 4.4. Le sedi di norma supportano solo una parte dell&#8217;elenco e alcune limitano un TIF a determinati tipi di ordine, quindi le regole operative del tuo broker prevalgono su qualsiasi tabella pubblicata in un articolo.<\/p>\n<h2 id=\"iof-example\">IOC vs FOK vs mercato: un book, tre risultati<\/h2>\n<p>Prendiamo un caso concreto. Un algoritmo vuole comprare 2,000,000 EURUSD. Il miglior ask \u00e8 1.08500 e questo \u00e8 il lato offerta visibile all&#8217;arrivo dell&#8217;ordine:<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Prezzo ask<\/th>\n<th>Size disponibile<\/th>\n<th>Cumulata<\/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=\"Percorso nel book che confronta un ordine a mercato, un limit IOC e un limit FOK per un acquisto di 2 milioni di EURUSD: l'ordine a mercato viene eseguito per intero a 1.085018, l'IOC esegue 1 milione a 1.085005 e il FOK viene cancellato\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Lo stesso book, tre istruzioni. Il book \u00e8 un esempio costruito; l&#8217;aritmetica \u00e8 esatta.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Istruzione<\/th>\n<th>Eseguito<\/th>\n<th>Prezzo medio<\/th>\n<th>Costo rispetto al miglior ask<\/th>\n<th>Risultato<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A mercato, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, circa $35<\/td>\n<td>Completato, a un prezzo che non hai scelto<\/td>\n<\/tr>\n<tr>\n<td>Limit 1.08502 IOC, 2M<\/td>\n<td>1,000,000<\/td>\n<td>1.085005<\/td>\n<td>0.05 pip, circa $5<\/td>\n<td>Met\u00e0 della size, 1M cancellato<\/td>\n<\/tr>\n<tr>\n<td>Limit 1.08502 FOK, 2M<\/td>\n<td>0<\/td>\n<td>Nessuno<\/td>\n<td>$0<\/td>\n<td>Cancellato: solo 1M pari o sotto il limite<\/td>\n<\/tr>\n<tr>\n<td>Limit 1.08503 FOK, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, circa $35<\/td>\n<td>Eseguito: il limite era abbastanza ampio<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>L&#8217;ultima riga \u00e8 quella pi\u00f9 sottile. Un decimo di pip in pi\u00f9 ha trasformato il FOK da nessun trade a esecuzione completa, con una media migliore del suo limite. FOK non significa \u00abstretto\u00bb. Significa \u00abl&#8217;intera size deve stare sotto questo prezzo in questo momento\u00bb. IOC e FOK con lo stesso limite vedono la stessa liquidit\u00e0. Si differenziano solo per ci\u00f2 che fanno quando non basta.<\/p>\n<p>Non esiste nemmeno un&#8217;istruzione pi\u00f9 economica in assoluto. L&#8217;IOC da $5 sembra un affare rispetto all&#8217;ordine a mercato da $35, ma ha consegnato met\u00e0 della posizione. Se il restante 1M va comprato pi\u00f9 tardi a un prezzo peggiore, il confronto cambia. Il costo della size mancante \u00e8 l&#8217;argomento del resto di questa guida.<\/p>\n<h2 id=\"iof-fix\">Come appaiono gli ordini in FIX<\/h2>\n<p>Su una <a href=\"https:\/\/bjftradinggroup.com\/fix-api-forex-trading\/\">connessione FIX API<\/a> dichiari ogni istruzione in modo esplicito in un messaggio NewOrderSingle (<code>35=D<\/code>). Ridotto ai campi che contano, l&#8217;ordine IOC dell&#8217;esempio si presenta cos\u00ec:<\/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>Cambia <code>59=3<\/code> in <code>59=4<\/code> e lo stesso ordine diventa FOK. Togli il prezzo e imposta <code>40=1<\/code> e diventa un ordine a mercato. Header, checksum, timestamp e campi del conto sono omessi, e il formato del simbolo varia a seconda della sede: alcune usano ID numerici.<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Tag<\/th>\n<th>Campo<\/th>\n<th>Valori che incontrerai<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>40<\/td>\n<td>OrdType<\/td>\n<td>1 A mercato, 2 Limite, 3 Stop, 4 Stop-limit, D Gi\u00e0 quotato<\/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\u00e0 minima da eseguire, dove supportata<\/td>\n<\/tr>\n<tr>\n<td>150<\/td>\n<td>ExecType<\/td>\n<td>0 Nuovo, F Trade, 4 Cancellato, 8 Rifiutato, C Scaduto<\/td>\n<\/tr>\n<tr>\n<td>39<\/td>\n<td>OrdStatus<\/td>\n<td>0 Nuovo, 1 Parzialmente eseguito, 2 Eseguito, 4 Cancellato, 8 Rifiutato, C Scaduto<\/td>\n<\/tr>\n<tr>\n<td>14 \/ 151<\/td>\n<td>CumQty \/ LeavesQty<\/td>\n<td>Eseguito finora \/ ancora aperto. LeavesQty 0 significa che l&#8217;ordine \u00e8 concluso<\/td>\n<\/tr>\n<tr>\n<td>31 \/ 32 \/ 6<\/td>\n<td>LastPx \/ LastQty \/ AvgPx<\/td>\n<td>Prezzo e size di questa esecuzione \/ media di tutte le esecuzioni<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>La parte difficile non \u00e8 inviare l&#8217;ordine, ma leggere la risposta. Un solo IOC pu\u00f2 produrre una sequenza di ExecutionReport (<code>35=8<\/code>), e il modo in cui viene riportato il residuo dipende dalla sede.<\/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=\"Ciclo di vita FIX di un ordine IOC da 2 milioni: NewOrderSingle, due report di esecuzione trade con CumQty che sale a 1 milione, poi un report di cancellazione o scadenza per il restante 1 milione con LeavesQty a zero, e l'algoritmo che copre solo la quantit\u00e0 eseguita\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Un IOC \u00e8 completo solo quando LeavesQty arriva a 0. La tua posizione \u00e8 CumQty, mai la quantit\u00e0 richiesta.<\/figcaption><\/figure>\n<p>Alcune sedi inviano una conferma aggiuntiva (<code>150=0<\/code>) prima delle esecuzioni. Altre consegnano un&#8217;unica esecuzione aggregata. Le sessioni FIX 4.2 usano per le esecuzioni valori ExecType (1 e 2) diversi da FIX 4.3 e successivi (F). Un handler robusto si basa quindi su CumQty, LeavesQty e OrdStatus, non su un numero fisso di messaggi. La <a href=\"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/\">guida passo per passo al protocollo FIX<\/a> spiega il livello di sessione sottostante a questi messaggi.<\/p>\n<h2 id=\"iof-lastlook\">Liquidit\u00e0 full-amount e last look: perch\u00e9 il forex \u00e8 diverso<\/h2>\n<p>Le spiegazioni pensate per il mercato azionario presuppongono un book centrale in cui l&#8217;offerta esposta \u00e8 ferma. Le sedi forex possono comportarsi diversamente in due modi che incidono direttamente su IOC e FOK.<\/p>\n<p><strong>Liquidit\u00e0 sweepable vs full-amount.<\/strong> In un book sweepable un ordine pu\u00f2 prendere pi\u00f9 livelli da pi\u00f9 fornitori, come nell&#8217;esempio qui sopra. Nel pricing full-amount un fornitore quota un solo prezzo per l&#8217;intera size e i livelli non si sommano, quindi un FOK da 2M va confrontato con il livello da 2M, non con la somma delle quotazioni da 1M. Una schermata di profondit\u00e0 dall&#8217;aspetto identico pu\u00f2 quindi significare cose diverse.<\/p>\n<p><strong>Last look.<\/strong> Dove un fornitore applica il last look, il tuo ordine \u00e8 una richiesta che pu\u00f2 ancora essere rifiutata dopo una breve attesa. Un FOK pu\u00f2 essere rifiutato anche se il book mostrava una size sufficiente al momento dell&#8217;invio, e un IOC pu\u00f2 tornare pi\u00f9 piccolo di quanto esposto. Il FX Global Code (il codice di condotta globale del mercato dei cambi) chiede ai fornitori che usano il last look di comunicare questa pratica ai clienti, quindi chiedi tale informativa. I rifiuti da last look sono visibili nel tuo log solo se li registri. Il meccanismo \u00e8 trattato nella nostra guida a <a href=\"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\">esecuzione del broker, A-book, B-book e last look<\/a>.<\/p>\n<div class=\"iof-box\"><strong>Perch\u00e9 conta per la misurazione:<\/strong> un ordine aggressivo su una sede con last look pu\u00f2 mostrare statistiche di slippage eccellenti, perch\u00e9 nel campione ci sono solo le esecuzioni che hanno fatto comodo al fornitore. Uno slippage medio basso unito a un alto tasso di rifiuto non \u00e8 una buona esecuzione.<\/div>\n<h2 id=\"iof-tolerance\">Dove mettere il limite: un modello con i numeri<\/h2>\n<p>Per un IOC o un FOK il parametro chiave non \u00e8 il TIF ma il prezzo limite. Se lo metti alla quotazione corrente, la maggior parte dei segnali va persa. Se non lo limiti, le esecuzioni peggiori si mangiano il vantaggio. Tra questi due estremi esiste una risposta calcolabile.<\/p>\n<p>Considera un segnale di breve durata con un vantaggio atteso di 1.2 pip al netto delle commissioni, misurato dal prezzo del segnale. Tra il segnale e l&#8217;arrivo alla sede il prezzo si muove. Ipotizza due regimi: nell&#8217;80% dei casi il prezzo si sposta di circa 0.2 pip contro di te (deviazione standard 0.3 pip), e nel 20% un movimento rapido lo porta a circa 2 pip di distanza (deviazione standard 1 pip). Questi input sono illustrativi. In pratica li stimi dal tuo log degli ordini.<\/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=\"Modello illustrativo: i pip netti attesi per segnale crescono con la tolleranza del limite, raggiungono il massimo vicino a 0.82 pip con una tolleranza di circa 1.2 pip e scendono a 0.64 pip per un ordine a mercato senza limite, mentre il tasso di esecuzione sale dal 21 al 100 percento\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Modello illustrativo, non risultati di trading: vantaggio di 1.2 pip e deriva del prezzo a due regimi. L&#8217;esecuzione avviene quando la deriva rientra nella tolleranza.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Tolleranza del limite dal prezzo del segnale<\/th>\n<th>Tasso di esecuzione<\/th>\n<th>Netto medio per esecuzione<\/th>\n<th>Netto atteso per segnale<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0 pip (limite al prezzo del segnale)<\/td>\n<td>20.7%<\/td>\n<td>1.38 pip<\/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 pip<\/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 pip<\/td>\n<td>0.78 pip<\/td>\n<\/tr>\n<tr>\n<td>1.2 pip (pari al vantaggio)<\/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 pip<\/td>\n<td>90.0%<\/td>\n<td>0.89 pip<\/td>\n<td>0.80 pip<\/td>\n<\/tr>\n<tr>\n<td>Nessun limite (ordine a mercato)<\/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>Tre conclusioni valgono ben oltre questo esempio:<\/p>\n<ul class=\"iof-checks\">\n<li><strong>Il limite migliore \u00e8 il prezzo di pareggio, non la quotazione.<\/strong> Conviene accettare qualsiasi esecuzione che lasci ancora un profitto atteso positivo. In questo modello il massimo si trova esattamente dove la tolleranza \u00e8 pari al vantaggio, perch\u00e9 l&#8217;esecuzione marginale successiva guadagna zero.<\/li>\n<li><strong>La curva \u00e8 piatta vicino al massimo.<\/strong> Tra 0.8 e 2 pip il profitto atteso cambia pochissimo. Non ti serve una tolleranza precisa, ma te ne serve una.<\/li>\n<li><strong>Il prezzo medio di esecuzione \u00e8 un obiettivo fuorviante.<\/strong> Il limite pi\u00f9 stretto ha il miglior prezzo per esecuzione (1.38 pip) e il peggior risultato per segnale (0.29 pip), perch\u00e9 il 79% dei segnali non diventa mai un trade.<\/li>\n<\/ul>\n<p>Il modello ignora gli effetti di coda e presuppone che l&#8217;intera size venga eseguita ogni volta che il limite viene raggiunto. Per ordini pi\u00f9 grandi ripeti il calcolo con la tua profondit\u00e0 reale, perch\u00e9 il limite decide anche quanta size pu\u00f2 essere eseguita. Verifica le ipotesi con i dati: la nostra guida al <a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage-backtest-execution-time-gap\/\">divario tra backtest ed esecuzione live<\/a> mostra come portare il tempo di esecuzione in un test.<\/p>\n<h2 id=\"iof-partial\">Gestire le esecuzioni parziali senza creare nuovi rischi<\/h2>\n<p>Un&#8217;esecuzione parziale non \u00e8 un errore, ma \u00e8 un nuovo stato per il quale l&#8217;algoritmo deve avere una regola. FOK evita questo stato all&#8217;ingresso; IOC sposta il problema nella tua logica. Decidi la politica prima di andare live:<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Politica sul residuo<\/th>\n<th>Quando \u00e8 adatta<\/th>\n<th>Rischio da controllare<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Accettare e gestire ci\u00f2 che \u00e8 stato eseguito<\/td>\n<td>Ingressi con un vantaggio indipendente dalla size<\/td>\n<td>Posizione troppo piccola per coprire i costi fissi<\/td>\n<\/tr>\n<tr>\n<td>Reinviare il residuo a un nuovo prezzo<\/td>\n<td>Segnale ancora valido, vantaggio ancora sopra la tolleranza<\/td>\n<td>Rincorrere il prezzo. Limita i tentativi e ricontrolla il vantaggio ogni volta<\/td>\n<\/tr>\n<tr>\n<td>Coprire o completare su un&#8217;altra sede<\/td>\n<td>Trade multi-gamba<\/td>\n<td>Lot step diversi e una seconda possibilit\u00e0 di mancata esecuzione<\/td>\n<\/tr>\n<tr>\n<td>Chiudere la parte eseguita<\/td>\n<td>Un&#8217;esecuzione sotto la size minima sostenibile<\/td>\n<td>Pagare lo spread due volte<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>I trade a due gambe richiedono la massima attenzione.<\/strong> Supponi che un trade coperto compri 2M sulla sede A con IOC e venda sulla sede B. Se A esegue 1M e l&#8217;algoritmo vende comunque i 2M previsti, resta con 1M short aperto. Con circa $100 per pip per milione su EURUSD, un movimento di 10 pip contro quella posizione costa $1,000, cifra che supera facilmente il vantaggio di molti trade. La regola \u00e8 semplice: dimensiona la seconda gamba dal CumQty della prima, mai dalla quantit\u00e0 richiesta.<\/p>\n<p>Converti anche sulla griglia di size della seconda sede. Se la prima gamba esegue 1,370,000 e la sede B accetta step da 100,000, puoi coprire 1,400,000 o 1,300,000, non la size esatta. Stabilisci una regola anche per questo residuo e tratta un residuo non coperto come un limite di rischio.<\/p>\n<p>FOK sulla prima gamba elimina il disallineamento di size ma genera pi\u00f9 casi di mancato trade. FOK sulla seconda gamba \u00e8 di solito una scelta sbagliata: quando la prima gamba \u00e8 gi\u00e0 eseguita, una copertura cancellata ti lascia completamente esposto. \u00c8 proprio su quella seconda gamba che vale la pena pagare per la certezza di esecuzione.<\/p>\n<h2 id=\"iof-matrix\">Quale ordine per quale strategia<\/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=\"Diagramma decisionale per scegliere un tipo di ordine: se la posizione deve cambiare subito usa mercato o un IOC ampio; se un'esecuzione parziale \u00e8 inutile usa FOK; se prendi liquidit\u00e0 con qualsiasi size utile usa limit IOC; altrimenti lascia un limite passivo con Day, GTC o GTD\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Un punto di partenza per la decisione. L&#8217;ultima parola spetta alle regole della sede e ai tuoi dati di esecuzione.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Situazione<\/th>\n<th>Scelta predefinita ragionevole<\/th>\n<th>Motivazione<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Ingresso di arbitraggio di latenza<\/td>\n<td>Limit IOC al prezzo di pareggio<\/td>\n<td>Il vantaggio svanisce in millisecondi; un&#8217;esecuzione parziale guadagna comunque e il limite taglia la coda<\/td>\n<\/tr>\n<tr>\n<td>Prima gamba di una coppia coperta<\/td>\n<td>Limit FOK o IOC con copertura basata su CumQty<\/td>\n<td>FOK protegge il dimensionamento; IOC guadagna in tasso di esecuzione ma richiede una logica migliore<\/td>\n<\/tr>\n<tr>\n<td>Seconda gamba, quando la prima \u00e8 eseguita<\/td>\n<td>Mercato o IOC ampio<\/td>\n<td>Restare scoperti \u00e8 il rischio maggiore<\/td>\n<\/tr>\n<tr>\n<td>Ingresso sulle notizie<\/td>\n<td>Limit IOC, size contenuta<\/td>\n<td>Spread e profondit\u00e0 cambiano rapidamente, e un ordine a mercato non ha un tetto<\/td>\n<\/tr>\n<tr>\n<td>Uscita di emergenza o stop-out<\/td>\n<td>Mercato o IOC ampio, ripetuto fino ad azzerare la posizione<\/td>\n<td>Prima la certezza; FOK pu\u00f2 lasciare la posizione aperta<\/td>\n<\/tr>\n<tr>\n<td>Pair trading o trade statistici<\/td>\n<td>Limit IOC o limite passivo di breve durata<\/td>\n<td>L&#8217;holding period \u00e8 pi\u00f9 lungo, quindi lo spread pagato conta pi\u00f9 della velocit\u00e0<\/td>\n<\/tr>\n<tr>\n<td>Cattura dello spread e ribilanciamento<\/td>\n<td>Limite passivo, Day o GTD<\/td>\n<td>Vieni pagato per attendere, e devi cancellare prima di notizie e rollover<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>L&#8217;esecuzione dipende anche dal timing. Intorno a <a href=\"https:\/\/bjftradinggroup.com\/forex-spread-widening\/\">rollover e notizie gli spread si allargano e la profondit\u00e0 si assottiglia<\/a>, quindi un limite che funziona bene a mezzogiorno di Londra pu\u00f2 fallire o diventare costoso in quelle finestre. Fai dipendere tolleranza e size dallo spread corrente invece di fissarle per tutta la giornata. Un approfondimento sulle strategie sensibili alla velocit\u00e0 \u00e8 disponibile nella nostra guida all&#8217;<a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage\/\">arbitraggio di latenza<\/a>.<\/p>\n<h2 id=\"iof-howto\">Sette passi per configurare l&#8217;esecuzione degli ordini<\/h2>\n<div class=\"iof-steps\">\n<div class=\"iof-step\"><span class=\"iof-step-n\">1<\/span><\/p>\n<div><strong>Dai un prezzo al trade mancato.<\/strong> Decidi quanto costa una mancata esecuzione. Per un ingresso facoltativo \u00e8 zero; per una copertura o un&#8217;uscita \u00e8 rischio aperto.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">2<\/span><\/p>\n<div><strong>Calcola il prezzo peggiore accettabile.<\/strong> Prendi il vantaggio atteso, sottrai commissioni e un margine di sicurezza e fissa il limite a quel pareggio.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">3<\/span><\/p>\n<div><strong>Scegli la durata.<\/strong> Usa IOC o FOK per prendere liquidit\u00e0 e Day, GTC o GTD per gli ordini in attesa.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">4<\/span><\/p>\n<div><strong>Stabilisci l&#8217;esecuzione minima utile.<\/strong> Usa FOK, o una quantit\u00e0 minima dove supportata, se le piccole esecuzioni non coprono i costi fissi.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">5<\/span><\/p>\n<div><strong>Scrivi la regola per il residuo.<\/strong> Definisci i nuovi tentativi, il numero massimo di tentativi e che cosa succede a qualsiasi residuo non coperto.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">6<\/span><\/p>\n<div><strong>Conferma le regole della sede.<\/strong> Controlla le coppie di tipo di ordine e TIF supportate, gli step di size, come vengono riportati i residui e se si applica il last look.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">7<\/span><\/p>\n<div><strong>Registra e rivedi.<\/strong> Registra ogni ordine, compresi rifiuti e cancellazioni, e regola il limite sulla base dei dati reali di esecuzione.<\/div>\n<\/div>\n<\/div>\n<h2 id=\"iof-mistakes\">Errori comuni nella gestione automatizzata degli ordini<\/h2>\n<ul class=\"iof-checks\">\n<li><strong>Dare per scontato che la size richiesta sia stata eseguita.<\/strong> La posizione deve derivare dagli execution report, non dall&#8217;ordine inviato.<\/li>\n<li><strong>Trattare un FOK cancellato come un errore di sistema.<\/strong> \u00c8 un esito normale. Un avviso per ognuno ti abitua a ignorare gli avvisi; imposta invece l&#8217;avviso sul tasso.<\/li>\n<li><strong>Ritentare allo stesso prezzo in un ciclo.<\/strong> Se il prezzo si \u00e8 mosso, anche il nuovo tentativo fallisce, e i tentativi rapidi possono violare i limiti di messaggi. Riprezza o fermati.<\/li>\n<li><strong>Ignorare lo stato sconosciuto.<\/strong> Quando non arriva risposta, l&#8217;ordine pu\u00f2 essere ancora attivo o gi\u00e0 eseguito. Interrogalo con un OrderStatusRequest (<code>35=H<\/code>) o riconcilia la posizione dopo la riconnessione, prima di inviare un ordine sostitutivo.<\/li>\n<li><strong>Riutilizzare i valori ClOrdID.<\/strong> Un tag 11 univoco per ogni ordine, compreso ogni nuovo tentativo, \u00e8 ci\u00f2 che rende possibile la riconciliazione.<\/li>\n<li><strong>Usare prezzi non aggiornati per il limite.<\/strong> Un limite calcolato da una quotazione in ritardo \u00e8 troppo stretto o troppo generoso. Un <a href=\"https:\/\/bjftradinggroup.com\/fast-feed-for-arbitrage\/\">feed di prezzi veloce<\/a> d\u00e0 senso alla tolleranza.<\/li>\n<li><strong>Testare con esecuzioni perfette.<\/strong> Un backtest che esegue ogni ordine per intero alla quotazione non pu\u00f2 distinguere il mercato da IOC e FOK. Modella profondit\u00e0 e rifiuti, oppure fai un forward test con size ridotte.<\/li>\n<li><strong>Trasferire le impostazioni tra sedi.<\/strong> Una tolleranza ottimizzata su un broker dice poco su un altro, perch\u00e9 profondit\u00e0, last look e latenza sono tutti diversi.<\/li>\n<\/ul>\n<h2 id=\"iof-measure\">Che cosa misurare<\/h2>\n<p>Scegliere un tipo di ordine \u00e8 una questione empirica, e solo un log completo pu\u00f2 dare la risposta. I report devono coprire segnali e tentativi, non solo i trade completati.<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Metrica<\/th>\n<th>Definizione<\/th>\n<th>Che cosa ti dice<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Fill ratio<\/td>\n<td>Quantit\u00e0 eseguita \/ quantit\u00e0 richiesta<\/td>\n<td>Se \u00e8 troppo basso, il limite \u00e8 stretto o la profondit\u00e0 \u00e8 scarsa<\/td>\n<\/tr>\n<tr>\n<td>Tasso di rifiuto<\/td>\n<td>Ordini rifiutati o cancellati \/ ordini inviati<\/td>\n<td>Un aumento improvviso indica cambiamenti nella liquidit\u00e0 o nel broker<\/td>\n<\/tr>\n<tr>\n<td>Slippage<\/td>\n<td>Prezzo di esecuzione meno prezzo di riferimento al segnale, con segno<\/td>\n<td>Costo di esecuzione per trade eseguito<\/td>\n<\/tr>\n<tr>\n<td>Tempo di andata e ritorno<\/td>\n<td>Dall&#8217;invio dell&#8217;ordine al primo execution report<\/td>\n<td>Se la sede sta rallentando, per fascia oraria<\/td>\n<\/tr>\n<tr>\n<td>Netto per segnale<\/td>\n<td>Risultato totale \/ tutti i segnali, compresi quelli mancati<\/td>\n<td>Il numero che dovrebbe guidare la tolleranza<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Suddividi questi dati per simbolo, sede, ora e tipo di ordine e confronta i risultati prima e dopo ogni modifica. SharpTrader mostra ordini e statistiche di performance con PnL, slippage e tempo di esecuzione: una base pratica per questo tipo di revisione. I tipi di ordine e i valori TIF disponibili in una data configurazione dipendono dal connettore e dal broker, quindi verificali per il tuo conto.<\/p>\n<div class=\"iof-cta\">\n<h3>Costruisci l&#8217;esecuzione sui tuoi dati<\/h3>\n<p>SharpTrader si collega ai broker tramite FIX API e altri protocolli, esegue strategie di arbitraggio e non di arbitraggio e registra slippage e tempo di esecuzione per ogni ordine. Per ottimizzare i parametri su questi dati, SharpTrader Optimizer automatizza la ricerca.<\/p>\n<p><a class=\"iof-btn\" href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-forex-crypto-arbitrage\/\">Scopri 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=\"bjfff2688\" 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 di arbitraggio gratuito + breve corso via email<\/p>\n<p style=\"margin:0 0 16px;font-size:15px;line-height:1.55;color:#44505f\">Ricevi il link allo scanner gratuito e alcune email brevi e pratiche di Boris: cosa significa davvero un divario di prezzo dopo i costi, come testare una strategia prima di rischiare denaro reale e quali strumenti sono adatti al tuo mercato. Niente promesse esagerate. Le email sono in inglese.<\/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=\"1793826922\"><input type=\"hidden\" name=\"ref\" value=\"ioc-fok-order-types-algo-trading\"><input type=\"hidden\" name=\"lang\" value=\"it\"><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=\"Nome\" aria-label=\"Nome\" 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=\"Email\" aria-label=\"Email\" 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\">Inviamelo<\/button>\n<\/div>\n<p style=\"margin:10px 0 0;font-size:12px;line-height:1.5;color:#6b7785\">Inviando il modulo accetti di ricevere email da BJF Trading Group su strumenti di arbitraggio e software di trading. Puoi annullare l\u2019iscrizione in qualsiasi momento. Consulta la nostra <a href=\"https:\/\/bjftradinggroup.com\/it\/privacy-policy\/\">Informativa sulla privacy<\/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\":\"Inserisci un indirizzo email valido.\",\"sending\":\"Invio in corso\\u2026\",\"done\":\"Fatto! Controlla la tua casella di posta tra qualche minuto.\",\"err\":\"Qualcosa \\u00e8 andato storto, riprova.\",\"net\":\"Errore di rete, riprova.\",\"srv\":false};var b=document.getElementById('bjfff2688');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\">Domande frequenti<\/h2>\n<div class=\"iof-faq\">\n<h3>Qual \u00e8 la differenza tra IOC e FOK?<\/h3>\n<p>Entrambi vengono eseguiti immediatamente e non restano mai nel book. IOC accetta un&#8217;esecuzione parziale e cancella il residuo non eseguito. FOK richiede che l&#8217;intera quantit\u00e0 venga eseguita subito, altrimenti tutto l&#8217;ordine viene cancellato e non avviene alcun trade.<\/p>\n<h3>FOK \u00e8 meglio di IOC?<\/h3>\n<p>In generale nessuno dei due \u00e8 migliore. FOK \u00e8 adatto ai trade in cui una posizione parziale \u00e8 inutile o complica la copertura. IOC di solito opera pi\u00f9 spesso, perch\u00e9 una parte della size viene eseguita, ma il tuo algoritmo deve gestire correttamente le esecuzioni parziali.<\/p>\n<h3>Un ordine FOK pu\u00f2 essere eseguito parzialmente?<\/h3>\n<p>No. Per definizione un ordine FOK viene eseguito per intero oppure per niente. Se vedi un&#8217;esecuzione parziale, l&#8217;ordine non era un vero FOK su quella sede: verifica come il broker mappa l&#8217;istruzione.<\/p>\n<h3>Che cosa succede alla parte non eseguita di un ordine IOC?<\/h3>\n<p>Viene cancellata immediatamente e non resta mai nel book. Su FIX ricevi un execution report che chiude l&#8217;ordine, di solito come Canceled o Expired a seconda della sede, con LeavesQty pari a 0.<\/p>\n<h3>Un ordine a mercato \u00e8 la stessa cosa di un ordine IOC?<\/h3>\n<p>Non esattamente. Un ordine a mercato non ha un limite di prezzo, mentre un IOC di norma ce l&#8217;ha. Molte sedi eseguono gli ordini a mercato con un comportamento IOC o FOK, quindi la durata pu\u00f2 coincidere, ma solo un limite protegge il prezzo.<\/p>\n<h3>Quali sono i valori FIX per IOC e FOK?<\/h3>\n<p>Nel campo TimeInForce, tag 59, IOC \u00e8 3 e FOK \u00e8 4. Il tipo di ordine si imposta separatamente nel tag 40, dove 1 \u00e8 mercato e 2 \u00e8 limite.<\/p>\n<h3>Tutti i broker forex supportano IOC e FOK?<\/h3>\n<p>No. Il supporto dipende dal broker, dalla piattaforma e dal tipo di connessione. Le connessioni FIX API di solito offrono pi\u00f9 controllo, ma ogni sede pubblica il proprio elenco di combinazioni accettate di tipo di ordine e time in force.<\/p>\n<\/div>\n<p class=\"iof-note\">Questo articolo ha finalit\u00e0 educative e non costituisce consulenza finanziaria. Il book e il modello sono esempi illustrativi, non risultati di trading. Il trading sui cambi comporta un rischio significativo di perdita.<\/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, ordini a mercato e limite: i tipi di ordine per l'esecuzione algoritmica nel forex\",\n      \"description\": \"IOC vs FOK spiegati con un esempio di book, tag FIX, last look, gestione delle esecuzioni parziali e un modello per fissare il prezzo limite negli algoritmi 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\": \"Come configurare l'esecuzione degli ordini per un algoritmo forex\",\n      \"step\": [\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 1,\n          \"name\": \"Dai un prezzo al trade mancato\",\n          \"text\": \"Dai un prezzo al trade mancato. Decidi quanto costa una mancata esecuzione. Per un ingresso facoltativo \u00e8 zero; per una copertura o un'uscita \u00e8 rischio aperto.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 2,\n          \"name\": \"Calcola il prezzo peggiore accettabile\",\n          \"text\": \"Calcola il prezzo peggiore accettabile. Prendi il vantaggio atteso, sottrai commissioni e un margine di sicurezza e fissa il limite a quel pareggio.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 3,\n          \"name\": \"Scegli la durata\",\n          \"text\": \"Scegli la durata. Usa IOC o FOK per prendere liquidit\u00e0 e Day, GTC o GTD per gli ordini in attesa.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 4,\n          \"name\": \"Stabilisci l'esecuzione minima utile\",\n          \"text\": \"Stabilisci l'esecuzione minima utile. Usa FOK, o una quantit\u00e0 minima dove supportata, se le piccole esecuzioni non coprono i costi fissi.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 5,\n          \"name\": \"Scrivi la regola per il residuo\",\n          \"text\": \"Scrivi la regola per il residuo. Definisci i nuovi tentativi, il numero massimo di tentativi e che cosa succede a qualsiasi residuo non coperto.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 6,\n          \"name\": \"Conferma le regole della sede\",\n          \"text\": \"Conferma le regole della sede. Controlla le coppie di tipo di ordine e TIF supportate, gli step di size, come vengono riportati i residui e se si applica il last look.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 7,\n          \"name\": \"Registra e rivedi\",\n          \"text\": \"Registra e rivedi. Registra ogni ordine, compresi rifiuti e cancellazioni, e regola il limite sulla base dei dati reali di esecuzione.\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Qual \u00e8 la differenza tra IOC e FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Entrambi vengono eseguiti immediatamente e non restano mai nel book. IOC accetta un'esecuzione parziale e cancella il residuo non eseguito. FOK richiede che l'intera quantit\u00e0 venga eseguita subito, altrimenti tutto l'ordine viene cancellato e non avviene alcun trade.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"FOK \u00e8 meglio di IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"In generale nessuno dei due \u00e8 migliore. FOK \u00e8 adatto ai trade in cui una posizione parziale \u00e8 inutile o complica la copertura. IOC di solito opera pi\u00f9 spesso, perch\u00e9 una parte della size viene eseguita, ma il tuo algoritmo deve gestire correttamente le esecuzioni parziali.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Un ordine FOK pu\u00f2 essere eseguito parzialmente?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"No. Per definizione un ordine FOK viene eseguito per intero oppure per niente. Se vedi un'esecuzione parziale, l'ordine non era un vero FOK su quella sede: verifica come il broker mappa l'istruzione.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Che cosa succede alla parte non eseguita di un ordine IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Viene cancellata immediatamente e non resta mai nel book. Su FIX ricevi un execution report che chiude l'ordine, di solito come Canceled o Expired a seconda della sede, con LeavesQty pari a 0.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Un ordine a mercato \u00e8 la stessa cosa di un ordine IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Non esattamente. Un ordine a mercato non ha un limite di prezzo, mentre un IOC di norma ce l'ha. Molte sedi eseguono gli ordini a mercato con un comportamento IOC o FOK, quindi la durata pu\u00f2 coincidere, ma solo un limite protegge il prezzo.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Quali sono i valori FIX per IOC e FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Nel campo TimeInForce, tag 59, IOC \u00e8 3 e FOK \u00e8 4. Il tipo di ordine si imposta separatamente nel tag 40, dove 1 \u00e8 mercato e 2 \u00e8 limite.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Tutti i broker forex supportano IOC e FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"No. Il supporto dipende dal broker, dalla piattaforma e dal tipo di connessione. Le connessioni FIX API di solito offrono pi\u00f9 controllo, ma ogni sede pubblica il proprio elenco di combinazioni accettate di tipo di ordine e time in force.\"\n          }\n        }\n      ]\n    }\n  ]\n}\n<\/script>\n<\/div>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>IOC vs FOK e gli altri tipi di ordine tra cui un algoritmo deve scegliere: come gli ordini a mercato, limite e stop si combinano con il time in force, un book con tre risultati, tag FIX ed execution report, last look, dove mettere il limite, gestione delle esecuzioni parziali e una matrice delle strategie.<\/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, ordini a mercato e limite nel forex algoritmico<\/title>\n<meta name=\"description\" content=\"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.\" \/>\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\/it\/ioc-fok-order-types-algo-trading\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IOC vs FOK, ordini a mercato e limite nel forex algoritmico\" \/>\n<meta property=\"og:description\" content=\"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bjftradinggroup.com\/it\/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=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Boris Fesenko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minuti\" \/>\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, ordini a mercato e limite: i tipi di ordine per l&#8217;esecuzione algoritmica nel 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\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#respond\"]}],\"name\":\"IOC vs FOK, ordini a mercato e limite nel forex algoritmico\",\"description\":\"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.\",\"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, ordini a mercato e limite nel forex algoritmico\",\"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\":\"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\",\"name\":\"Boris Fesenko\",\"pronouns\":\"He\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@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\\\/it\\\/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, ordini a mercato e limite nel forex algoritmico","description":"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.","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\/it\/ioc-fok-order-types-algo-trading\/","og_locale":"it_IT","og_type":"article","og_title":"IOC vs FOK, ordini a mercato e limite nel forex algoritmico","og_description":"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.","og_url":"https:\/\/bjftradinggroup.com\/it\/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":{"Scritto da":"Boris Fesenko","Tempo di lettura stimato":"18 minuti"},"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, ordini a mercato e limite: i tipi di ordine per l&#8217;esecuzione algoritmica nel 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":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#respond"]}],"name":"IOC vs FOK, ordini a mercato e limite nel forex algoritmico","description":"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.","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, ordini a mercato e limite nel forex algoritmico","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":"Differenza tra IOC e FOK con un esempio di book, tag FIX, last look, esecuzioni parziali e un modello per fissare il limite negli algoritmi forex.","breadcrumb":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@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":"it-IT"},{"@type":"Person","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9","name":"Boris Fesenko","pronouns":"He","image":{"@type":"ImageObject","inLanguage":"it-IT","@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\/it\/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\/it\/wp-json\/wp\/v2\/posts\/15930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/comments?post=15930"}],"version-history":[{"count":37,"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/posts\/15930\/revisions"}],"predecessor-version":[{"id":15972,"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/posts\/15930\/revisions\/15972"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/media\/15931"}],"wp:attachment":[{"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/media?parent=15930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/categories?post=15930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/it\/wp-json\/wp\/v2\/tags?post=15930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}