Saltar al contenido
Todas las estrategias

Estrategias

Anomalía diaria transversal de baja volatilidad: posiciones largas en los -2 activos con menor volatilidad y cortas en los -2 de mayor volatilidad, entre 6 perpetuos de Binance principales; trading algorítmico

Resultado: Abandonada

BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily

Resumen de resultados

Esta fue la tercera estrategia de una serie transversal: aplicaba la anomalía de baja volatilidad / Betting-Against-Beta con una cartera neutral al dólar, larga en los -2 de menor volatilidad y corta en los -2 de mayor volatilidad, sobre 6 activos principales de Binance. Se buscaba que no estuviera correlacionada con las estrategias anteriores, clasificadas por rentabilidad y financiación. Tras tres iteraciones para resolver problemas de infraestructura de verificación (en particular, un problema con el proxy de……Ver másVer menos

Esta fue la tercera estrategia de una serie transversal: aplicaba la anomalía de baja volatilidad / Betting-Against-Beta con una cartera neutral al dólar, larga en los -2 de menor volatilidad y corta en los -2 de mayor volatilidad, sobre 6 activos principales de Binance. Se buscaba que no estuviera correlacionada con las estrategias anteriores, clasificadas por rentabilidad y financiación. Tras tres iteraciones para resolver problemas de infraestructura de verificación (en particular, un problema con el proxy de la capa -2, corregido al convertir el auxiliar de volatilidad en una función de módulo), produjo un backtest funcional y realmente neutral al mercado, pero perdió 78.7% con un drawdown de 95.97%, porque estar largo en activos de baja volatilidad y corto en los de alta volatilidad equivale a apostar en corto contra la beta y el momentum, lo que solo da beneficios en mercados bajistas. El analista la descartó al revisar el backtest y consideró que el fallo era estructural, no ajustable: los tres parámetros modifican la magnitud y la frecuencia, pero no pueden invertir el signo negativo del factor durante un ciclo alcista; las oscilaciones al final de la muestra de +94%/-65% eran solo aritmética porcentual sobre una cuenta reducida. Nunca llegó a la optimización, a la decisión del analista posterior a la optimización, a la revisión de riesgos, al paper trading ni al trading en vivo.

Hipótesis

Estrategia de anomalía transversal, neutral en dólares, sobre un universo fijo de 6 perpetuos principales de Binance USD-M (BTC, ETH, SOL, BNB, AVAX, LINK; todos con datos limpios confirmados), que captura la anomalía de riesgo transversal más documentada en finanzas: la LOW-VOLATILITY ANOMALY. Cada 24 horas, la estrategia clasifica los 6 activos por su volatilidad realizada de los últimos 30 días, abre posiciones LONG los 2 activos de volatilidad más baja (LOWEST) y SHORT los 2 de volatilidad más alta (HIGHEST),……Ver másVer menos

Estrategia de anomalía transversal, neutral en dólares, sobre un universo fijo de 6 perpetuos principales de Binance USD-M (BTC, ETH, SOL, BNB, AVAX, LINK; todos con datos limpios confirmados), que captura la anomalía de riesgo transversal más documentada en finanzas: la LOW-VOLATILITY ANOMALY. Cada 24 horas, la estrategia clasifica los 6 activos por su volatilidad realizada de los últimos 30 días, abre posiciones LONG los 2 activos de volatilidad más baja (LOWEST) y SHORT los 2 de volatilidad más alta (HIGHEST), con ponderación igual en cada pata y neutralidad en dólares. Mantén las posiciones 24 horas y vuelve a clasificarlas. Se excluyen los 2 activos del medio. Esta es la tercera estrategia de una serie transversal (tras CrossSectionalMeanReversion3Major, basada en la financiación de HL, y DailyCrossSectional7DReturnReversal, basada en los rendimientos de Binance): mismo universo de activos principales, eje de señal de COMPLETELY DIFFERENT. La clasificación por volatilidad es estructuralmente ortogonal a la clasificación por rendimiento y financiación, por lo que esta estrategia tomará posiciones UNCORRELATED a las de las dos estrategias transversales anteriores y ofrecerá diversificación real de cartera, en lugar de solapamiento de mecanismos. La anomalía de baja volatilidad está documentada en: Black (1972); Frazzini-Pedersen (2014), «Betting Against Beta»; Baker-Bradley-Wurgler (2011), «Benchmarks as Limits to Arbitrage»; y Liu-Tsyvinski-Wu (2022), «Common Risk Factors in Cryptocurrency», específico de las criptomonedas. El mecanismo: los activos cripto de alta volatilidad atraen flujos especulativos de «billetes de lotería» que sistemáticamente rinden por debajo de su volatilidad realizada (operativa minorista FOMO + cascadas periódicas de liquidaciones); los activos de baja volatilidad atraen capital institucional y de largo plazo, que brinda apoyo estructural a la demanda y rendimientos estables ajustados al riesgo. Responde directamente a la recomendación reiterada del analista: «priorizar mecanismos transversales para el régimen actual». Completa FIVE categorías infrarrepresentadas: dirección long-short (14.0% → hacia 45%), alcance multiinstrumento (7.2% → ampliar), clase transversal (el mecanismo confirmado como ganador), diversificador de cartera frente a estrategias direccionales y solo BINANCE-USD-M (datos limpios). Tamaño de posición: 12% del capital por pata × 2 + 12% × 2 = 48% de exposición bruta, neutral en dólares. Riesgo por operación: ~1% a partir de la volatilidad de la dispersión de volatilidad diaria.

ITER-3 corrige el fallo comunicado en la capa -2 («_vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3») desde su origen: el _StrategyProxy de la capa -2 vuelve a enlazar todos los métodos INSTANCE mediante types.MethodType e inyecta `self`, lo que altera el número de argumentos del auxiliar. Al mover `_vol_from_closes` a una función MODULE-LEVEL, deja de ser un atributo de instancia, así que el proxy no vuelve a enlazarla y nunca se inyecta `self`; la llamada es idéntica tanto en el……Ver másVer menos

ITER-3 corrige el fallo comunicado en la capa -2 («_vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3») desde su origen: el _StrategyProxy de la capa -2 vuelve a enlazar todos los métodos INSTANCE mediante types.MethodType e inyecta `self`, lo que altera el número de argumentos del auxiliar. Al mover `_vol_from_closes` a una función MODULE-LEVEL, deja de ser un atributo de instancia, así que el proxy no vuelve a enlazarla y nunca se inyecta `self`; la llamada es idéntica tanto en el motor real como en el proxy. Es el cambio más pequeño posible: solo cambiaron la ubicación del auxiliar y sus dos puntos de llamada (_compute_realized_vol, _latest_vol_and_price); toda la lógica de señal, el bucle de eventos multiinstrumento y la clasificación del rebalanceo permanecen exactamente iguales. Verificado localmente: la comprobación estática de la capa -1 pasa sin errores y los 6 escenarios sintéticos de la capa -2 se ejecutan con el _StrategyProxy real sin excepciones, y producen 469/469 señales únicas, finitas y variables entre velas (sin señal congelada ni NaN/inf). La estrategia implementa la anomalía transversal de baja volatilidad / Betting-Against-Beta, bien documentada y ortogonal a las estrategias transversales anteriores, clasificadas por rentabilidad y financiación, para aportar una diversificación real a la cartera.

Sin ventaja y sin posibilidad de ajuste: optimizar sería inútil. La anomalía cripto de baja volatilidad implementada con posiciones largas en activos de baja volatilidad y cortas en los de alta volatilidad sobre 6 activos principales equivale, en la práctica, a apostar en corto contra la beta y el momentum: solo genera beneficios en mercados bajistas (2022 anual +128%) y sufre pérdidas catastróficas en mercados alcistas (2021 -80%, 2024 -78%), con un resultado neto de total_return -78.7%, max_drawdown 95.97%,……Ver másVer menos

Sin ventaja y sin posibilidad de ajuste: optimizar sería inútil. La anomalía cripto de baja volatilidad implementada con posiciones largas en activos de baja volatilidad y cortas en los de alta volatilidad sobre 6 activos principales equivale, en la práctica, a apostar en corto contra la beta y el momentum: solo genera beneficios en mercados bajistas (2022 anual +128%) y sufre pérdidas catastróficas en mercados alcistas (2021 -80%, 2024 -78%), con un resultado neto de total_return -78.7%, max_drawdown 95.97%, profit_factor 0.577 y Sharpe/Sortino/expectativa/ratio de información negativos en toda la muestra. Los 3 parámetros ajustables (vol_lookback_days, rebalance_days, leg_capital_pct) modifican la magnitud y la frecuencia, pero no pueden invertir el signo negativo del factor; por tanto, ningún barrido walk-forward puede salvarlo: solo ajustaría en exceso la ventana bajista de 2022 y fallaría después. Las inverosímiles oscilaciones diarias al final de la muestra (+94%, -65%, curtosis 304) son el resultado aritmético de calcular rentabilidades porcentuales sobre una cuenta reducida a 96%, no un error de dimensionamiento corregible; tampoco es un caso para que el desarrollador «siga iterando». FAILURE PATTERN: una anomalía cripto de baja volatilidad neutral al dólar (posición larga en el -2 inferior y corta en el -2 superior de los principales activos por volatilidad realizada) es una apuesta encubierta contra la alta volatilidad y el momentum, cuyo signo es negativo durante un ciclo cripto alcista; su rentabilidad exclusiva en mercados bajistas según el régimen no se mantiene en una muestra completa ni puede obtenerse mediante el ajuste de parámetros.

Implementación

Anomalía de baja volatilidad transversal, neutral en dólares, en 6 Binance USD-M perpetuos (BTC, ETH, SOL, BNB, AVAX, LINK), velas diarias. Cada rebalance_days (por defecto, 1), clasifica los 6 activos por volatilidad realizada anualizada de los últimos 30 días; abre posiciones LONG los 2 de menor volatilidad y SHORT los 2 de mayor volatilidad (ponderación igual, excluye los 2 del medio). Cada pata equivale a 12% del valor de la cuenta -> ~48% de exposición bruta, ~0% neta. Solo OHLCV, sin datos complementarios. _rebalance() ejecuta las operaciones en on_bar/on_extra_bar; calculate_signal devuelve un valor de diagnóstico continuo basado en los cierres.

Resultados de verificación

La verificación falló (capa 2 — escenarios sintéticos): Parámetros utilizados: ['min_notional', 'rebalance_days', 'leg_capital_pct', 'vol_lookback_days'] Comprueba que __init__ establezca todos los atributos a partir de self.parameters.get(). - steady_uptrend: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3 (marca temporal de la vela: 1735693260000) - steady_downtrend: TypeError:……Ver másVer menos

La verificación falló (capa 2 — escenarios sintéticos): Parámetros utilizados: ['min_notional', 'rebalance_days', 'leg_capital_pct', 'vol_lookback_days'] Comprueba que __init__ establezca todos los atributos a partir de self.parameters.get(). - steady_uptrend: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3 (marca temporal de la vela: 1735693260000) - steady_downtrend: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3 (marca temporal de la vela: 1735693260000) - flat_ranging: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3 (marca temporal de la vela: 1735693260000) - volatility_spike: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3 (marca temporal de la vela: 1735693260000) - zero_volume: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3 (marca temporal de la vela: 1735693260000) - price_gap: TypeError: BinanceCrossSectionalLowVolAnomalyLong2Short2SixMajorsDaily._vol_from_closes() acepta 2 argumentos posicionales, pero se proporcionaron 3 (marca temporal de la vela: 1735693260000)

Revisión de backtest

Sharpe
-0,12
Rentabilidad total
-78,69%
Drawdown máximo
95,97%
Operaciones totales
306
Tasa de acierto
52,9%
Factor de beneficio
0,58

La estrategia funciona mecánicamente: 306 operaciones en 2082 días, ejecuta posiciones largas y cortas neutrales al dólar, universo limpio de 6 activos principales de Binance, solo OHLCV (sin fragilidad por datos suplementarios)

La correlación realmente baja con el índice de referencia (-0.06, beta -0.09) confirma que es ortogonal a las estrategias direccionales, como se pretendía

Rendimiento neto catastrófico: total_return -78.7%, max_drawdown 95.97%, profit_factor 0.577, Sharpe/Sortino negativos (-0.12), expectativa negativa (-299/operación), IR -0.34

Problema estructural de signo: estar largo en activos cripto de baja volatilidad y corto en los de alta volatilidad equivale a apostar en corto contra la beta y el momentum. Solo gana en mercados bajistas (2022 +128%) y pierde mucho en los alcistas (2021 -80%, 2024 -78%); el resultado neto es negativo durante todo el ciclo alcista.

El fallo no se puede ajustar: los 3 parámetros (vol_lookback, rebalance_days, leg_capital_pct) no pueden invertir la dirección de la anomalía, así que optimizar solo ajustaría en exceso la ventana bajista de 2022.

Las rentabilidades diarias extremas (+94%, -65%) y la curtosis 304 son artefactos de una cuenta casi nula tras un drawdown de 96%, no una ventaja recuperable

Análisis

Aún no NOT optimices: la cartera no mantiene la neutralidad al dólar especificada por la hipótesis (48% bruto, ~1% de riesgo por operación). Evidencia: exposure_pct=400% (8x el 48% previsto), rentabilidades diarias que alcanzan +94.3%/-65.3%/-61.6% y return_kurtosis=304. (1) Verifica que, en cada rebalanceo, los cuatro tramos sumen ~neutralidad al dólar y que la exposición bruta se mantenga cerca de 48%: registra el nominal bruto/neto real por vela y compruébalo. (2) La lógica aplazada de inversión de lado («la……Ver másVer menos

Aún no NOT optimices: la cartera no mantiene la neutralidad al dólar especificada por la hipótesis (48% bruto, ~1% de riesgo por operación). Evidencia: exposure_pct=400% (8x el 48% previsto), rentabilidades diarias que alcanzan +94.3%/-65.3%/-61.6% y return_kurtosis=304. (1) Verifica que, en cada rebalanceo, los cuatro tramos sumen ~neutralidad al dólar y que la exposición bruta se mantenga cerca de 48%: registra el nominal bruto/neto real por vela y compruébalo. (2) La lógica aplazada de inversión de lado («la inversión se completa en el siguiente rebalanceo» y las protecciones «omitir si ya está en corto/largo») puede dejar un activo sin cobertura o una posición obsoleta abierta durante velas adicionales. Confirma que las posiciones no deseadas se cierran AND ejecutadas antes del mismo rebalanceo o durante este, y que las ejecuciones de _submit_exit_position se reflejan antes de dimensionar los nuevos tramos. (3) avg_holding_period 27d frente a rebalance_days=1 implica que las posiciones no rotan; comprueba que las salidas se ejecuten en cada rebalanceo, no solo cuando un activo abandona el grupo inferior-2/superior-2. (4) La enorme curtosis y las oscilaciones diarias apuntan a que la precisión de cantidad por instrumento o el cálculo del nominal podrían estar mal escalados en un tramo (p. ej., SOL/AVAX/LINK). Valida que el nominal de cada tramo sea ≈ leg_capital_pct*capital. Vuelve a ejecutar y confirma una exposición neta ≈ 0 y que no haya oscilaciones diarias superiores a ~15% antes de volver a enviar. Nota: si se confirma que la cartera es neutral y aun así pierde mucho, probablemente el problema real sea la premisa (estar corto en las criptomonedas de mayor volatilidad equivale a estar corto en los ganadores de mayor beta durante mercados alcistas) y debe pasar a revise_hypothesis.

Resumen de resultados

Incluso un factor bien documentado, como la anomalía de baja volatilidad, puede arrojar un resultado neto negativo si se implementa con posiciones largas en activos de baja volatilidad y cortas en activos de alta volatilidad dentro de un universo cripto con tendencia alcista persistente. Que sea rentable solo en mercados bajistas según el régimen no es una ventaja ajustable, porque ningún parámetro puede invertir el signo direccional del factor.

El filtro de revisión del backtest devolvió «abandonar» antes de cualquier optimización: estar largo en activos cripto de baja volatilidad y corto en los de alta volatilidad equivale a una apuesta encubierta contra la beta y el momentum, cuyo signo es negativo durante todo el ciclo alcista; sus parámetros 3 no pueden invertirlo, así que un barrido walk-forward solo ajustaría en exceso la ventana bajista de 2022.

Una anomalía transversal de baja volatilidad neutral al dólar (Betting-Against-Beta) sobre 6 perpetuos Binance USD-M principales (BTC, ETH, SOL, BNB, AVAX, LINK), que clasifica a diario los activos según su volatilidad realizada de los últimos 30 días, abre posiciones largas en los 2 de menor volatilidad y cortas en los 2 de mayor volatilidad, con ponderación equitativa y una exposición bruta de ~48%.

En más de 306 operaciones durante ~2,082 días, funcionó mecánicamente y fue realmente ortogonal a las estrategias direccionales (beta -0.09, correlación con el índice de referencia -0.06), pero el rendimiento neto fue catastrófico: rentabilidad total -78.7%, drawdown máximo 95.97%, factor de beneficio 0.577, Sharpe/Sortino negativos (-0.12), expectativa negativa (-299/operación) y IR -0.34. La ventaja solo apareció en el régimen bajista de 2022 (+128%), mientras que perdió en los regímenes alcistas (2021 -80%, 2024 -78%).

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.