Envías una orden por 10.000 unidades y el libro solo tiene 1.000 a tu precio. ¿Qué pasa con las otras 9.000? Toda orden lleva ya una respuesta a esa pregunta antes de enviarse. Fill or kill, immediate or cancel y all or none son tres maneras de responderla, y no son tres variantes de un mismo ajuste.
Qué decide realmente el time-in-force
El time-in-force es una instrucción que acompaña a una orden y resuelve exactamente una pregunta: qué pasa con la parte que no se puede ejecutar ahora mismo. O esa parte espera en el libro, o se descarta en el momento de la casación.
Ese es todo el eje. Una orden good-till-cancelled toma la primera rama y espera hasta que se ejecuta o la retiras. Una orden good-till-date espera igual, pero se detiene en el plazo que tú fijas. Immediate or cancel y fill or kill toman la segunda rama, donde no queda nada esperando.
El protocolo FIX, una veterana especificación del sector para el tratamiento de órdenes, define el campo como el que indica cuánto tiempo sigue vigente la orden, y su propio valor por defecto es un ajuste de jornada de negociación heredado de los mercados que cierran. Kraken fija good-till-cancelled como valor por defecto en su propia interfaz de órdenes. Escritos completos en su primera aparición, los tres ajustes se abrevian a partir de aquí como IOC, FOK y AON.
Immediate or cancel: toma lo que haya y suelta el resto
Una orden immediate-or-cancel opera todo lo que puede contra el libro en ese momento y descarta el resto. Permite una ejecución parcial: si 1.000 de tus 10.000 pueden operarse a tu precio, se operan 1.000 y las otras 9.000 sencillamente dejan de existir.
Kraken describe el ajuste como uno que cancela y devuelve de inmediato cualquier cantidad que no se pueda ejecutar al llegar. Coinbase formula el mismo comportamiento como la cancelación de cualquier cantidad restante. Dos exchanges, un mismo mecanismo.
«Immediate» aquí se refiere al momento de la casación, no a la velocidad. Cuando el libro es lo bastante profundo para absorber la orden entera, una IOC y una orden límite corriente al mismo precio siguen el mismo camino y acaban en el mismo sitio. La diferencia solo aparece en el instante en que sobra algo.
Fill or kill: todo ahora, o nada
Una orden fill-or-kill añade una condición a esa misma inmediatez: la cantidad entera, o nada. Es una IOC más un requisito de integridad, y las dos condiciones tienen que cumplirse a la vez. Si 9.000 de tus 10.000 pudieran operarse, una IOC opera las 9.000 y una FOK no opera nada.
Lo que garantiza una FOK es cantidad, no precio. Puede completarse entera a un precio medio mucho peor que el que estabas mirando, porque consume toda la profundidad que haga falta para terminar el trabajo. El control del precio es un instrumento aparte, un precio límite o una tolerancia de slippage, y recurrir a fill or kill para evitar un mal precio es pedirle algo que no ofrece.
Kraken recoge una restricción más que conviene conocer antes de buscar el ajuste: su opción fill-or-kill está disponible solo para órdenes límite.
All or none es otro ajuste, no un tercer plazo
All or none parece hermano de fill or kill, y no lo es. En FIX, el time-in-force vive en un campo con ocho valores, y all or none no está entre ellos. Vive en un campo aparte, el de las instrucciones de tratamiento de órdenes, bajo el código G, descrito ahí como all or none.
La consecuencia es práctica, no burocrática. Como AON se apoya en otro campo, puede combinarse con un plazo: una orden all-or-none que además sea good-till-cancelled descansa en el libro y espera, pero solo llegará a operarse en una única pieza completa. Fill or kill empaqueta inmediatez e integridad en un solo valor de time-in-force, así que no puede esperar a nada.
| ¿Puede el resto descansar en el libro? | Ejecución parcial permitida | Ejecución parcial no permitida |
|---|---|---|
| Sí, espera | Good-till-cancelled | All or none, en el libro |
| No, se descarta | Immediate or cancel | Fill or kill |
Qué dice el estado cuando no se ejecuta nada
Una orden que nunca llegó a operarse no es automáticamente una orden fallida o expirada. Bajo FIX, una orden fill-or-kill o immediate-or-cancel sin ejecutar termina como cancelada, y la especificación cita a estas dos como las excepciones explícitas al estado expirada.
Eso choca con el sentido corriente de cancelada, que da a entender que algo descansó en el libro y luego se retiró. La reconciliación es que la orden sí llegó a estar activa; simplemente nunca descansó en el libro. Coinbase lo dice desde el otro lado: una orden fill-or-kill solo se publica en el libro si se fuera a ejecutar de inmediato y por completo.
La secuencia oficial desarrollada deja la aritmética a la vista. Una orden fill-or-kill por 10.000 que no se puede completar termina sin nada operado, así que la cantidad ejecutada es 0 y la cantidad restante es 0. Una orden immediate-or-cancel por esas mismas 10.000 que encuentra 1.000 disponibles termina con 1.000 operadas y 9.000 canceladas. Esas mismas tablas llevan además una rama de rechazo, y la especificación señala aparte que una orden puede pasar de nueva a rechazada incluso después de haber sido reconocida. Rechazada y cancelada son dos resultados distintos, así que lee el estado que informa tu exchange en lugar de dar por hecho cuál se aplica.
Los ajustes, uno al lado del otro
| Ajuste | El resto | Ejecución parcial | En qué campo vive |
|---|---|---|---|
| Good-till-cancelled | Descansa hasta ejecutarse o retirarse | Permitida | Time-in-force |
| Good-till-date | Descansa hasta tu plazo | Permitida | Time-in-force |
| Immediate or cancel | Se descarta al instante | Permitida | Time-in-force |
| Fill or kill | Se descarta al instante | No permitida | Time-in-force |
| All or none | Depende del plazo con el que se combine | No permitida | Instrucción de tratamiento de órdenes |
Cuándo es la elección correcta cada uno
Recurre a fill or kill cuando una posición parcial sea peor que ninguna posición. Una pata de arbitraje o una pata de cobertura que solo funciona a tamaño completo es el caso claro: la mitad no es la mitad de buena, es una exposición nueva y no deseada. El precio que aceptas por esa certeza es que quedarse a un paso no devuelve nada.
Recurre a immediate or cancel cuando quieras consumir la liquidez que tienes delante ahora mismo sin dejar detrás una orden visible. Recorre las órdenes que descansan en el libro igual que lo hace una orden de mercado, aunque una orden de mercado va de tomar los mejores precios disponibles y no de qué hacer con un resto.
Recurre a un ajuste que descanse en el libro cuando esperar sea justo el objetivo. Si tu precio todavía no está en el libro y te conformas con aguardar hasta que llegue, descartar la orden en el momento de la casación arruina el propósito.
En resumen
El time-in-force responde a una pregunta y solo a una: qué se hace con la cantidad que no puede operarse ahora mismo. Immediate or cancel descarta el resto y se queda con lo que consiguió. Fill or kill no acepta en absoluto un resultado parcial, así que o se completa o te deja sin nada. All or none no es un plazo, sino una regla de integridad en otro campo, y por eso puede esperar en el libro mientras que fill or kill no puede.
Antes de usar uno, comprueba a cuál de las dos preguntas estás respondiendo de verdad: cuánto debe vivir la orden, o si un resultado incompleto es aceptable. Confundirlas es lo que convierte fill or kill en una protección del precio esperado, algo que nunca fue. Para seguir aprendiendo los fundamentos, sigue leyendo Bitbase Academy.
Lecturas relacionadas
Otros artículos de Bitbase sobre este tema:
- Desequilibrio del libro de órdenes, CVD e impacto en el mercado
- Muros de compra, muros de venta y profundidad del libro de órdenes
- Comisiones maker y taker en cripto: ¿cuál es la diferencia?
- Protección de órdenes de mercado y límites fat-finger
Aviso legal: Este artículo es contenido educativo de Bitbase Academy y se ofrece solo con fines informativos. No constituye asesoramiento de inversión, negociación, fiscal ni financiero. Los criptoactivos son volátiles; evalúa tu propio riesgo. Redactado en septiembre de 2026; consulta la información oficial más reciente.
Fuentes
[1] FIX Trading Community, FIX Application Layer: Order State Changes (FIX Latest, actualizado hasta EP284, noviembre de 2023) fixtrading.org
[2] Onix Solutions, diccionario FIX 4.4, TimeInForce(59) onixs.biz
[3] Onix Solutions, diccionario FIX 4.4, ExecInst(18) onixs.biz
[4] Documentación de la API de Kraken, WebSocket v2, Add Order (campo time_in_force) docs.kraken.com
[5] Documentación para desarrolladores de Coinbase, Advanced Trade API, Create Order docs.cdp.coinbase.com






