Algunas órdenes límite de futuros en Kraken pueden ejecutarse aunque la plataforma confirme que su cancelación se ha realizado correctamente. El comportamiento se produce cuando la solicitud de cancelación llega durante la ventana de protección para creadores de mercado, conocida como Maker Protection.
La regla afecta a determinados mercados de futuros y puede generar una aparente contradicción: la orden figura como “cancelada”, pero posteriormente registra una ejecución, total o parcial. Kraken amplió este sistema el 8 de octubre a más contratos, como parte de la segunda fase de su despliegue tras anunciar 61 contratos perpetuos adicionales.
Cómo funciona la ventana de protección
Maker Protection retiene durante un breve periodo determinadas órdenes antes de que lleguen al motor de casación. El objetivo es dar margen de reacción a los operadores que mantienen órdenes en el libro y evitar que una orden pueda retirar liquidez de forma inmediata en los mercados cubiertos.
La documentación de Kraken describe una retención inicial de 20 milisegundos. El plazo concreto depende del contrato. Una orden límite que no incluya la instrucción post-only queda retenida en los mercados afectados incluso si, en condiciones normales, habría permanecido en el libro sin ejecutarse de inmediato.
Si el operador envía una cancelación antes de que termine esa ventana, Kraken modifica el tratamiento de la orden retenida: la convierte en una orden de ejecución inmediata o cancelación, conocida como immediate-or-cancel (IOC). La solicitud de cancelación evita la espera adicional, pero la orden conserva su momento de liberación original. Cuando llega ese momento, puede ejecutarse contra la liquidez disponible; cualquier parte que no encuentre contrapartida se elimina y no queda en el libro.
Dos respuestas distintas para una misma orden
La particularidad está en que Kraken informa por separado de la cancelación y del resultado de la orden. La petición de cancelación puede recibir una respuesta satisfactoria y mostrar el estado “cancelled”, mientras que la orden comunica después si se ha ejecutado o si no ha podido hacerlo.
En el caso de una orden límite convertida que finalmente no puede cruzarse, la respuesta de la interfaz REST v3 es iocWouldNotExecute. Por tanto, una confirmación de cancelación no basta para concluir que no habrá operación posterior cuando la orden estaba dentro de la ventana de protección.
El comportamiento no es igual para todos los tipos de órdenes retenidas. Si la cancelación se dirige contra una orden retenida de ejecución inmediata o cancelación, de ejecución total o cancelación —fill-or-kill— o contra una orden de mercado, Kraken devuelve ORDER_NOT_FOUND. Aun así, la solicitud original continúa su recorrido y llega al motor de casación cuando se cumple el momento de liberación previsto.
La cobertura depende de cada contrato
La protección no se aplica de forma uniforme a todos los futuros. El flujo de instrumentos de Kraken identifica la retención configurada para cada mercado mediante el campo makerProtectionMillis. Si el campo no aparece o su valor es cero, el contrato no tiene un retraso configurado.
La cobertura, por tanto, debe comprobarse contrato por contrato y no puede deducirse únicamente del nombre del activo. Kraken señala además que sus diez mercados perpetuos lineales con mayor liquidez quedan excluidos de esta protección y que la operativa al contado no se ve afectada.
Las órdenes independientes con instrucción post-only tampoco pasan por la retención. Para los operadores automatizados de futuros, la consecuencia práctica es que deben conciliar la respuesta de ejecución de la orden con el acuse de recibo de la cancelación. En los mercados cubiertos, ambas respuestas pueden ser correctas al mismo tiempo: la cancelación puede figurar como exitosa y la orden puede terminar ejecutándose después.










