{"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\/es\/ioc-fok-order-types-algo-trading\/","title":{"rendered":"IOC vs FOK, \u00f3rdenes a mercado y limitadas: tipos de \u00f3rdenes para la ejecuci\u00f3n algor\u00edtmica en 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 EJECUCI\u00d3N EN FOREX<\/span><\/p>\n<h2>IOC, FOK, a mercado o limitada: <span class=\"iof-gold\">c\u00f3mo elegir la orden adecuada para cada operaci\u00f3n<\/span><\/h2>\n<p class=\"iof-hero-sub\">Un tipo de orden es una decisi\u00f3n sobre qu\u00e9 prefieres sufrir: un precio peor, una ejecuci\u00f3n menor o ninguna ejecuci\u00f3n. Esta gu\u00eda muestra c\u00f3mo se comporta cada instrucci\u00f3n en el libro de \u00f3rdenes, en los mensajes FIX y bajo last look, con c\u00e1lculos pr\u00e1cticos para un algoritmo que tiene que elegir en milisegundos.<\/p>\n<\/div>\n<div class=\"iof-answer\">\n<p><strong>Respuesta corta: IOC vs FOK.<\/strong> Una orden Immediate-or-Cancel (IOC) toma todo lo disponible en ese momento a tu precio o mejor y cancela el resto, por lo que es posible una ejecuci\u00f3n parcial. Una orden Fill-or-Kill (FOK) debe ejecutarse por completo de inmediato o se cancela en su totalidad: o lo obtienes todo o nada. Usa IOC cuando cualquier parte del tama\u00f1o te sea \u00fatil y FOK cuando una posici\u00f3n parcial sea peor que ninguna.<\/p>\n<\/div>\n<div class=\"iof-toc\">\n<strong>En esta gu\u00eda<\/strong><\/p>\n<ol>\n<li><a href=\"#iof-two-decisions\">El tipo de orden y el time in force son dos decisiones<\/a><\/li>\n<li><a href=\"#iof-market\">\u00d3rdenes a mercado en forex<\/a><\/li>\n<li><a href=\"#iof-limit\">\u00d3rdenes limitadas, limitadas agresivas y 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 a mercado: un libro de \u00f3rdenes, tres resultados<\/a><\/li>\n<li><a href=\"#iof-fix\">C\u00f3mo se ven las \u00f3rdenes en FIX<\/a><\/li>\n<li><a href=\"#iof-lastlook\">Liquidez full-amount y last look<\/a><\/li>\n<li><a href=\"#iof-tolerance\">D\u00f3nde colocar el l\u00edmite: un modelo con n\u00fameros<\/a><\/li>\n<li><a href=\"#iof-partial\">C\u00f3mo gestionar las ejecuciones parciales<\/a><\/li>\n<li><a href=\"#iof-matrix\">Qu\u00e9 orden para qu\u00e9 estrategia<\/a><\/li>\n<li><a href=\"#iof-howto\">Siete pasos para configurar la ejecuci\u00f3n<\/a><\/li>\n<li><a href=\"#iof-mistakes\">Errores comunes<\/a><\/li>\n<li><a href=\"#iof-measure\">Qu\u00e9 medir<\/a><\/li>\n<li><a href=\"#iof-faq\">Preguntas frecuentes<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"iof-two-decisions\">El tipo de orden y el time in force son dos decisiones separadas<\/h2>\n<p>La mayor\u00eda de los glosarios enumeran a mercado, limitada, stop, IOC y FOK como si fueran cinco opciones del mismo men\u00fa. No lo son. Detr\u00e1s de ellas hay dos preguntas independientes, y un algoritmo tiene que responder a ambas en cada orden:<\/p>\n<ul>\n<li><strong>\u00bfQu\u00e9 precio estoy dispuesto a aceptar?<\/strong> Ese es el tipo de orden: a mercado (cualquier precio), limitada (este precio o mejor), stop (se activa cuando un disparador se negocia o se cotiza).<\/li>\n<li><strong>\u00bfCu\u00e1nto tiempo puede seguir viva la orden?<\/strong> Ese es el time in force, o TIF: de inmediato (IOC, FOK), hasta el final de la sesi\u00f3n (Day), hasta que se cancele (GTC) o hasta una hora fijada (GTD).<\/li>\n<\/ul>\n<p>As\u00ed que IOC y FOK no son alternativas a una orden limitada. Son duraciones que se le asignan. \u201cLimit IOC\u201d y \u201cLimit FOK\u201d son las dos instrucciones agresivas m\u00e1s habituales en el forex algor\u00edtmico, y el protocolo FIX mantiene ambas decisiones en campos separados: <code>OrdType<\/code> (tag 40) y <code>TimeInForce<\/code> (tag 59).<\/p>\n<div class=\"iof-cards\">\n<div class=\"iof-card\"><span class=\"iof-card-v\">Precio<\/span><span class=\"iof-card-l\">Tipo de orden, tag 40<\/span><span class=\"iof-card-n\">A mercado, limitada, stop, stop-limit. Fija el peor precio que aceptas.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Tiempo<\/span><span class=\"iof-card-l\">Time in force, tag 59<\/span><span class=\"iof-card-n\">IOC, FOK, Day, GTC, GTD. Fija cu\u00e1nto puede esperar la orden.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Tama\u00f1o<\/span><span class=\"iof-card-l\">Regla de ejecuci\u00f3n<\/span><span class=\"iof-card-n\">Solo completa (FOK), cualquier tama\u00f1o (IOC) o una cantidad m\u00ednima (tag 110) donde est\u00e9 disponible.<\/span><\/div>\n<\/div>\n<h2 id=\"iof-market\">\u00d3rdenes a mercado en forex: qu\u00e9 significa realmente \u201ca mercado\u201d<\/h2>\n<p>Una orden a mercado dice: ejec\u00fatame ahora, el precio es secundario. No tiene l\u00edmite, as\u00ed que ofrece la mayor certeza de ejecuci\u00f3n y ninguna protecci\u00f3n sobre el precio que obtienes. Si el libro se ha movido o est\u00e1 poco profundo, la orden va consumiendo los niveles disponibles hasta completar el tama\u00f1o. Ese coste es el slippage, que tratamos a fondo en nuestra gu\u00eda sobre <a href=\"https:\/\/bjftradinggroup.com\/forex-slippage-explained\/\">c\u00f3mo medir y reducir el slippage en forex<\/a>.<\/p>\n<p>El forex a\u00f1ade dos detalles que las explicaciones basadas en bolsa pasan por alto:<\/p>\n<ul>\n<li><strong>No existe un \u00fanico libro central.<\/strong> Tu br\u00f3ker o ECN muestra un flujo agregado de varios proveedores de liquidez. \u201cA mercado\u201d significa al mejor precio que tu centro de ejecuci\u00f3n puede obtener de ese flujo, no a un precio de mercado universal.<\/li>\n<li><strong>Una orden a mercado sigue teniendo una duraci\u00f3n impl\u00edcita.<\/strong> Muchos centros de ejecuci\u00f3n tratan internamente las \u00f3rdenes a mercado como IOC o FOK: ejecutan lo que se puede ahora e informan del resto. Algunos te permiten a\u00f1adir una desviaci\u00f3n m\u00e1xima, lo que en la pr\u00e1ctica convierte la orden en limitada. No des nada por supuesto; lee la especificaci\u00f3n del centro de ejecuci\u00f3n.<\/li>\n<\/ul>\n<p>El papel pr\u00e1ctico de una orden a mercado en un algoritmo es limitado. Tiene sentido cuando <em>no operar<\/em> es el peligro mayor, por ejemplo al cerrar una posici\u00f3n que ha perdido su cobertura.<\/p>\n<h2 id=\"iof-limit\">\u00d3rdenes limitadas, limitadas agresivas y stop<\/h2>\n<h3>\u00d3rdenes limitadas pasivas<\/h3>\n<p>Una orden limitada colocada lejos del precio actual se queda en el libro y espera. Una compra limitada por debajo del ask no toma liquidez; la ofrece. Puedes ganar el spread en lugar de pagarlo, pero asumes el riesgo de cola y la selecci\u00f3n adversa: las \u00f3rdenes pasivas tienden a ejecutarse justo cuando el mercado las atraviesa. Las \u00f3rdenes pasivas suelen combinarse con Day, GTC o GTD.<\/p>\n<h3>\u00d3rdenes limitadas agresivas<\/h3>\n<p>Una compra limitada con un precio igual o superior al ask actual se ejecuta de inmediato, como una orden a mercado, pero no puede llenarse m\u00e1s all\u00e1 de su l\u00edmite. Esta \u201cmarketable limit\u201d, o limitada agresiva, es el caballo de batalla de la ejecuci\u00f3n automatizada. Combinada con IOC significa: toma liquidez ahora, hasta este precio, y no dejes nada en el libro.<\/p>\n<p>La cuesti\u00f3n de la mejora de precio se suele malinterpretar. Un l\u00edmite es el peor precio aceptable, no el precio de ejecuci\u00f3n. Si compras con un l\u00edmite en 1.08510 y el ask est\u00e1 en 1.08502, deber\u00edas recibir 1.08502 o los niveles siguientes hasta tu l\u00edmite.<\/p>\n<h3>\u00d3rdenes stop y stop-limit<\/h3>\n<p>Una orden stop permanece inactiva hasta que se alcanza el disparador y entonces se convierte en una orden a mercado. Una stop-limit, en cambio, se convierte en una orden limitada. La primera garantiza la activaci\u00f3n, no el precio. La segunda pone un tope al precio, pero puede dejarte sin ejecutar justo cuando el mercado da un gap, una propiedad desagradable para un stop de protecci\u00f3n. Tambi\u00e9n importa d\u00f3nde reside el stop: un stop alojado en el centro de ejecuci\u00f3n sobrevive a tu desconexi\u00f3n; uno simulado en tu propio software, no.<\/p>\n<h2 id=\"iof-tif\">Time in force: la lista completa<\/h2>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Instrucci\u00f3n<\/th>\n<th>FIX 59<\/th>\n<th>Duraci\u00f3n<\/th>\n<th>\u00bfEjecuci\u00f3n parcial?<\/th>\n<th>Uso t\u00edpico<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Day<\/td>\n<td>0<\/td>\n<td>Hasta que termina la sesi\u00f3n<\/td>\n<td>S\u00ed<\/td>\n<td>Cotizaciones pasivas durante una sesi\u00f3n definida<\/td>\n<\/tr>\n<tr>\n<td>GTC (Good Till Cancel)<\/td>\n<td>1<\/td>\n<td>Hasta que se cancela<\/td>\n<td>S\u00ed<\/td>\n<td>Entradas en el libro, \u00f3rdenes take-profit y stop<\/td>\n<\/tr>\n<tr>\n<td>IOC (Immediate or Cancel)<\/td>\n<td>3<\/td>\n<td>Se ejecuta al instante, el resto se cancela<\/td>\n<td>S\u00ed<\/td>\n<td>Tomar liquidez cuando cualquier parte del tama\u00f1o ayuda<\/td>\n<\/tr>\n<tr>\n<td>FOK (Fill or Kill)<\/td>\n<td>4<\/td>\n<td>Tama\u00f1o completo al instante o nada<\/td>\n<td>No<\/td>\n<td>Entradas de todo o nada y patas de tama\u00f1o fijo<\/td>\n<\/tr>\n<tr>\n<td>GTD (Good Till Date)<\/td>\n<td>6<\/td>\n<td>Hasta una hora especificada (tag 126 o 432)<\/td>\n<td>S\u00ed<\/td>\n<td>Cotizaciones con vencimiento estricto, por ejemplo antes de la publicaci\u00f3n de una noticia<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Los valores proceden de la especificaci\u00f3n FIX 4.4. Los centros de ejecuci\u00f3n normalmente solo admiten una parte de la lista, y algunos restringen un TIF a determinados tipos de orden, as\u00ed que las reglas de operaci\u00f3n de tu br\u00f3ker prevalecen sobre cualquier tabla de un art\u00edculo.<\/p>\n<h2 id=\"iof-example\">IOC vs FOK vs a mercado: un libro de \u00f3rdenes, tres resultados<\/h2>\n<p>Veamos un caso concreto. Un algoritmo quiere comprar 2,000,000 de EURUSD. El mejor ask es 1.08500, y este es el lado visible de la oferta cuando llega la orden:<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Precio ask<\/th>\n<th>Tama\u00f1o disponible<\/th>\n<th>Acumulado<\/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=\"Recorrido por el libro de \u00f3rdenes que compara una orden a mercado, una IOC limitada y una FOK limitada para una compra de 2 millones de EURUSD: la orden a mercado se ejecuta por completo a 1.085018, la IOC ejecuta 1 mill\u00f3n a 1.085005 y la FOK se cancela\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>El mismo libro, tres instrucciones. El libro es un ejemplo construido; la aritm\u00e9tica es exacta.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Instrucci\u00f3n<\/th>\n<th>Ejecutado<\/th>\n<th>Precio medio<\/th>\n<th>Coste frente al mejor ask<\/th>\n<th>Resultado<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A mercado, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, unos $35<\/td>\n<td>Completada, a un precio que no elegiste<\/td>\n<\/tr>\n<tr>\n<td>L\u00edmite 1.08502 IOC, 2M<\/td>\n<td>1,000,000<\/td>\n<td>1.085005<\/td>\n<td>0.05 pip, unos $5<\/td>\n<td>La mitad del tama\u00f1o, 1M cancelado<\/td>\n<\/tr>\n<tr>\n<td>L\u00edmite 1.08502 FOK, 2M<\/td>\n<td>0<\/td>\n<td>Nada<\/td>\n<td>$0<\/td>\n<td>Cancelada: solo 1M en el l\u00edmite o por debajo<\/td>\n<\/tr>\n<tr>\n<td>L\u00edmite 1.08503 FOK, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, unos $35<\/td>\n<td>Ejecutada: el l\u00edmite era lo bastante amplio<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>La \u00faltima fila es la m\u00e1s sutil. Una d\u00e9cima de pip m\u00e1s convirti\u00f3 la FOK de ninguna operaci\u00f3n en una ejecuci\u00f3n completa, a una media mejor que su l\u00edmite. FOK no significa \u201cajustado\u201d. Significa \u201ctodo el tama\u00f1o debe caber por debajo de este precio en este momento\u201d. La IOC y la FOK con el mismo l\u00edmite ven la misma liquidez. Solo se diferencian en lo que hacen cuando no es suficiente.<\/p>\n<p>Tampoco existe una instrucci\u00f3n universalmente m\u00e1s barata. La IOC de $5 parece una ganga frente a la orden a mercado de $35, pero entreg\u00f3 la mitad de la posici\u00f3n. Si el 1M restante hay que comprarlo despu\u00e9s a un precio peor, la comparaci\u00f3n cambia. Ese coste del tama\u00f1o que falta es el tema del resto de esta gu\u00eda.<\/p>\n<h2 id=\"iof-fix\">C\u00f3mo se ven las \u00f3rdenes en FIX<\/h2>\n<p>En una <a href=\"https:\/\/bjftradinggroup.com\/fix-api-forex-trading\/\">conexi\u00f3n FIX API<\/a> declaras cada instrucci\u00f3n de forma expl\u00edcita en un mensaje NewOrderSingle (<code>35=D<\/code>). Simplificada a los campos que importan, la orden IOC del ejemplo queda as\u00ed:<\/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> por <code>59=4<\/code> y la misma orden pasa a ser FOK. Quita el precio y pon <code>40=1<\/code> y ser\u00e1 una orden a mercado. Aqu\u00ed se omiten la cabecera, el checksum, las marcas de tiempo y los campos de cuenta, y el formato del s\u00edmbolo var\u00eda seg\u00fan el centro de ejecuci\u00f3n: algunos usan identificadores num\u00e9ricos.<\/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>Valores que encontrar\u00e1s<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>40<\/td>\n<td>OrdType<\/td>\n<td>1 A mercado, 2 Limitada, 3 Stop, 4 Stop-limit, D Previamente cotizada<\/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>Cantidad m\u00ednima que debe ejecutarse, donde est\u00e9 disponible<\/td>\n<\/tr>\n<tr>\n<td>150<\/td>\n<td>ExecType<\/td>\n<td>0 Nueva, F Operaci\u00f3n, 4 Cancelada, 8 Rechazada, C Expirada<\/td>\n<\/tr>\n<tr>\n<td>39<\/td>\n<td>OrdStatus<\/td>\n<td>0 Nueva, 1 Parcialmente ejecutada, 2 Ejecutada, 4 Cancelada, 8 Rechazada, C Expirada<\/td>\n<\/tr>\n<tr>\n<td>14 \/ 151<\/td>\n<td>CumQty \/ LeavesQty<\/td>\n<td>Ejecutado hasta ahora \/ a\u00fan abierto. LeavesQty 0 significa que la orden ha terminado<\/td>\n<\/tr>\n<tr>\n<td>31 \/ 32 \/ 6<\/td>\n<td>LastPx \/ LastQty \/ AvgPx<\/td>\n<td>Precio y tama\u00f1o de esta ejecuci\u00f3n \/ media de todas las ejecuciones<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Lo dif\u00edcil no es enviar la orden, sino leer la respuesta. Una sola IOC puede generar una secuencia de ExecutionReports (<code>35=8<\/code>), y la forma de informar del resto depende del centro de ejecuci\u00f3n.<\/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 de vida FIX de una orden IOC de 2 millones: NewOrderSingle, dos informes de ejecuci\u00f3n de operaci\u00f3n con CumQty subiendo hasta 1 mill\u00f3n, luego un informe de cancelaci\u00f3n o expiraci\u00f3n del 1 mill\u00f3n restante con LeavesQty cero, y el algoritmo cubriendo solo la cantidad ejecutada\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Una IOC solo est\u00e1 completa cuando LeavesQty llega a 0. Tu posici\u00f3n es CumQty, nunca la cantidad que solicitaste.<\/figcaption><\/figure>\n<p>Algunos centros de ejecuci\u00f3n env\u00edan una confirmaci\u00f3n adicional (<code>150=0<\/code>) antes de las ejecuciones. Otros entregan una \u00fanica ejecuci\u00f3n agregada. Las sesiones FIX 4.2 usan valores de ExecType para las ejecuciones (1 y 2) distintos de los de FIX 4.3 y posteriores (F). Por eso, un handler robusto se basa en CumQty, LeavesQty y OrdStatus, no en un n\u00famero fijo de mensajes. La <a href=\"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/\">explicaci\u00f3n paso a paso del protocolo FIX<\/a> describe la capa de sesi\u00f3n que hay debajo de estos mensajes.<\/p>\n<h2 id=\"iof-lastlook\">Liquidez full-amount y last look: por qu\u00e9 el forex es diferente<\/h2>\n<p>Las explicaciones centradas en el mercado de acciones presuponen un libro central de \u00f3rdenes limitadas en el que la oferta mostrada es firme. Los centros de ejecuci\u00f3n de forex pueden comportarse de otra forma en dos aspectos que afectan directamente a IOC y FOK.<\/p>\n<p><strong>Liquidez sweepable vs full-amount.<\/strong> En un libro sweepable, una orden puede tomar varios niveles de varios proveedores, como en el ejemplo anterior. En los precios full-amount, un proveedor cotiza un solo precio para todo el tama\u00f1o y los tramos no se suman, por lo que una FOK de 2M debe compararse con el tramo de 2M, no con la suma de las cotizaciones de 1M. Una misma visualizaci\u00f3n de profundidad puede, por tanto, significar cosas distintas.<\/p>\n<p><strong>Last look.<\/strong> Cuando un proveedor aplica last look, tu orden es una solicitud que todav\u00eda puede rechazar tras una breve retenci\u00f3n. Una FOK puede rechazarse aunque el libro mostrara tama\u00f1o suficiente en el momento del env\u00edo, y una IOC puede volver con menos tama\u00f1o del mostrado. El FX Global Code (el c\u00f3digo global de conducta del mercado de divisas) pide a los proveedores que usan last look que informen de esta pr\u00e1ctica a sus clientes, as\u00ed que solicita esa informaci\u00f3n. Los rechazos por last look solo aparecen en tu log si los registras. La mec\u00e1nica se explica en nuestra gu\u00eda sobre <a href=\"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\">ejecuci\u00f3n del br\u00f3ker, A-book, B-book y last look<\/a>.<\/p>\n<div class=\"iof-box\"><strong>Por qu\u00e9 esto importa para la medici\u00f3n:<\/strong> una orden agresiva en un centro de ejecuci\u00f3n con last look puede mostrar excelentes estad\u00edsticas de slippage, porque en la muestra solo est\u00e1n las ejecuciones que le convinieron al proveedor. Un slippage medio bajo combinado con una tasa de rechazo alta no es una buena ejecuci\u00f3n.<\/div>\n<h2 id=\"iof-tolerance\">D\u00f3nde colocar el l\u00edmite: un modelo con n\u00fameros<\/h2>\n<p>En una IOC o FOK, el par\u00e1metro clave no es el TIF, sino el precio l\u00edmite. Si lo pones en la cotizaci\u00f3n actual, la mayor\u00eda de las se\u00f1ales no se ejecutar\u00e1n. Si no pones l\u00edmite, las peores ejecuciones se comen la ventaja. Entre esos extremos hay una respuesta calculable.<\/p>\n<p>Considera una se\u00f1al de corta duraci\u00f3n con una ventaja esperada de 1.2 pips despu\u00e9s de comisiones, medida desde el precio de la se\u00f1al. Entre la se\u00f1al y la llegada al centro de ejecuci\u00f3n, el precio se mueve. Sup\u00f3n dos reg\u00edmenes: en el 80% de los casos el precio deriva unos 0.2 pip en tu contra (desviaci\u00f3n est\u00e1ndar de 0.3 pip) y en el 20% un movimiento r\u00e1pido lo aleja unos 2 pips (desviaci\u00f3n est\u00e1ndar de 1 pip). Estos datos son ilustrativos. En la pr\u00e1ctica, los estimas a partir de tu propio log de \u00f3rdenes.<\/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=\"Modelo ilustrativo: los pips netos esperados por se\u00f1al aumentan con la tolerancia del l\u00edmite, alcanzan su m\u00e1ximo cerca de 0.82 pips con una tolerancia de unos 1.2 pips y caen a 0.64 pips con una orden a mercado sin l\u00edmite, mientras que la tasa de ejecuci\u00f3n sube del 21 por ciento al 100 por ciento\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Modelo ilustrativo, no son resultados de trading: ventaja de 1.2 pip y deriva del precio en dos reg\u00edmenes. La ejecuci\u00f3n se produce cuando la deriva queda dentro de la tolerancia.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Tolerancia del l\u00edmite desde el precio de la se\u00f1al<\/th>\n<th>Tasa de ejecuci\u00f3n<\/th>\n<th>Neto medio por ejecuci\u00f3n<\/th>\n<th>Neto esperado por se\u00f1al<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0 pip (l\u00edmite en el precio de la se\u00f1al)<\/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 (igual a la ventaja)<\/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>Sin l\u00edmite (orden a mercado)<\/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>Tres conclusiones son v\u00e1lidas mucho m\u00e1s all\u00e1 de este ejemplo:<\/p>\n<ul class=\"iof-checks\">\n<li><strong>El mejor l\u00edmite es el precio de equilibrio, no la cotizaci\u00f3n.<\/strong> Merece la pena aceptar cualquier ejecuci\u00f3n que a\u00fan deje un beneficio esperado positivo. En este modelo, el m\u00e1ximo est\u00e1 exactamente donde la tolerancia es igual a la ventaja, porque la siguiente ejecuci\u00f3n marginal gana cero.<\/li>\n<li><strong>La curva es plana cerca del m\u00e1ximo.<\/strong> Entre 0.8 y 2 pips, el beneficio esperado apenas cambia. No necesitas una tolerancia precisa, pero s\u00ed necesitas tener una.<\/li>\n<li><strong>El precio medio de ejecuci\u00f3n es un objetivo enga\u00f1oso.<\/strong> El l\u00edmite m\u00e1s ajustado tiene el mejor precio por ejecuci\u00f3n (1.38 pips) y el peor resultado por se\u00f1al (0.29 pip), porque el 79% de las se\u00f1ales nunca llega a negociarse.<\/li>\n<\/ul>\n<p>El modelo ignora los efectos de cola y supone que todo el tama\u00f1o se ejecuta siempre que se alcanza el l\u00edmite. Para \u00f3rdenes mayores, repite el c\u00e1lculo con tu profundidad real, ya que el l\u00edmite tambi\u00e9n decide cu\u00e1nto tama\u00f1o puede ejecutarse. Comprueba las hip\u00f3tesis con datos: nuestra gu\u00eda sobre la <a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage-backtest-execution-time-gap\/\">brecha entre backtests y ejecuci\u00f3n real<\/a> muestra c\u00f3mo incorporar el tiempo de ejecuci\u00f3n a una prueba.<\/p>\n<h2 id=\"iof-partial\">C\u00f3mo gestionar las ejecuciones parciales sin crear nuevos riesgos<\/h2>\n<p>Una ejecuci\u00f3n parcial no es un error, pero s\u00ed un estado nuevo para el que el algoritmo debe tener una regla. La FOK evita este estado en la entrada; la IOC traslada el problema a tu l\u00f3gica. Decide la pol\u00edtica antes de pasar a producci\u00f3n:<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Pol\u00edtica para el resto<\/th>\n<th>Cu\u00e1ndo encaja<\/th>\n<th>Riesgo a controlar<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Aceptar y gestionar lo ejecutado<\/td>\n<td>Entradas con una ventaja independiente del tama\u00f1o<\/td>\n<td>Posici\u00f3n demasiado peque\u00f1a para cubrir los costes fijos<\/td>\n<\/tr>\n<tr>\n<td>Reenviar el resto a un nuevo precio<\/td>\n<td>La se\u00f1al sigue siendo v\u00e1lida y la ventaja sigue por encima de la tolerancia<\/td>\n<td>Perseguir el precio. Limita los reintentos y vuelve a comprobar la ventaja cada vez<\/td>\n<\/tr>\n<tr>\n<td>Cubrir o completar en otro centro de ejecuci\u00f3n<\/td>\n<td>Operaciones de varias patas<\/td>\n<td>Pasos de lote distintos y una segunda posibilidad de no ejecuci\u00f3n<\/td>\n<\/tr>\n<tr>\n<td>Cerrar la parte ejecutada<\/td>\n<td>Una ejecuci\u00f3n por debajo del tama\u00f1o viable<\/td>\n<td>Pagar el spread dos veces<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Las operaciones de dos patas requieren el mayor cuidado.<\/strong> Sup\u00f3n que una operaci\u00f3n cubierta compra 2M en el centro A con IOC y vende en el centro B. Si A ejecuta 1M y el algoritmo sigue vendiendo los 2M previstos, queda con 1M corto abierto. A unos $100 por pip por mill\u00f3n en EURUSD, un movimiento de 10 pips en contra de esa posici\u00f3n cuesta $1,000, lo que supera f\u00e1cilmente la ventaja de muchas operaciones. La regla es simple: dimensiona la segunda pata a partir del CumQty de la primera, nunca de la cantidad solicitada.<\/p>\n<p>Convierte tambi\u00e9n a la cuadr\u00edcula de tama\u00f1os del segundo centro. Si la primera pata ejecuta 1,370,000 y el centro B acepta pasos de 100,000, puedes cubrir 1,400,000 o 1,300,000, pero no el tama\u00f1o exacto. Define tambi\u00e9n una regla para ese residuo y trata cualquier residuo sin cubrir como un l\u00edmite de riesgo.<\/p>\n<p>La FOK en la primera pata elimina el desajuste de tama\u00f1o, pero genera m\u00e1s casos sin operaci\u00f3n. La FOK en la segunda pata suele ser una mala elecci\u00f3n: con la primera pata ya ejecutada, una cobertura cancelada te deja totalmente expuesto. Es justo en esa segunda pata donde merece la pena pagar por la certeza de ejecuci\u00f3n.<\/p>\n<h2 id=\"iof-matrix\">Qu\u00e9 orden para qu\u00e9 estrategia<\/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=\"Diagrama de decisi\u00f3n para elegir un tipo de orden: si la posici\u00f3n debe cambiar ahora, usa a mercado o una IOC amplia; si una ejecuci\u00f3n parcial es in\u00fatil, usa FOK; si tomas liquidez con cualquier tama\u00f1o \u00fatil, usa IOC limitada; en caso contrario, deja una orden limitada pasiva con Day, GTC o GTD\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Un punto de partida para la decisi\u00f3n. Las reglas del centro de ejecuci\u00f3n y tus datos de ejecuci\u00f3n tienen la \u00faltima palabra.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Situaci\u00f3n<\/th>\n<th>Opci\u00f3n razonable por defecto<\/th>\n<th>Justificaci\u00f3n<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Entrada de arbitraje de latencia<\/td>\n<td>IOC limitada en el precio de equilibrio<\/td>\n<td>La ventaja se desvanece en milisegundos; una ejecuci\u00f3n parcial sigue ganando y el l\u00edmite corta la cola<\/td>\n<\/tr>\n<tr>\n<td>Primera pata de un par cubierto<\/td>\n<td>FOK limitada o IOC con cobertura seg\u00fan CumQty<\/td>\n<td>La FOK protege el dimensionamiento; la IOC gana tasa de ejecuci\u00f3n, pero necesita una l\u00f3gica mejor<\/td>\n<\/tr>\n<tr>\n<td>Segunda pata, con la primera ya ejecutada<\/td>\n<td>A mercado o IOC amplia<\/td>\n<td>Quedarse sin cobertura es el riesgo mayor<\/td>\n<\/tr>\n<tr>\n<td>Entrada basada en noticias<\/td>\n<td>IOC limitada, tama\u00f1o reducido<\/td>\n<td>Los spreads y la profundidad cambian r\u00e1pido, y una orden a mercado no tiene techo<\/td>\n<\/tr>\n<tr>\n<td>Salida de emergencia o stop-out<\/td>\n<td>A mercado o IOC amplia, repetida hasta quedar sin posici\u00f3n<\/td>\n<td>La certeza es lo primero; la FOK puede dejar la posici\u00f3n abierta<\/td>\n<\/tr>\n<tr>\n<td>Operaciones de pares o estad\u00edsticas<\/td>\n<td>IOC limitada o limitada pasiva de corta duraci\u00f3n<\/td>\n<td>El periodo de mantenimiento es m\u00e1s largo, as\u00ed que el spread pagado importa m\u00e1s que la velocidad<\/td>\n<\/tr>\n<tr>\n<td>Captura de spread y reequilibrio<\/td>\n<td>Limitada pasiva, Day o GTD<\/td>\n<td>Te pagan por esperar y debes cancelar antes de las noticias y del rollover<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>La ejecuci\u00f3n tambi\u00e9n depende del momento. En torno al <a href=\"https:\/\/bjftradinggroup.com\/forex-spread-widening\/\">rollover y las noticias, los spreads se ampl\u00edan y la profundidad disminuye<\/a>, de modo que un l\u00edmite que funciona bien al mediod\u00eda en Londres puede fallar o encarecerse en esas ventanas. Haz que la tolerancia y el tama\u00f1o dependan del spread actual en lugar de fijarlos para todo el d\u00eda. En nuestra gu\u00eda sobre <a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage\/\">arbitraje de latencia<\/a> encontrar\u00e1s un an\u00e1lisis m\u00e1s profundo de las estrategias sensibles a la velocidad.<\/p>\n<h2 id=\"iof-howto\">Siete pasos para configurar la ejecuci\u00f3n de \u00f3rdenes<\/h2>\n<div class=\"iof-steps\">\n<div class=\"iof-step\"><span class=\"iof-step-n\">1<\/span><\/p>\n<div><strong>Ponle precio a la operaci\u00f3n perdida.<\/strong> Decide cu\u00e1nto cuesta no ejecutar. En una entrada opcional es cero; en una cobertura o una salida es riesgo abierto.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">2<\/span><\/p>\n<div><strong>Calcula el peor precio aceptable.<\/strong> Toma la ventaja esperada, resta la comisi\u00f3n y un margen de seguridad y coloca el l\u00edmite en ese punto de equilibrio.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">3<\/span><\/p>\n<div><strong>Elige la duraci\u00f3n.<\/strong> Usa IOC o FOK para tomar liquidez y Day, GTC o GTD para \u00f3rdenes que se quedan en el libro.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">4<\/span><\/p>\n<div><strong>Fija la ejecuci\u00f3n m\u00ednima \u00fatil.<\/strong> Usa FOK, o una cantidad m\u00ednima donde est\u00e9 disponible, si las ejecuciones peque\u00f1as no pueden cubrir los costes fijos.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">5<\/span><\/p>\n<div><strong>Escribe la regla para el resto.<\/strong> Define los reintentos, el n\u00famero m\u00e1ximo de intentos y qu\u00e9 ocurre con cualquier residuo sin cubrir.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">6<\/span><\/p>\n<div><strong>Confirma las reglas del centro de ejecuci\u00f3n.<\/strong> Comprueba las combinaciones admitidas de tipo de orden y TIF, los pasos de tama\u00f1o, c\u00f3mo se informa de los restos y si se aplica last look.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">7<\/span><\/p>\n<div><strong>Registra y revisa.<\/strong> Registra todas las \u00f3rdenes, incluidos rechazos y cancelaciones, y ajusta el l\u00edmite con datos reales de ejecuci\u00f3n.<\/div>\n<\/div>\n<\/div>\n<h2 id=\"iof-mistakes\">Errores comunes en la gesti\u00f3n automatizada de \u00f3rdenes<\/h2>\n<ul class=\"iof-checks\">\n<li><strong>Dar por hecho que se ejecut\u00f3 el tama\u00f1o solicitado.<\/strong> La posici\u00f3n debe salir de los informes de ejecuci\u00f3n, no de la orden que enviaste.<\/li>\n<li><strong>Tratar una FOK cancelada como un error del sistema.<\/strong> Es un resultado normal. Generar una alerta por cada una te acostumbra a ignorar las alertas; mejor alerta sobre la tasa.<\/li>\n<li><strong>Reintentar al mismo precio en bucle.<\/strong> Si el precio se ha movido, el reintento tambi\u00e9n falla, y los reintentos r\u00e1pidos pueden superar los l\u00edmites de mensajes. Cambia el precio o detente.<\/li>\n<li><strong>Ignorar el estado desconocido.<\/strong> Cuando no llega respuesta, la orden puede seguir viva o estar ejecutada. Cons\u00faltala con un OrderStatusRequest (<code>35=H<\/code>) o concilia la posici\u00f3n tras reconectar antes de enviar una de reemplazo.<\/li>\n<li><strong>Reutilizar valores de ClOrdID.<\/strong> Un tag 11 \u00fanico para cada orden, incluido cada reintento, es lo que hace posible la conciliaci\u00f3n.<\/li>\n<li><strong>Usar precios obsoletos para el l\u00edmite.<\/strong> Un l\u00edmite calculado a partir de una cotizaci\u00f3n retrasada es demasiado ajustado o demasiado generoso. Un <a href=\"https:\/\/bjftradinggroup.com\/fast-feed-for-arbitrage\/\">feed de precios r\u00e1pido<\/a> le da sentido a la tolerancia.<\/li>\n<li><strong>Probar con ejecuciones perfectas.<\/strong> Un backtest que ejecuta cada orden por completo a la cotizaci\u00f3n no puede distinguir a mercado, IOC y FOK. Modela la profundidad y los rechazos, o haz forward testing con tama\u00f1o peque\u00f1o.<\/li>\n<li><strong>Trasladar ajustes entre centros de ejecuci\u00f3n.<\/strong> Una tolerancia ajustada en un br\u00f3ker dice poco sobre otro, porque la profundidad, el last look y la latencia son distintos.<\/li>\n<\/ul>\n<h2 id=\"iof-measure\">Qu\u00e9 medir<\/h2>\n<p>Elegir un tipo de orden es una cuesti\u00f3n emp\u00edrica, y solo un log completo puede responderla. Los informes deben incluir se\u00f1ales e intentos, no solo operaciones completadas.<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>M\u00e9trica<\/th>\n<th>Definici\u00f3n<\/th>\n<th>Qu\u00e9 te indica<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Ratio de llenado<\/td>\n<td>Cantidad ejecutada \/ cantidad solicitada<\/td>\n<td>Si es muy bajo, el l\u00edmite es ajustado o la profundidad es escasa<\/td>\n<\/tr>\n<tr>\n<td>Tasa de rechazo<\/td>\n<td>\u00d3rdenes rechazadas o canceladas \/ \u00f3rdenes enviadas<\/td>\n<td>Un aumento repentino apunta a cambios en la liquidez o en el br\u00f3ker<\/td>\n<\/tr>\n<tr>\n<td>Slippage<\/td>\n<td>Precio de ejecuci\u00f3n menos precio de referencia en la se\u00f1al, con signo<\/td>\n<td>Coste de ejecuci\u00f3n por operaci\u00f3n ejecutada<\/td>\n<\/tr>\n<tr>\n<td>Tiempo de ida y vuelta<\/td>\n<td>Del env\u00edo de la orden al primer informe de ejecuci\u00f3n<\/td>\n<td>Si el centro de ejecuci\u00f3n se est\u00e1 ralentizando, por hora del d\u00eda<\/td>\n<\/tr>\n<tr>\n<td>Neto por se\u00f1al<\/td>\n<td>Resultado total \/ todas las se\u00f1ales, incluidas las perdidas<\/td>\n<td>La cifra que debe guiar la tolerancia<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Desglosa estas cifras por s\u00edmbolo, centro de ejecuci\u00f3n, hora y tipo de orden, y compara los resultados antes y despu\u00e9s de cada cambio. SharpTrader muestra \u00f3rdenes y estad\u00edsticas de rendimiento con PnL, slippage y tiempo de ejecuci\u00f3n, una base pr\u00e1ctica para este tipo de revisi\u00f3n. Los tipos de orden y los valores de TIF disponibles en cada configuraci\u00f3n dependen del conector y del br\u00f3ker, as\u00ed que conf\u00edrmalos para tu propia cuenta.<\/p>\n<div class=\"iof-cta\">\n<h3>Construye la ejecuci\u00f3n en torno a tus propios datos<\/h3>\n<p>SharpTrader se conecta a br\u00f3kers por FIX API y otros protocolos, ejecuta estrategias de arbitraje y de no arbitraje, y registra el slippage y el tiempo de ejecuci\u00f3n de cada orden. Para ajustar los par\u00e1metros con esos datos, SharpTrader Optimizer automatiza la b\u00fasqueda.<\/p>\n<p><a class=\"iof-btn\" href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-forex-crypto-arbitrage\/\">Descubre 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=\"bjfff9339\" 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\">Esc\u00e1ner de arbitraje gratis + curso breve por email<\/p>\n<p style=\"margin:0 0 16px;font-size:15px;line-height:1.55;color:#44505f\">Recibe el enlace al esc\u00e1ner gratuito y algunos emails breves y pr\u00e1cticos de Boris: qu\u00e9 significa realmente una diferencia de precio despu\u00e9s de costos, c\u00f3mo probar una estrategia antes de arriesgar dinero real y qu\u00e9 herramientas se adaptan a tu mercado. Sin exageraciones. Los emails se env\u00edan en ingl\u00e9s.<\/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=\"1793826998\"><input type=\"hidden\" name=\"ref\" value=\"ioc-fok-order-types-algo-trading\"><input type=\"hidden\" name=\"lang\" value=\"es\"><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=\"Nombre\" aria-label=\"Nombre\" 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\">Env\u00edamelo<\/button>\n<\/div>\n<p style=\"margin:10px 0 0;font-size:12px;line-height:1.5;color:#6b7785\">Al enviar, aceptas recibir emails de BJF Trading Group sobre herramientas de arbitraje y software de trading. Puedes darte de baja cuando quieras. Consulta nuestra <a href=\"https:\/\/bjftradinggroup.com\/es\/privacy-policy\/\">Pol\u00edtica de privacidad<\/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\":\"Introduce un email v\\u00e1lido.\",\"sending\":\"Enviando\\u2026\",\"done\":\"\\u00a1Listo! Revisa tu bandeja de entrada en unos minutos.\",\"err\":\"Algo sali\\u00f3 mal, int\\u00e9ntalo de nuevo.\",\"net\":\"Error de red, int\\u00e9ntalo de nuevo.\",\"srv\":false};var b=document.getElementById('bjfff9339');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\">Preguntas frecuentes<\/h2>\n<div class=\"iof-faq\">\n<h3>\u00bfCu\u00e1l es la diferencia entre IOC y FOK?<\/h3>\n<p>Ambas se ejecutan de inmediato y nunca se quedan en el libro. La IOC acepta una ejecuci\u00f3n parcial y cancela el resto no ejecutado. La FOK exige que toda la cantidad se ejecute de una vez; de lo contrario, se cancela la orden entera y no se negocia nada.<\/p>\n<h3>\u00bfEs FOK mejor que IOC?<\/h3>\n<p>Ninguna es mejor en general. FOK es adecuada para operaciones en las que una posici\u00f3n parcial es in\u00fatil o complica una cobertura. IOC suele negociarse con m\u00e1s frecuencia, porque parte del tama\u00f1o se ejecuta, pero tu algoritmo debe gestionar correctamente las ejecuciones parciales.<\/p>\n<h3>\u00bfPuede una orden FOK ejecutarse parcialmente?<\/h3>\n<p>No. Por definici\u00f3n, una orden FOK se ejecuta por completo o no se ejecuta en absoluto. Si ves una ejecuci\u00f3n parcial, la orden no era una FOK real en ese centro de ejecuci\u00f3n, as\u00ed que comprueba c\u00f3mo mapea el br\u00f3ker la instrucci\u00f3n.<\/p>\n<h3>\u00bfQu\u00e9 ocurre con la parte no ejecutada de una orden IOC?<\/h3>\n<p>Se cancela de inmediato y nunca se queda en el libro. En FIX recibes un informe de ejecuci\u00f3n que cierra la orden, normalmente como cancelada (Canceled) o expirada (Expired) seg\u00fan el centro de ejecuci\u00f3n, con LeavesQty igual a 0.<\/p>\n<h3>\u00bfUna orden a mercado es lo mismo que una orden IOC?<\/h3>\n<p>No exactamente. Una orden a mercado no tiene l\u00edmite de precio, mientras que una IOC normalmente s\u00ed lo tiene. Muchos centros de ejecuci\u00f3n procesan las \u00f3rdenes a mercado con comportamiento IOC o FOK, as\u00ed que la duraci\u00f3n puede coincidir, pero solo un l\u00edmite protege el precio.<\/p>\n<h3>\u00bfCu\u00e1les son los valores FIX de IOC y FOK?<\/h3>\n<p>En el campo TimeInForce, tag 59, IOC es 3 y FOK es 4. El tipo de orden se fija por separado en el tag 40, donde 1 es a mercado y 2 es limitada.<\/p>\n<h3>\u00bfTodos los br\u00f3kers de forex admiten IOC y FOK?<\/h3>\n<p>No. La compatibilidad depende del br\u00f3ker, la plataforma y el tipo de conexi\u00f3n. Las conexiones FIX API suelen ofrecer m\u00e1s control, pero cada centro de ejecuci\u00f3n publica su propia lista de combinaciones aceptadas de tipo de orden y time in force.<\/p>\n<\/div>\n<p class=\"iof-note\">Este art\u00edculo es educativo y no constituye asesoramiento de inversi\u00f3n. El libro de \u00f3rdenes y el modelo son ejemplos ilustrativos, no resultados de trading. Operar en el mercado de divisas conlleva un riesgo significativo de p\u00e9rdida.<\/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, \u00f3rdenes a mercado y limitadas: tipos de \u00f3rdenes para la ejecuci\u00f3n algor\u00edtmica en forex\",\n      \"description\": \"IOC vs FOK explicados con un libro de \u00f3rdenes de ejemplo, tags FIX, last look, gesti\u00f3n de ejecuciones parciales y un modelo para fijar el precio l\u00edmite en algoritmos de 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\": \"C\u00f3mo configurar la ejecuci\u00f3n de \u00f3rdenes de un algoritmo de forex\",\n      \"step\": [\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 1,\n          \"name\": \"Ponle precio a la operaci\u00f3n perdida\",\n          \"text\": \"Ponle precio a la operaci\u00f3n perdida. Decide cu\u00e1nto cuesta no ejecutar. En una entrada opcional es cero; en una cobertura o una salida es riesgo abierto.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 2,\n          \"name\": \"Calcula el peor precio aceptable\",\n          \"text\": \"Calcula el peor precio aceptable. Toma la ventaja esperada, resta la comisi\u00f3n y un margen de seguridad y coloca el l\u00edmite en ese punto de equilibrio.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 3,\n          \"name\": \"Elige la duraci\u00f3n\",\n          \"text\": \"Elige la duraci\u00f3n. Usa IOC o FOK para tomar liquidez y Day, GTC o GTD para \u00f3rdenes que se quedan en el libro.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 4,\n          \"name\": \"Fija la ejecuci\u00f3n m\u00ednima \u00fatil\",\n          \"text\": \"Fija la ejecuci\u00f3n m\u00ednima \u00fatil. Usa FOK, o una cantidad m\u00ednima donde est\u00e9 disponible, si las ejecuciones peque\u00f1as no pueden cubrir los costes fijos.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 5,\n          \"name\": \"Escribe la regla para el resto\",\n          \"text\": \"Escribe la regla para el resto. Define los reintentos, el n\u00famero m\u00e1ximo de intentos y qu\u00e9 ocurre con cualquier residuo sin cubrir.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 6,\n          \"name\": \"Confirma las reglas del centro de ejecuci\u00f3n\",\n          \"text\": \"Confirma las reglas del centro de ejecuci\u00f3n. Comprueba las combinaciones admitidas de tipo de orden y TIF, los pasos de tama\u00f1o, c\u00f3mo se informa de los restos y si se aplica last look.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 7,\n          \"name\": \"Registra y revisa\",\n          \"text\": \"Registra y revisa. Registra todas las \u00f3rdenes, incluidos rechazos y cancelaciones, y ajusta el l\u00edmite con datos reales de ejecuci\u00f3n.\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfCu\u00e1l es la diferencia entre IOC y FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Ambas se ejecutan de inmediato y nunca se quedan en el libro. La IOC acepta una ejecuci\u00f3n parcial y cancela el resto no ejecutado. La FOK exige que toda la cantidad se ejecute de una vez; de lo contrario, se cancela la orden entera y no se negocia nada.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfEs FOK mejor que IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Ninguna es mejor en general. FOK es adecuada para operaciones en las que una posici\u00f3n parcial es in\u00fatil o complica una cobertura. IOC suele negociarse con m\u00e1s frecuencia, porque parte del tama\u00f1o se ejecuta, pero tu algoritmo debe gestionar correctamente las ejecuciones parciales.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfPuede una orden FOK ejecutarse parcialmente?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"No. Por definici\u00f3n, una orden FOK se ejecuta por completo o no se ejecuta en absoluto. Si ves una ejecuci\u00f3n parcial, la orden no era una FOK real en ese centro de ejecuci\u00f3n, as\u00ed que comprueba c\u00f3mo mapea el br\u00f3ker la instrucci\u00f3n.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfQu\u00e9 ocurre con la parte no ejecutada de una orden IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Se cancela de inmediato y nunca se queda en el libro. En FIX recibes un informe de ejecuci\u00f3n que cierra la orden, normalmente como cancelada (Canceled) o expirada (Expired) seg\u00fan el centro de ejecuci\u00f3n, con LeavesQty igual a 0.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfUna orden a mercado es lo mismo que una orden IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"No exactamente. Una orden a mercado no tiene l\u00edmite de precio, mientras que una IOC normalmente s\u00ed lo tiene. Muchos centros de ejecuci\u00f3n procesan las \u00f3rdenes a mercado con comportamiento IOC o FOK, as\u00ed que la duraci\u00f3n puede coincidir, pero solo un l\u00edmite protege el precio.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfCu\u00e1les son los valores FIX de IOC y FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"En el campo TimeInForce, tag 59, IOC es 3 y FOK es 4. El tipo de orden se fija por separado en el tag 40, donde 1 es a mercado y 2 es limitada.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"\u00bfTodos los br\u00f3kers de forex admiten IOC y FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"No. La compatibilidad depende del br\u00f3ker, la plataforma y el tipo de conexi\u00f3n. Las conexiones FIX API suelen ofrecer m\u00e1s control, pero cada centro de ejecuci\u00f3n publica su propia lista de combinaciones aceptadas de tipo de orden y time in force.\"\n          }\n        }\n      ]\n    }\n  ]\n}\n<\/script>\n<\/div>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>IOC vs FOK y los dem\u00e1s tipos de orden entre los que un algoritmo debe elegir: c\u00f3mo se combinan las \u00f3rdenes a mercado, limitadas y stop con el time in force, un libro de \u00f3rdenes con tres resultados, tags FIX e informes de ejecuci\u00f3n, last look, d\u00f3nde colocar el l\u00edmite, gesti\u00f3n de ejecuciones parciales y una matriz de estrategias.<\/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: tipos de \u00f3rdenes para algoritmos de forex<\/title>\n<meta name=\"description\" content=\"IOC vs FOK en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de 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\/es\/ioc-fok-order-types-algo-trading\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IOC vs FOK: tipos de \u00f3rdenes para algoritmos de forex\" \/>\n<meta property=\"og:description\" content=\"IOC vs FOK en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de forex.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bjftradinggroup.com\/es\/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=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Boris Fesenko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutos\" \/>\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, \u00f3rdenes a mercado y limitadas: tipos de \u00f3rdenes para la ejecuci\u00f3n algor\u00edtmica en 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\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#respond\"]}],\"name\":\"IOC vs FOK: tipos de \u00f3rdenes para algoritmos de forex\",\"description\":\"IOC vs FOK en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de 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: tipos de \u00f3rdenes para algoritmos de forex\",\"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 en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de forex.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\",\"name\":\"Boris Fesenko\",\"pronouns\":\"He\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@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\\\/es\\\/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: tipos de \u00f3rdenes para algoritmos de forex","description":"IOC vs FOK en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de 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\/es\/ioc-fok-order-types-algo-trading\/","og_locale":"es_ES","og_type":"article","og_title":"IOC vs FOK: tipos de \u00f3rdenes para algoritmos de forex","og_description":"IOC vs FOK en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de forex.","og_url":"https:\/\/bjftradinggroup.com\/es\/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":{"Escrito por":"Boris Fesenko","Tiempo de lectura":"18 minutos"},"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, \u00f3rdenes a mercado y limitadas: tipos de \u00f3rdenes para la ejecuci\u00f3n algor\u00edtmica en 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":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#respond"]}],"name":"IOC vs FOK: tipos de \u00f3rdenes para algoritmos de forex","description":"IOC vs FOK en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de 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: tipos de \u00f3rdenes para algoritmos de forex","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 en la pr\u00e1ctica: libro de \u00f3rdenes de ejemplo, tags FIX, last look, ejecuciones parciales y un modelo para fijar el l\u00edmite en algoritmos de forex.","breadcrumb":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"]}]},{"@type":"ImageObject","inLanguage":"es","@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":"es"},{"@type":"Person","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9","name":"Boris Fesenko","pronouns":"He","image":{"@type":"ImageObject","inLanguage":"es","@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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/15930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/comments?post=15930"}],"version-history":[{"count":37,"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/posts\/15930\/revisions"}],"predecessor-version":[{"id":15972,"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/posts\/15930\/revisions\/15972"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/media\/15931"}],"wp:attachment":[{"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/media?parent=15930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/categories?post=15930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/es\/wp-json\/wp\/v2\/tags?post=15930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}