5 de septiembre de 2026 · riesgo

Tu backtest nunca fue liquidado: margen, mark price y el nivel de apalancamiento que omitiste

Tu backtest nunca fue liquidado: margen, mark price y el nivel de apalancamiento que omitiste

El mes pasado salió una curva de capital de una estrategia generada con una caída del 63%. Profunda, fea y luego una recuperación limpia durante las 6 semanas siguientes: el tipo de forma que un investigador mira con atención y decide que es soportable si reduce el tamaño de las posiciones. Volví a ejecutarla con un motor de margen que conoce los tramos del margen de mantenimiento. La cuenta fue liquidada el día 41, en plena caída, y todo lo que aparece después del día 41 era ficción.

Esta es la clase de error de backtesting más costosa que conozco, porque no distorsiona tus retornos unos pocos puntos básicos. Elimina un estado absorbente de la simulación. Una estrategia que puede llegar a cero y otra que no puede hacerlo son estrategias distintas, y un backtest que nunca comprueba el margen no puede decirte cuál tienes.

Sigo viendo que se hace mal de 3 maneras.

Forma incorrecta 1: el apalancamiento como número por el que multiplicas los retornos

El patrón más común. Calculas una serie de retornos a partir de tus señales, decides operar con un apalancamiento de 10x y multiplicas. A veces es algo más sofisticado —el tamaño de la posición es equity * leverage / price—, pero el estado de la cuenta sigue siendo solo un escalar que sube y baja. Sin saldo de margen, sin límite de valor nominal, sin condición de quiebra.

El daño es sutil, por eso pasa las revisiones. Sharpe no depende de la escala, así que tu cifra principal no cambia al pasar de 3x a 30x, y el investigador concluye que el apalancamiento es un dial gratuito para intercambiar volatilidad por retorno. La caída máxima escala de forma lineal y se mantiene por debajo del 100% por un accidente aritmético, porque una serie de retornos multiplicados se acerca a cero de forma asintótica y nunca lo cruza. Multiplica un día de -9% por 12 y obtienes un -108% en la versión fiel, y un «-108%, pero la curva de capital sigue en positivo» en la ingenua, según si capitalizaste o sumaste. He visto ambas.

Lo que falta es entender que el apalancamiento no se aplica a tus retornos. Se aplica a tu colateral, y el colateral es una cantidad finita que la plataforma vigila cada segundo. En cuanto cae por debajo del requisito de mantenimiento, la posición deja de ser tuya.

La señal de alerta: si tu simulación no puede producir una pérdida total con ningún nivel de apalancamiento, no está modelando el apalancamiento.

Forma incorrecta 2: un precio de liquidación calculado solo a partir del apalancamiento

El siguiente nivel de sofisticación añade una comprobación de liquidación, normalmente así: con 20x, un movimiento adverso del 5% borra el margen, así que liquida al precio de entrada × 0.95 si es una posición larga. Claro, intuitivo y equivocado en 4 aspectos distintos a la vez.

Las plataformas de perps no usan el nivel de apalancamiento que elegiste para decidir cuándo se acabó. Usan una tasa de margen de mantenimiento que aumenta según el valor nominal de la posición, en función de una tabla de tramos. Esta es una aproximación de la estructura de BTCUSDT USDⓈ-M, que cambia cuando las plataformas la revisan:

Valor nominal de la posición (USDT)Tasa de margen de mantenimientoApalancamiento máximo
0 – 50,0000.40%125x
50,000 – 600,0000.50%100x
600,000 – 3,000,0001.00%50x
3,000,000 – 12,000,0002.50%20x
12,000,000 – 70,000,0005.00%10x

Así que el movimiento adverso que puedes soportar en una posición larga aislada es aproximadamente 1/L − MMR, no 1/L. Con 20x en el segundo tramo, es 5% − 0.5% = 4.5%. Medio punto porcentual parece un redondeo. En BTC a 84,000 son 420 dólares de movimiento en el precio, y en una hora violenta, esos 420 dólares marcan la diferencia entre una mecha que te liquidó y otra que no. Cada mecha es un lanzamiento de moneda y has inclinado todas las probabilidades a tu favor.

Luego están las comisiones. La comisión taker de entrada se descuenta del margen en cuanto se ejecuta la orden: 0.045% sobre un valor nominal de 500,000 son 225 USDT contra un saldo de margen de 25,000, lo que mueve el precio de liquidación antes de que la posición haya hecho nada. El funding produce el mismo efecto, de forma continua, y sobre un valor nominal apalancado es mucho mayor de lo que esperan los investigadores:

4.55%movimiento adverso real hasta la liquidación con 20x, incluida la comisión de entrada
0.60%coste diario del funding sobre el margen con 20x, a 0.01%/8h
18%de ese margen perdido en un mes sin cambios

Una posición que no hace nada durante 30 días —sin movimientos adversos ni operaciones— ha consumido casi una quinta parte de su colateral y ha acercado de forma significativa el precio de liquidación. La tercera y la cuarta forma de equivocarse: los tramos cambian al aumentar la posición, así que una posición que empieza en el tramo del 0.5% y se amplía comprando más hasta entrar en el tramo del 1.0% termina con un precio de liquidación peor que el calculado al abrirla; además, el margen cruzado reúne el colateral de varias posiciones, así que la supervivencia de tu posición larga en BTC depende de lo que esté haciendo tu posición corta en ETH. Si simulas el margen cruzado como un conjunto de posiciones aisladas e independientes, estás modelando al revés la estructura de correlaciones de tu propia cuenta.

Forma incorrecta 3: resolver la liquidación con el precio equivocado, en el momento equivocado y a un precio de ejecución equivocado

Supongamos que acertaste el nivel de activación. Ahora: ¿qué precio lo cruza, cuándo lo compruebas y a qué precio se ejecuta la orden?

La liquidación se activa con el mark price, un índice de varias plataformas spot con un componente de base suavizado, diseñado deliberadamente para resistir las mechas de una sola plataforma. Tu stop-loss, según cómo lo hayas configurado, probablemente se activa con el último precio negociado. Estas 2 cifras discrepan justo cuando más importa. Durante una cascada, el último precio del perp puede desviarse entre un 1% y un 2% por debajo del mark price durante decenas de segundos. Un backtest que calcula tanto el stop como la liquidación a partir del mismo mínimo OHLCV está modelando una plataforma que no existe.

Aquí se dan ambos errores y no se cancelan. Si usas el último precio, liquidas posiciones por mechas que la plataforma ignoró. Si usas el mark price, pasas por alto los casos en que se movió el propio mark: una dislocación del índice en una plataforma spot es una forma real de que te liquiden a un precio que nunca llegó a registrarse en el perp con el que operabas.

Luego está el precio de ejecución. Los motores ingenuos cierran la posición al precio de liquidación y contabilizan la pérdida como si fuera un stop. Lo que ocurre en realidad: el motor de liquidación se hace cargo de la posición al precio de bancarrota, el nivel en que tu margen es exactamente cero, peor que el nivel de activación, y además cobra una comisión de liquidación, que depende del tramo y ronda el 1% del valor nominal en los tramos inferiores. Con 20x, el 1% del valor nominal equivale al 20% del margen restante. Si el motor ejecuta la orden por debajo del precio de bancarrota, el fondo de seguro cubre la diferencia; en algunas plataformas, si el fondo se agota, las pérdidas socializadas afectan también a la parte rentable del libro de órdenes. Tu pérdida realizada no es la caída hasta el precio de liquidación. Es mayor, y el exceso es máximo justo en los días en que el libro tenía poca liquidez y el impacto podía ser peor.

La cuestión del momento de ejecución que surge con la mecánica intrabar se aplica aquí con más gravedad de lo habitual. Si una vela de 1 minuto contiene tanto tu take-profit como tu nivel de liquidación, un backtest que comprueba las salidas antes que el margen contabilizará alegremente la ganancia. La plataforma comprueba el margen con cada actualización del mark price, aproximadamente una vez por segundo, antes de cualquier otra cosa que quisieras que ocurriera.

Qué debe registrar el motor

Nada de esto requiere complejidad exótica. Requiere mantener el estado. La cuenta es un objeto con un saldo, no una serie de retornos, y en cada vela se actualiza en el orden en que lo haría la plataforma:

  1. El saldo de la cartera y el PnL no realizado, por separado. El ratio de margen es el margen de mantenimiento dividido por el saldo de margen, que incluye el PnL no realizado. Confundirlos hace que una posición perdedora parezca tener más colateral del que tiene.
  2. La tabla de tramos de cada símbolo, con versiones por fecha. Los tramos se revisan. Un backtest de 2023 ejecutado con los tramos de 2026 incurre en un sesgo de anticipación sutil, normalmente favorable, ya que las plataformas suelen haber relajado los requisitos de los principales activos con el tiempo.
  3. Una serie de mark price, no solo klines. Si no puedes conseguir un histórico del mark price, indícalo en los resultados y usa una aproximación conservadora. No sustituyas el último precio sin avisar.
  4. La comprobación del margen debe ser lo primero en el orden de eventos de la vela, antes que los stops, los objetivos, las señales o el rebalanceo.
  5. Ejecuciones al precio de bancarrota más la comisión de liquidación, con la tasa de la comisión tomada de la misma fila del tramo que la tasa de margen de mantenimiento.
  6. Un estado terminal absorbente. Cuando el capital llega a cero, la ejecución termina. Sin reiniciar la base, sin «suponer que el operador añade fondos», sin continuar la serie con un nuevo valor nominal.

Ese último punto siempre genera discusiones. Alguien señala que una mesa real depositaría más colateral, así que terminar la simulación es exageradamente severo. Puede ser. Pero «esta estrategia funciona si sigues inyectándole dinero después de que reviente» es una afirmación que merece expresarse con esas palabras y ponerse a prueba deliberadamente, con las inyecciones de fondos como dato de entrada explícito, en vez de introducirlas a escondidas como comportamiento predeterminado. Cuando lo escribes con honestidad, la mayoría descubre que no era eso lo que quería decir.

La utilidad práctica de todo esto: cuando ejecutas la misma estrategia en paper trading contra la plataforma real, el ratio de margen que informa la plataforma y el que calcula tu simulador deberían seguirse con una diferencia de 1 o 2 puntos básicos durante todo el día. Puedes comprobar esa coincidencia cada minuto, en cada posición abierta, gratis. Es la prueba de paridad más barata de todo el sistema y casi nadie la hace; cuando las 2 cifras divergen, la plataforma tiene razón y tienes un error que vale la pena encontrar antes de que la caída lo haga por ti.

futuros perpetuosapalancamientoliquidaciónmotor de margenbacktesting
← Todos los artículos