Evidencia › Órdenes, spread, slippage y comisiones
Órdenes, spread, slippage y comisiones: qué pesa de verdad en futuros
Comparaste brokers por la comisión por vuelta. Dos decimales de diferencia. Y elegiste bien: el barato era el barato. Esa comparación casi nunca decide nada, porque la fricción que te mueve el resultado no es la de la tarifa: es la que tu modelo paga dentro de su propia aritmética. Y eso solo se ve cuando la cobras dentro del motor.
Lo que medimos es esto. Nuestro motor de fondeo cobra $1.22 por vuelta (round turn) y no modela deslizamiento por defecto: es una limitación declarada, no un supuesto oculto, y la lees aquí antes de tener que descubrirla tú. El deslizamiento se mide aparte, como gate propio, metiéndolo dentro del motor y cobrándolo a los dos lados y a los dos brazos. A un tick por lado, el modelo canónico conserva el 97% de su caja, otro brazo entre el 89% y el 95%, y el brazo de control más frágil solo el 83% — y ese 83% le rompe el piso del gate. La fricción no mata a todos por igual. Mata al que ya estaba en el filo.
¿Por qué no publicamos una cifra de fricción sin correr el motor?
Porque tenemos un caso propio donde la aritmética cruda era correcta al decimal y estaba sobre-dimensionada.
El titular era: «este brazo tiene un edge neto de $0.44 por contrato, así que muere con 0.44 ticks de deslizamiento». Correcto como división. Falso como conclusión. Metido el deslizamiento dentro del motor, a los dos lados y a los dos brazos, ese brazo conserva entre el 89% y el 95% de su caja a un tick por lado. El motor no escala con la expectativa por operación: reparte la fricción sobre una secuencia de cuentas, retiros y quemas que una división no ve. La división mira una operación. El motor mira la cuenta entera.
De ahí sale la regla de la casa: ningún titular de fricción se publica desde aritmética cruda. Se corre el motor con deslizamiento y se publica la tabla con y sin él.
Y hay una segunda regla, esta de lectura. Un tick por lado no tumba ninguna de las seis familias de hipótesis que publicamos como cerradas. Sí basta para voltear un titular trimestral que estaba sobre el filo, y que por eso no publicamos: de +10.0 puntos porcentuales a −10 pp, sobre n = 10 trimestres disjuntos. Otro brazo de control del mismo estudio tiene expectativa cruda negativa ya a medio tick por lado — pero eso es una división, no el motor, así que vale como aviso de fragilidad y no como titular. Un tick separa lo publicable de lo que no lo es, pero solo si el margen ya era delgado. Ese es el filo.
El deslizamiento también se cobró más caro. A 2 ticks por contrato y por llenado, el canon conserva el 98% del neto anual: esa misma fricción se come el 24% de la expectativa por operación y solo el 2% del neto de la cuenta. Son dos denominadores distintos del mismo cobro, y esa brecha es justo el punto. En otro montaje, esos 2 ticks dejan el 98% al canon y el 93% a su versión flaca.
La fricción es fija; el mercado no
La comisión y el deslizamiento son un peaje fijo por operación. El rango del mercado no lo es, así que el mismo peaje pesa distinto según la época.
Sobre el contrato grande del Nasdaq, con una fricción fija de 4.44 ticks por operación: eran el 37% del rango de apertura en 2010 y son el 2% hoy. Consecuencia medida sobre el mismo modelo: antes de 2018 era bruto positivo en 6 de 8 años y neto negativo en 1 de 8. No cambió el modelo. Cambió el tamaño del mercado debajo del peaje.
Eso abre una trampa en la que nos cazamos a nosotros mismos, y en la que cae cualquiera que le haya puesto un filtro a un sistema que no terminaba de cuadrar. Un filtro que opera menos gana en neto solo por pagar menos peaje, sin acertar más. El caso medido es nuestro: un modelo que opera dos de cada tres veces que su control ciego, con esa misma fricción fija de 4.44 ticks por operación, resulta que tenía el 84% de su ventaja aparente hecho de peaje y no de acierto. Por eso todo control contra un ciego se reporta en bruto y por operación, no solo en neto agregado. Si tu filtro «mejoró» y no miraste el bruto por operación, quizá no acertó más. Quizá solo compró menos comisiones.
¿La comisión cambia mi break-even?
Sí, y cambia el signo del veredicto más de lo que parece. El break-even se calcula con la misma función de coste que cobra el motor, o divergen. En el ejemplo aritmético con el que lo enseñamos —comisión de $2, objetivo y stop de $100, números de pizarrón y no la configuración de ningún modelo—, el break-even pasa de 50% a 51%, y un margen reportado de +3 puntos es en realidad −2. Y hay un corolario que se enuncia solo: un objetivo menor que la comisión es una pérdida, aunque el gráfico lo pinte verde. El margen sobre el break-even se juzga con lo medido neto, nunca con lo etiquetado.
La forma que caza este cálculo tiene un aspecto muy convincente. Uno de los candidatos que salió de nuestra búsqueda automática de modelos llegó con win rate 77.5%, 359 operaciones al año y expectativa de +$0.70 por operación contra $1.22 de comisión por vuelta. Acierta casi ocho de cada diez veces. Es exactamente el sistema que cualquiera enseñaría en una captura de pantalla, y es una máquina de pagar comisiones que además consume drawdown. Lo descartamos por eso, y no llegó a operarse.
¿Límite o a mercado? Lo que cambia no es el precio, es la forma de fallar
Estos fallos no viven en el precio de la orden. Viven en la cadena que la ejecuta —tu código, la plataforma, el adaptador del broker, el mercado— y ninguno depende de qué mercado operes. Si alguna vez cerraste el día sin entender por qué en vivo no salió como en la prueba, la explicación suele estar en esta lista.
La orden a mercado decidida al cierre de la vela se llena en la apertura de la siguiente. No es un fallo y el backtest lo hace igual: es diseño. Al cierre, la vela ya cerró.
La orden límite tiene un problema anterior al llenado: el precio. Cuando ese precio sale de una multiplicación, casi nunca cae en un escalón de precio válido, y la plataforma no lo corrige sola. El adaptador del broker puede rechazar la orden y el simulador no lo ve: se ejecuta perfecta en el backtest y revienta en vivo. Y el rechazo no se queda en la orden. Por configuración de fábrica de la plataforma que usamos, un rechazo en tiempo real cancela las órdenes de esa estrategia, cierra sus posiciones y la deshabilita entera, dejando solo una alerta y una línea de registro. Eso es plataforma, no mercado.
Dos más del mismo registro, porque los dos cuestan dinero:
- Los llenados se parten. En abril de 2026, una versión de uno de nuestros scripts pasó el simulador histórico con 4 de 4 entradas limpias y falló el primer día real en cuenta simulada: la salida se fragmentó en 7 llenados y el contador sumó uno cada vez, hasta agotar el tope de la jornada. La corrección fue de una línea. Encontrarla costó una distribución.
- Cancelar es asíncrono. Entre pedir la cancelación y que el broker la confirme pasa de menos de un segundo a varios. En esa ventana la orden todavía puede llenarse, y una conexión lenta la ensancha.
Y la trampa que más caro sale: el simulador llena la orden límite al toque del nivel, donde el mercado real exige que el precio lo atraviese. Una palabra de diferencia que sobreestima dos cosas a la vez, la frecuencia de los llenados y su calidad. Un backtest con entradas límite puede estar contando operaciones que en vivo nunca existieron. Se valida corriendo la límite un tick más profunda, o exigiendo resolución de llenado alta. Eso no es mala suerte en vivo. Es una palabra en el simulador.
¿Y el spread? Aquí no tenemos medición
Sin adornos, y sabiendo que este es justo el hueco donde se suele rellenar con un número inventado: AST no tiene medición propia de spreads ni de comisiones de brokers de futuros al minorista. Lo único que medimos en spreads fue un comparativo de brokers de forex, con métricas que ni siquiera son comparables entre sí: uno publica solo mínimos, otro la mediana del día anterior, y ninguno mide en la apertura de Nueva York. No sirve para futuros y no lo vamos a estirar. Del mensual sí sabemos que no se apaga: los datos se pagan aunque la cuenta esté quemada.
Cómo medimos esto
- Eje y arnés. Motor propio de cuenta de fondeo, con comisión de $1.22 por vuelta cobrada dentro del motor. El deslizamiento no está modelado por defecto: se cobra como gate aparte, a los dos lados y a los dos brazos, y se publica la tabla con y sin él.
- Ventanas y denominadores. Las cifras de fricción salen de montajes distintos —micro del Nasdaq 2019-2026 y contrato grande 2010-2026 según el estudio— y no son comparables entre sí. El 24% es de la expectativa por operación; el 2%, del neto de la cuenta. El 83%, el 93%, el 97% y el 98% son porcentajes de conservación dentro de su propio montaje, no niveles de resultado, y la «caja» es la métrica de dinero de ese montaje, no una ganancia neta.
- Paridad declarada. Nuestro motor va 17.5% por encima del backtest de la plataforma de ejecución sobre el mismo rango, medido en dinero por operación, y la regla interna es descontar ese 17.5% de toda cifra de dinero que salga del motor. Parte del hueco es una convención de llenado, y ahí el mercado real se parece más al motor.
- Los casos de órdenes salen de un registro operativo propio: 29 trampas de plataforma y 8 patrones de bug de estrategia al 20-ago-2026, de 10 sesiones de desarrollo. Es un piso que crece, no un total, ni una muestra estadística.
- Qué queda abierto. Spreads y comisiones de brokers de futuros al minorista: sin medir. Plataformas alternativas: sin medir, así que no las rankeamos.
Lo que esto NO dice
- No dice cuánto vas a pagar tú de comisión o de spread. El $1.22 es lo que cobra nuestro motor en sus simulaciones, no una tarifa de mercado ni la cotización de ningún broker.
- No dice que la fricción sea irrelevante en fondeo. Esa afirmación circula y no es una medición. Nuestro motor sí cobra $1.22 por vuelta, y el brazo de control más frágil pierde el 17% de su caja a un tick por lado.
- No dice que un tick por lado sea inofensivo. Dice que no tumba las seis familias que publicamos como cerradas, y que sí voltea un titular que estaba sobre el filo, de +10.0 pp a −10 pp con n = 10.
- No dice que el 83%, el 93% o el 97% sean transferibles. Cada uno es de su brazo, su montaje y su ventana. Cruzarlos es fabricar una cifra que nadie midió.
- No dice que estos fallos de órdenes tengan una tasa. Las 4 de 4 entradas limpias y los 7 llenados son un incidente individual fechado, no una frecuencia de fallo.
- No dice cómo está configurado ningún modelo. Publicamos qué medimos y qué salió, no distancias, umbrales ni horarios de disparo.
En una frase
La fricción se mide metiéndola en el motor, no discutiéndola aparte. Nuestro motor cobra $1.22 por vuelta y no modela deslizamiento por defecto. Cobrado a un tick por lado y a los dos lados, el canon conserva el 97% de su caja y el brazo de control más frágil el 83%, que le rompe el piso del gate.
Todo esto está en la biblioteca
Los modelos, las métricas y los estudios completos, en un solo sitio.
Entrar a la biblioteca AST →