11 November 2026 · ejecución

La estrategia superó las pruebas. Luego el exchange cambió el tamaño del tick.

La estrategia superó las pruebas. Luego el exchange cambió el tamaño del tick.

A las 08:00 UTC de un martes, un mercado de cripto cambió el tamaño del tick de un contrato perpetuo de precio medio. Nuestra estrategia de basis no se dio cuenta. Su señal seguía viendo el mismo diferencial entre spot y futuros, sus límites de riesgo no habían cambiado y el backtest seguía dando los mismos resultados.

El trading simulado sí lo detectó. El adaptador de órdenes redondeó una orden limitada de compra hacia abajo, al precio permitido más cercano. Eso dejó la orden un tick por debajo del nivel modelado por el backtest. El mercado tocó el precio anterior, la orden simulada se ejecutó y la orden de trading simulado quedó sin ejecutar. Para el almuerzo, la posición de la estrategia estaba desequilibrada.

El incidente parecía un pequeño error de redondeo. En realidad, era un problema en los límites del modelo: la estrategia conocía los precios, pero el backtest desconocía la cuadrícula de precios del mercado.

Operábamos con una señal de basis sencilla: comprábamos spot y vendíamos un perpetuo cuando la prima de los futuros superaba un umbral. Las órdenes eran pasivas porque la ventaja esperada del basis era pequeña. Unos pocos ticks podían determinar si la entrada generaba lo suficiente para cubrir las comisiones y la salida posterior.

¿Qué cambió cuando cambió el tamaño del tick?

Antes de la actualización, el perpetuo aceptaba precios en incrementos de 0.01. Después, aceptaba incrementos de 0.05 en la banda de precios correspondiente. La señal calculó un precio objetivo de venta de 42,318.03, válido según la regla anterior. Con la nueva regla, ese precio no era válido.

El exchange rechazaba los precios no válidos, pero nuestro adaptador tenía una alternativa: redondeaba la venta hacia abajo a 42,318.00. Ese precio tampoco era válido. Una segunda alternativa volvía a redondear, esta vez a 42,318.05, que sí era válido, pero menos favorable para el vendedor. La orden ya no podía vender al precio modelado. Esa ruta del código se había escrito para otro mercado y convirtió silenciosamente el rechazo en una orden con precio ajustado.

Esa orden planteaba dos preguntas distintas. Primero, ¿qué precio puede aceptar el mercado? Segundo, ¿cómo debe responder una estrategia cuando el precio que desea no coincide con la cuadrícula? El exchange responde a la primera. La estrategia o la política de ejecución debe responder a la segunda.

Intención de la ordenRegla de la cuadrículaDirección habitual del redondeoQué puede cambiar
Orden limitada de compraEl precio debe ser múltiplo del tickHacia abajo para mantenerse en el límite o por debajoMenor probabilidad de ejecución
Orden limitada de ventaEl precio debe ser múltiplo del tickHacia arriba para mantenerse en el límite o por encimaMenor probabilidad de ejecución
Orden limitada ejecutable contra el mercadoTambién debe respetar los límites de precioDepende del precio máximo aceptableSi cruza el diferencial entre compra y venta

No existe una regla de redondeo universalmente correcta. Redondear una compra hacia abajo respeta el límite de precio del comprador, pero puede reducir la probabilidad de ejecución. Redondear hacia arriba puede hacer que la orden sea ejecutable contra el mercado, lo que cambia las comisiones y el impacto. Para nuestra entrada pasiva de basis, ajustar la orden en silencio fue un comportamiento incorrecto. La estrategia había elegido un objetivo; el adaptador cambió su economía.

¿Por qué el backtest seguía pareciendo sólido?

Nuestro simulador histórico de órdenes trataba los precios limitados como números continuos. Si el mínimo de la vela alcanzaba el precio de compra, o su máximo alcanzaba el precio de venta, contaba una ejecución. Ya es una aproximación generosa para una orden pasiva, porque que se negocie al precio límite no dice nada sobre la posición en la cola. Pero el cambio de tick reveló un problema más básico: la orden no podía haber existido a ese precio.

Reprodujimos las mismas decisiones aplicando la nueva cuadrícula desde su hora de entrada en vigor. Varias ejecuciones desaparecieron. Algunas órdenes se redondearon a precios que cruzaban el diferencial y generaron comisiones taker en lugar de maker. La trayectoria de la posición resultante se desvió, así que también cambiaron las coberturas y salidas posteriores. Una regla que parecía metadato había alterado toda la secuencia de operaciones.

Y la actualización no era una sorpresa oculta en un gráfico. El mercado había publicado un cambio en las reglas del instrumento con una marca de tiempo de entrada en vigor. Guardábamos los datos de mercado con cuidado, pero los metadatos del instrumento vivían en una caché que se actualizaba al iniciar el sistema. El backtest consultaba las reglas actuales para todas las fechas históricas; el trading simulado conservó reglas desactualizadas hasta que se reinició el proceso. Ninguno de los dos entornos representaba lo que el mercado permitía en cada momento.

¿Cómo debe modelar un backtest los cambios en el tamaño del tick?

Versiona las reglas de los instrumentos con intervalos de validez, igual que otros datos disponibles en cada momento. Como mínimo, conserva la hora de entrada en vigor y los valores necesarios para validar una orden: tamaño del tick, incremento de cantidad, cantidad mínima y cualquier banda de precios. El simulador debe cargar el conjunto de reglas vigente en el momento de la decisión simulada.

Después, define explícitamente cómo se gestionan las órdenes. Si un precio objetivo no es válido, recházalo, redondéalo según una política documentada o vuelve a calcular el objetivo sobre la cuadrícula. Registra qué ocurrió. Un backtest que corrige automáticamente todas las órdenes puede servir para estimar una política de ejecución concreta, pero no debería presentar esa política como si fuera una ejecución del exchange.

En las órdenes pasivas, un precio válido según el tick es solo la primera condición para que haya una ejecución. También necesitas un modelo que determine si el mercado negoció más allá de tu precio, qué órdenes tenías por delante en la cola, qué cancelaciones hubo y qué nivel de comisiones habrías obtenido.

Añadimos dos comprobaciones. La primera valida cada orden generada con las reglas del instrumento vigentes en ese momento y falla de forma explícita si los precios o tamaños no son válidos. La segunda compara la orden final normalizada del adaptador del backtest y del trading simulado: lado, precio, cantidad, vigencia y tipo de comisión. Si no coinciden, la ejecución no se considera comparable.

Después, volvimos a reproducir el cambio del martes. El backtest dejó de atribuir ejecuciones a 42,318.03 después de la actualización de la cuadrícula. El trading simulado y la simulación tomaron la misma decisión para cada objetivo no válido, incluso cuando decidieron omitir la orden.

La señal no se había roto. Lo que había quedado desactualizado eran sus supuestos sobre el instrumento que podía negociar. Una estrategia puede adaptarse a un nuevo tamaño del tick, pero solo si el sistema de investigación trata las reglas del mercado como parte del mercado que está simulando.

reglas del exchangetamaño del tickredondeo de órdenesbacktestingtrading simulado
← Semua artikel