Una serie de futuros continuos enlaza contratos sucesivos a medida que vencen para formar un único historial. Puedes usar ese historial para investigar señales, pero calcular directamente el P&L de trading a partir de sus variaciones de precio puede inventar ganancias y pérdidas en cada rollover. La serie no indica qué contrato tenías.
Veamos un ejemplo especialmente implacable: el crudo WTI de NYMEX el 20 de abril de 2020. El contrato de mayo liquidó a −$37.63 por barril. El de junio liquidó a $20.43. Ambos precios eran reales. La diferencia de $58.06 también lo era. Pero cambiar el gráfico de mayo a junio no hizo que una posición larga ganara esa diferencia.
Desmontemos ese empalme. Estos son precios históricos de liquidación; los ejemplos hipotéticos de contabilidad que siguen los usan para mostrar las cuentas, no para afirmar que una orden se habría ejecutado a esos precios.
CLK20 y CLM20: los identificadores que el gráfico omitió
| Campo | Contrato de mayo | Contrato de junio |
|---|---|---|
| Identificador del contrato | CLK20 | CLM20 |
| Mes de entrega | Mayo de 2020 | Junio de 2020 |
| Liquidación del 20 de abril, dólares por barril | −37.63 | 20.43 |
| Tamaño del contrato | 1,000 barriles | 1,000 barriles |
El código del mes importa más que el prefijo del ticker. K significa mayo; M, junio. Estos contratos tenían distintas obligaciones de entrega y distintos precios. Mayo se acercaba al vencimiento en medio de una presión extraordinaria sobre el almacenamiento. Junio daba un mes más de margen.
El símbolo continuo de un proveedor oculta esta diferencia tras una etiqueta muy compacta. Me gustan las etiquetas compactas, hasta que son el único identificador que queda en el registro de operaciones. Entonces depurar se parece a hacer arqueología, con peor café.
Tampoco existe un único historial continuo universal. Un proveedor puede hacer el rollover un número fijo de días hábiles antes del vencimiento, cuando cambia el volumen relativo o según otro calendario. Muchos historiales ya habían salido de mayo antes del 20 de abril. Nuestro ejemplo empalma deliberadamente estas dos liquidaciones para hacer visible el fallo; no describe el rollover de ningún proveedor en particular.
1,000 barriles: el multiplicador que acompaña a cada precio
El contrato estándar de futuros de WTI de NYMEX representa 1,000 barriles. Por tanto, un movimiento de $1 cambia en $1,000 el valor de una posición larga de un contrato. Un tick de $0.01 equivale a $10.
Para una posición sin cambios en un contrato, el cálculo básico es:
gross_pnl = contracts × 1,000 × (ending_price − starting_price)
Esto sigue siendo válido con precios por debajo de cero. Las rentabilidades porcentuales sobre el precio cotizado del futuro sirven mucho menos: al cruzar el cero pueden quedar indefinidas o invertir su significado aparente. La rentabilidad de la estrategia debe calcularse a partir del patrimonio de la cuenta y del criterio aplicado a los flujos de caja. El precio cotizado por barril no es el capital comprometido en la estrategia.
$58.06: la discontinuidad en el empalme
Supongamos que un motor ingenuo ve la liquidación de mayo seguida por la de junio y aplica esa fórmula como si el instrumento no hubiera cambiado:
invented_pnl = 1 × 1,000 × (20.43 − (−37.63))
= $58,060
Esta comparación no refleja ningún movimiento a lo largo del tiempo. Son los precios de dos contratos en la misma sesión. El motor confunde una diferencia entre contratos con una ganancia durante el período de tenencia.
En un empalme diario real, el precio de ayer del contrato antiguo y el de hoy del nuevo también incluyen el movimiento normal del mercado. Así cuesta más detectar el error. El cambio registrado mezcla el movimiento del contrato antiguo con la diferencia entre contratos en el momento del cambio.
Y restar $58,060 como supuesto “coste de rollover” tampoco arregla el modelo. Los futuros no se compran pagando todo su nominal cotizado. Cerrar un contrato y abrir otro genera cambios de posición, P&L realizado o liquidado, comisiones, efectos de ejecución y requisitos de margen. La diferencia entre sus niveles de precio no es automáticamente un cargo en efectivo.
+58.06: el ajuste retroactivo aplicado al historial
Una forma habitual de construir una serie continua consiste en sumar la diferencia del rollover a los precios anteriores. Con ese criterio, el −37.63 de mayo pasa a ser 20.43 y se une con junio sin salto. Las observaciones anteriores de ese mismo tramo histórico también suben 58.06.
| Construcción | Qué ocurre en este empalme | Consecuencia para la investigación |
|---|---|---|
| Sin ajustar | Se mantiene la diferencia de $58.06 | Los indicadores pueden interpretar el cambio de contrato como un movimiento del mercado |
| Ajuste retroactivo aditivo | Sumar 58.06 al tramo anterior | Se conservan las variaciones en dólares dentro del tramo; cambian los niveles históricos y las variaciones porcentuales |
| Ajuste retroactivo por ratio | Multiplicar el tramo anterior por 20.43 / −37.63, aproximadamente −0.543 | El factor negativo invierte el signo de las variaciones de precio dentro del tramo |
Esa última fila explica por qué no acepto «ajustado por ratio» como especificación completa de los datos. Un método que funciona bien con precios estrictamente positivos necesita una política explícita para los precios cercanos a cero y negativos.
El ajuste aditivo también tiene consecuencias. Una señal que compra por debajo de un umbral absoluto de $30 puede cambiar cuando los rollovers posteriores reescriben niveles anteriores. Una señal de media móvil rápida menos lenta puede ser invariante a un desplazamiento aditivo común, siempre que ambas ventanas reciban el mismo desplazamiento. Hay que examinar por separado las ventanas que cruzan un límite de ajuste.
Guarda el método de ajuste, el calendario de rollover y la versión de los datos junto con el resultado de la investigación. Para señales sensibles a los niveles ajustados, reconstruye el historial disponible en cada fecha de decisión. Una descarga actual puede incluir ajustes de rollovers que aún no habían ocurrido.
Las dos filas de órdenes que faltan en el gráfico continuo
Este es un registro deliberadamente simplificado. Supongamos que se valoró un contrato largo de mayo a −30.00 antes del rollover. Supongamos que la salida de mayo y la entrada en junio se producen a las liquidaciones históricas anteriores, y que después junio se valora a 21.00. Esos precios de ejecución supuestos son una ilustración contable.
| Movimiento del registro | Cálculo | P&L bruto |
|---|---|---|
| Cerrar una posición larga de mayo a −37.63 | 1,000 × (−37.63 − (−30.00)) | −$7,630 |
| Abrir una posición larga de junio a 20.43 | Sin movimiento de precio al entrar | $0 |
| Valorar junio a 21.00 | 1,000 × (21.00 − 20.43) | +$570 |
| Total | Antes de costes de ejecución y comisiones | −$7,060 |
La diferencia de $58.06 no aparece en ningún sitio como ingreso o gasto independiente. El margen de variación diario determina cuándo el P&L de futuros llega al efectivo; no crea una segunda copia de ese P&L.
Un rollover real puede ejecutarse mediante una orden de spread de calendario, en lugar de dos órdenes independientes. El simulador debe representar el mecanismo que presupone, incluidas las ejecuciones y los cargos, y conservar las posiciones de cada contrato subyacentes.
Mi comprobación de aceptación es sencilla: cada dólar de P&L de trading de futuros debe cuadrar con un contrato identificado, una cantidad, un multiplicador y dos precios de ese mismo contrato. También quiero la marca temporal de la decisión de rollover y los datos que la determinaron. Una regla basada en el volumen de la sesión de hoy, una vez completada, no puede operar discretamente antes en esa misma sesión.
Traza la línea continua como referencia. Debajo, muestra los contratos que realmente se mantuvieron y señala cada transición. Si la curva de patrimonio salta en una transición, esas dos filas de órdenes son lo primero que reviso.
← Todos los artículos


