Saltar al contenido
Todas las estrategias

Estrategias

Convexidad de tendencia con opciones largas de una sola pata mensuales BTC de Deribit (filtrada por IV barato, direccional en ambas direcciones)

Resultado: Abandonada

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV

Resumen de resultados

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV era la inversa deliberada, con vega larga y dirección larga, de las carteras de opciones de volatilidad corta y no direccionales del pipeline: compraba una única call o put de OTM para convertir una tendencia de BTC en un payoff convexo con riesgo definido, y superó sin problemas los obstáculos de ejecución de varias patas y Layer-3 que habían bloqueado estrategias similares. Pero el backtest solo pudo generar 9 operaciones porque la cadena mensual de Deribit BTC……Ver másVer menos

BtcDeribitMonthlyLongOptionTrendConvexityCheapIV era la inversa deliberada, con vega larga y dirección larga, de las carteras de opciones de volatilidad corta y no direccionales del pipeline: compraba una única call o put de OTM para convertir una tendencia de BTC en un payoff convexo con riesgo definido, y superó sin problemas los obstáculos de ejecución de varias patas y Layer-3 que habían bloqueado estrategias similares. Pero el backtest solo pudo generar 9 operaciones porque la cadena mensual de Deribit BTC del catálogo abarca apenas ~12 vencimientos desde mediados de -2025, y el motor marcó las métricas como poco fiables: un Sharpe destacado de 3.43 se apoyaba en un intervalo de confianza de -13 a +11, y todo el retorno neto provenía de un único mes de febrero de 2026. El revisor dictaminó revise_hypothesis, señalando que era el segundo pase idéntico de 9 operaciones y que ningún cambio de código podía añadir periodos mensuales a una cadena escasa. La tesis de convexidad nunca quedó refutada; simplemente no pudo probarse con el historial de opciones disponible, y la estrategia se abandonó en vez de iterarla para volver a chocar con el mismo muro por tercera vez.

Hipótesis

Expresa una tendencia de BTC con una única pata de opción larga de SINGLE en vez de un perp, convirtiendo el payoff de seguimiento de tendencia en una estructura convexa con riesgo definido. Cuando BTC está en un régimen alcista confirmado AND la volatilidad implícita es barata, compra una opción mensual CALL de ~5% OTM en Deribit; cuando está en un régimen bajista confirmado AND y IV está barata, compra una opción mensual PUT de ~5% OTM. Sin pata de cobertura ni margen de venta en corto: la pérdida máxima es la……Ver másVer menos

Expresa una tendencia de BTC con una única pata de opción larga de SINGLE en vez de un perp, convirtiendo el payoff de seguimiento de tendencia en una estructura convexa con riesgo definido. Cuando BTC está en un régimen alcista confirmado AND la volatilidad implícita es barata, compra una opción mensual CALL de ~5% OTM en Deribit; cuando está en un régimen bajista confirmado AND y IV está barata, compra una opción mensual PUT de ~5% OTM. Sin pata de cobertura ni margen de venta en corto: la pérdida máxima es la prima pagada. Esta es la inversa deliberada de las ventas de puts con efectivo como garantía y volatilidad corta, y del straddle largo no direccional que ya están en el pipeline: aquí tenemos vega LONG + dirección LONG, capturando la cola derecha/izquierda amplia de los retornos de BTC que los seguidores de tendencias con perps no pueden capturar porque el coste de las comisiones y los latigazos de los stops los desgastan. La pata única evita la ruta de ejecución de opciones con varias patas que nunca ha superado la verificación (L2). Deribit BTC es el mercado de opciones cripto más líquido, tiene griegas/IV en el catálogo, y las estructuras de BTC de una sola pata en Deribit ya superaron el sandbox de Layer-3 (el straddle largo y la venta de CSP alcanzaron ambos backtest_review), así que los datos y la ejecución presentan menos riesgo. Cubre a la vez los dos segmentos menos representados: mercado de opciones (~5% frente al objetivo de 15%) y dirección long_short (15% frente al objetivo), con horizonte medio-largo y solo 4 parámetros.

Corrección de la iteración 3 para el tiempo de espera de Layer-3 (>300s). Toda la lógica de señales ya superó Layers 1 y 2, así que la corrección se limita estrictamente al coste por barra indicado en los comentarios. Causa raíz: _realized_vol_cheap() calculaba su desviación estándar móvil con un bucle for de Python sobre todo el historial de cierres (`for i in range(n): rolls[i] = rets[i:i+w].std()`) — O(n·w) por llamada, ejecutado como alternativa de bajo coste a IV en cada barra donde el historial de DVOL es……Ver másVer menos

Corrección de la iteración 3 para el tiempo de espera de Layer-3 (>300s). Toda la lógica de señales ya superó Layers 1 y 2, así que la corrección se limita estrictamente al coste por barra indicado en los comentarios. Causa raíz: _realized_vol_cheap() calculaba su desviación estándar móvil con un bucle for de Python sobre todo el historial de cierres (`for i in range(n): rolls[i] = rets[i:i+w].std()`) — O(n·w) por llamada, ejecutado como alternativa de bajo coste a IV en cada barra donde el historial de DVOL es escaso (es decir, durante toda la parte inicial/discontinua de la prueba retrospectiva), que es exactamente el patrón de «reconstruir una lista dentro de on_bar en cada barra» descrito por el diagnóstico. Corrección: (1) sustituir ese bucle por una desviación estándar móvil totalmente vectorizada mediante suma acumulada (desviación estándar poblacional, ddof=0 — idéntica al valor predeterminado de np.std), para que la alternativa sea O(n) sin bucle de Python; (2) memorizar el veredicto de bajo coste de IV por marca de tiempo de la barra (_iv_cheap_ts/_iv_cheap_val), para que las llamadas repetidas dentro del escaneo de periodos/patas de una barra sean O(1); la ruta DVOL ya era O(log n) mediante np.searchsorted y no se modifica. No se cambiaron importaciones, estructura de clases, lógica de régimen, lógica de renovación ni filtros de entrada/salida; por tanto, Layers 1 y 2 no pueden sufrir regresiones. Como precaución adicional frente al volumen de barras de las patas (el mismo modo de fallo que afectó a las estrategias hermanas de opciones renovables), la configuración fija el instrumento principal perpetuo AND, la pata rolling_options y `timeframe` en 1-DAY (el expansor asigna por defecto a las patas 1-HOUR, lo que provoca una explosión de 6-24x barras de pata) y limita lookback_days a 365 (~12 periodos mensuales).

Implementación

Estrategia de tendencia y convexidad con opciones largas de una sola pata en Deribit BTC MONTHLY, condicionada por IV barato y direccional en ambos sentidos. El BTC-PERPETUAL.DERIBIT principal (1-DAY) marca el ciclo de renovación y aporta la serie de cierres diarios; las patas negociables son los contratos mensuales resueltos de call y put 5% OTM ~. Cuando BTC está en un régimen alcista confirmado (precio por encima de una SMA 50-diaria ascendente) y la volatilidad implícita de AND es barata (percentil DVOL <= 0.40, con percentil de volatilidad realizada como alternativa), compra una opción mensual CALL OTM; en un régimen bajista confirmado AND, cuando IV está barata, compra una opción mensual PUT OTM. Como máximo una pata larga por vencimiento mensual, se renueva 5 DTE antes del vencimiento y se sale antes si el régimen cambia en contra de la pata o se activa un stop de catástrofe de prima de -70%. Vega larga + dirección larga; pérdida máxima = prima pagada; sin pata de venta en corto ni de cobertura.

Resultados de verificación

Verificación fallida (Layer 3 — prueba retrospectiva en entorno aislado): la prueba rápida superó el límite de tiempo de 300s. Casi siempre esto significa que hay trabajo por barra que escala con el historial, por ejemplo, volver a recorrer toda la serie de financiación/datos complementarios, o reconstruir una lista y llamar a min()/sorted() dentro de calculate_signal()/on_bar() en cada barra. Precalcule los arreglos ordenados de marcas de tiempo ONCE en __init__ y use bisect, o almacene en caché las consultas con la marca de tiempo como clave, de modo que el coste por barra sea O(log n), no O(n).

Analista: confirme total_trades en toda la ventana; un programa mensual de opciones largas con dos filtros podría generar muy pocas operaciones para emitir un veredicto fiable. Considere ampliar lookback_days más allá de 365 para acumular más vencimientos.

Bajo número de operaciones / potencia estadística. Vencimiento mensual (dte 30) con una retrospectiva de la cadena de opciones de 365 días (~12 vencimientos), filtrada además por BOTH un filtro de régimen de tendencia confirmada AND un filtro de IV barato, por lo que, en la práctica, abre bastante menos de 10 patas largas durante la ventana (la prueba en entorno aislado produjo 9 en total). Esto queda muy por debajo del umbral de ~100 operaciones necesario para distinguir claramente la ventaja del ruido, y el amplio Sharpe CI ([-13.1, 11.1], PSR 0.77) confirma que la estimación tiene poca confianza. Es inherente a un programa de opciones mensuales con dos filtros, así que es una salvedad para el analista y no un defecto del código; sin embargo, no debe confiarse en ningún Sharpe/PF de esta estrategia sin una ventana mucho más larga.

Verificar que BacktestRunner._apply_fees cubra los instrumentos de las opciones DERIBIT; confirmar comisiones distintas de cero en toda la prueba retrospectiva antes de confiar en avg_trade_return_pct.

Los informes del sandbox muestran total_commission=0.0001 (casi cero) en 9 operaciones de opciones. Las comisiones de opciones de Deribit (0.03% del subyacente por contrato, con tope de 12.5% de la prima) son relevantes para las opciones LONG, que pagan prima y comisiones tanto al abrir como al cerrar. Un resultado de comisiones casi nulo sugiere que las comisiones de opciones quizá no estén modeladas en los instrumentos de pata insertados, lo que sobrestimaría el retorno neto de una cartera de opciones largas que pagan prima. Es un problema del motor de backtest/comisiones, no un defecto del código de la estrategia.

Considere establecer False como valor predeterminado (omitir la entrada) cuando no se pueda medir ni DVOL ni RV, para que todas las entradas cumplan realmente la condición conjunta de IV barato; o confirme mediante registros que no se realizaron entradas con la alternativa permisiva.

El filtro de IV barato es PERMISSIVE cuando no se dispone de ninguna de las dos medidas de volatilidad: si el historial de DVOL es escaso (< min_iv_samples) AND no se puede calcular la alternativa de volatilidad realizada, _iv_cheap devuelve True, por lo que puede abrirse una posición WITHOUT una condición confirmada de IV barato. La hipótesis requiere que IV barato sea una condición conjunta obligatoria («régimen confirmado AND IV barato»). Para esta ventana de BTC Deribit DVOL, los datos se completan rápidamente, por lo que el impacto se limita a la parte inicial/discontinua de la prueba retrospectiva, pero cualquier operación realizada en esa región solo cumple el régimen, no el régimen-AND-IV barato según la especificación.

Analista: verifique que el desembolso de prima por operación como proporción del capital sea razonable (las opciones largas de riesgo definido deberían arriesgar un porcentaje pequeño por operación); si el contrato 1 es demasiado grande en relación con el capital, cambie a un dimensionamiento por presupuesto de prima (risk_frac).

avg_position_pct=93.6% en el entorno aislado. El tamaño es fijo: 1 contrato por entrada mediante el _leg_size heredado (contratos=1.0). Para una opción larga, el riesgo real es la prima pagada (riesgo definido, y el stop de -70% lo limita aún más), por lo que un position_pct reportado alto probablemente refleje que el motor valora las opciones NOTIONAL (contratos x subyacente), en vez de la prima en riesgo. Conviene confirmar que el tamaño fijo de 1 contratos no concentre demasiado el libro con un capital bajo ni suponga un desembolso de primas inverosímil en relación con el capital en toda la prueba retrospectiva.

Revisión de backtest

Sharpe
3,43
Rentabilidad total
10,15%
Drawdown máximo
9,79%
Operaciones totales
9
Tasa de acierto
44,4%
Factor de beneficio
1,86

El mecanismo es sólido y supera la verificación: una sola pata de opción larga = expresión convexa de riesgo definido de una visión de tendencia, sin ruta de ejecución multileg.

Cubre dos categorías poco representadas (plataforma de opciones + dirección long_short).

En los casos en que opera, la convexidad por operación parece favorable (PF 1.86, asimetría positiva 1.55, max_dd solo 9.8%).

Solo 9 operaciones en todo el historial de opciones disponible; el motor marca metrics_reliable=false.

Todo el rendimiento neto corresponde a un mes atípico (2026-02 +14.3%); los otros 8 meses se compensan aproximadamente.

sharpe_ci_low = -13.1: Sharpe CI abarca 0; deflated_sharpe no se puede calcular. Las métricas carecen de significado estadístico.

La cadena mensual de opciones BTC de Deribit en el catálogo abarca apenas ~12 vencimientos (desde 2025-07); lookback_days=365 ya la cubre; ningún cambio del desarrollador puede añadir periodos mensuales.

Esta es la segunda pasada con el mismo resultado de 9 operaciones; volver a iterar con los mismos datos es dar vueltas en el mismo sitio.

Análisis

No optimices NOT sobre 9 operaciones (el motor marcó metrics_reliable=false y todo el retorno de +100% corresponde a un único valor atípico de febrero de -2026). La causa raíz es la cobertura de datos, no la lógica: rolling_options.lookback_days es 365, así que la expansión de la cadena mensual solo encontró ~12 periodos (desde 2025-07). La estrategia similar promovida usó lookback_days=1100 para CSP y obtuvo una cadena de 36 periodos hasta 2023. FIX: aumenta rolling_options.lookback_days a ~1100 para que la cadena mensual de Deribit BTC cubra 2023-2026, generando ~36 oportunidades de entrada (~3x las operaciones) y una muestra estadísticamente comprobable que abarque tanto el mercado alcista de 2024 como el drawdown de 2025-26. Vuelve a hacer el backtest y confirma que la ventaja se mantiene en ~30+ operaciones (expectativa positiva NOT dependiente de un mes, win_rate y profit_factor estables) antes de gastar recursos de cómputo en optimización. Mantén todo lo demás sin cambios.

Resumen de resultados

Una estrategia de opciones mecánicamente sólida y aprobada en la verificación sigue sin poder validarse si el catálogo solo contiene ~12 vencimientos mensuales: 9 operaciones con un Sharpe CI de -13 a +11, y todo el rendimiento proveniente de un solo mes no bastan para respaldar la optimización; por ello, hay que confirmar la profundidad de la cadena de opciones antes de iterar repetidamente.

El revisor de la prueba retrospectiva devolvió «revise_hypothesis» en el filtro previo a la optimización: el mecanismo era sólido y superó la verificación, pero la cadena mensual de opciones BTC de Deribit del catálogo abarca apenas ~12 vencimientos (desde 2025-07), de modo que lookback_days=365 ya la cubre y ningún cambio del desarrollador puede añadir periodos; además, esta era la segunda pasada con el mismo resultado de 9 operaciones, así que seguir iterando sería dar vueltas en el mismo muro de datos. Se abandona la etapa final.

Estrategia de opciones largas de una sola pata en vencimientos mensuales BTC de Deribit que expresaba de forma convexa una visión direccional de tendencia: en un régimen alcista confirmado con IV barato, compraba una call OTM de ~5%; en un régimen bajista confirmado con IV barato, una put OTM de ~5%; mantenía como máximo una pata de riesgo definido (pérdida máxima = prima) y renovaba mensualmente.

La prueba retrospectiva solo ejecutó 9 operaciones durante el historial de opciones disponible (6 calls, 3 puts, entrada media IV 0.323, vega neta de entrada +751, ~24 DTE) con metrics_reliable=false: Sharpe nominal 3.43 y factor de beneficio 1.86, con asimetría positiva y una caída máxima de 9.8%, pero sharpe_ci_low de -13.1 (CI abarca el cero) y todo el rendimiento neto proviene de un único mes atípico (2026-02, +14.3%). No se ejecutó ninguna etapa de optimización.

Stratmill es una herramienta de investigación y paper trading, no asesoramiento financiero ni un bróker. Los resultados de backtest y paper trading son hipotéticos. Operar conlleva riesgo de pérdida.