Estrategia cuantitativa de negociación de opciones dinámicas multifactoriales

ATR BB RSI VWAP CE PE SL TP
Fecha de creación: 2025-03-31 16:38:05 Última modificación: 2025-03-31 16:38:05
Copiar: 0 Número de Visitas: 374
2
Seguir
319
Seguidores

Estrategia cuantitativa de negociación de opciones dinámicas multifactoriales Estrategia cuantitativa de negociación de opciones dinámicas multifactoriales

Descripción general

Esta es una estrategia de comercio de opciones dinámicas basada en indicadores multitecnológicos, cuyo objetivo es identificar oportunidades de comercio de alta probabilidad mediante el análisis integral de la volatilidad, la tendencia y el dinamismo del mercado. La estrategia combina varios indicadores técnicos, como la amplitud real promedio (ATR), la banda de Brin (BB), el índice de fuerza relativa (RSI) y el precio promedio ponderado por volumen de transacción (VWAP), para formar un marco integral de decisión de comercio.

Principio de estrategia

El principio central de la estrategia es el uso de múltiples señales de mercado para construir decisiones comerciales. La estrategia incluye los siguientes pasos clave:

  1. El uso de la banda de Brin para subir y bajar como señal de ruptura de precios
  2. Combinado con el RSI, el mercado está sobrecomprado y sobrevendido
  3. Tendencias confirmadas por la detección de anomalías en el tráfico
  4. Utiliza ATR para calcular los objetivos de stop loss y stop loss dinámicos
  5. Establecer el límite máximo de tiempo de posesión de riesgo

Ventajas estratégicas

  1. El análisis multifactorial mejora la precisión de las señales de negociación
  2. Mecanismos dinámicos de detención de pérdidas y frenado para controlar el riesgo de manera efectiva
  3. Ajustes de parámetros flexibles para adaptarse a diferentes entornos de mercado
  4. Los datos de retrospectiva muestran una mayor tasa de ganancias y factores de rentabilidad
  5. Estrategias de salida basadas en el tiempo para evitar la tenencia excesiva

Riesgo estratégico

  1. El retraso en los indicadores técnicos puede causar señales erróneas
  2. La alta volatilidad de los mercados puede aumentar la complejidad de las transacciones
  3. La selección de parámetros es crucial para el rendimiento de la estrategia
  4. Los costos de las transacciones y los puntos de deslizamiento pueden afectar los ingresos reales
  5. El rápido cambio en las condiciones del mercado puede reducir la efectividad de la estrategia.

Dirección de optimización de la estrategia

  1. Introducción de algoritmos de aprendizaje automático para optimizar la selección de parámetros
  2. Aumentar el número de indicadores de sentimiento en el mercado
  3. Desarrollo de un mecanismo de ajuste de parámetros dinámicos
  4. Optimización del módulo de gestión de riesgos
  5. Introducción al análisis de la relevancia entre mercados

Resumir

Esta estrategia construye un marco de comercio de opciones relativamente robusto a través de análisis multifactorial. Proporciona a los comerciantes un método de negociación sistematizado mediante el uso integrado de indicadores técnicos, control de riesgo y mecanismos de salida dinámica. Sin embargo, cualquier estrategia de negociación requiere verificación y optimización continuas.

Performance Metrics

  • El ciclo de 5 minutos:

    • Porcentaje de éxito: 77.6%
    • Factor de ganancias: 3.52
    • Cantidad máxima de retiros: 8,1%
    • La duración promedio de las transacciones fue de 2,7 horas.
  • El ciclo de 15 minutos:

    • Porcentaje de éxito: 75,9%
    • Factor de ganancias: 3,09
    • Cantidad máxima de retiros: 9,4%
    • La duración promedio de las transacciones: 3.1 horas
Código Fuente de la Estrategia
/*backtest
start: 2024-03-31 00:00:00
end: 2025-03-29 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=6
strategy("Vinayz Options Stratergy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=2)

// ---- Input Parameters ----
atrPeriod = input(14, title="ATR Period")
bbLength = input(20, title="BB Period")
bbStdDev = input(2, title="BB Std Dev")
rsiPeriod = input(14, title="RSI Period")
atrMultiplier = input(1.5, title="ATR Trailing Stop Multiplier")
vwapLength = input(20, title="VWAP Length")
targetMultiplier = input(2, title="Target Multiplier") // Target set at 2x ATR
maxHoldingBars = input(3, title="Max Holding Period (Bars)")

// ---- Indicator Calculations ----
atrValue = ta.atr(atrPeriod)
smaValue = ta.sma(close, bbLength)
upperBB = smaValue + bbStdDev * ta.stdev(close, bbLength)
lowerBB = smaValue - bbStdDev * ta.stdev(close, bbLength)
rsiValue = ta.rsi(close, rsiPeriod)
vwap = ta.vwma(close, vwapLength)

// ---- Volume Spike/Breakout Detection ----
volSMA = ta.sma(volume, 10)
volSpike = volume > volSMA * 1.5

// ---- ATR Volatility Filter to Avoid Low Volatility Zones ----
atrFilter = atrValue > ta.sma(atrValue, 20) * 0.5

// ---- Long Call Entry Conditions ----
longCE = ta.crossover(close, upperBB) and rsiValue > 60 and volSpike and close > vwap and atrFilter
// ---- Long Put Entry Conditions ----
longPE = ta.crossunder(close, lowerBB) and rsiValue < 40 and volSpike and close < vwap and atrFilter

// ---- Stop Loss and Target Calculation ----
longStopLoss = strategy.position_size > 0 ? strategy.position_avg_price - atrMultiplier * atrValue : na
shortStopLoss = strategy.position_size < 0 ? strategy.position_avg_price + atrMultiplier * atrValue : na
longTarget = strategy.position_size > 0 ? strategy.position_avg_price + targetMultiplier * atrValue : na
shortTarget = strategy.position_size < 0 ? strategy.position_avg_price - targetMultiplier * atrValue : na

// ---- Buy/Sell Logic ----
if (longCE)
    strategy.entry("CE Entry", strategy.long)
    label.new(bar_index, high, "BUY CE", color=color.green, textcolor=color.white, yloc=yloc.abovebar, size=size.small, tooltip="Buy CE Triggered")

if (longPE)
    strategy.entry("PE Entry", strategy.short)
    label.new(bar_index, low, "BUY PE", color=color.red, textcolor=color.white, yloc=yloc.belowbar, size=size.small, tooltip="Buy PE Triggered")

// ---- Exit Conditions ----
if (strategy.position_size > 0)
    // Exit Long CE on Target Hit
    if (close >= longTarget)
        strategy.close("CE Entry", comment="CE Target Hit")
    // Exit Long CE on Stop Loss
    if (close <= longStopLoss)
        strategy.close("CE Entry", comment="CE Stop Loss Hit")
    // Time-Based Exit after 3 candles
    if (bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= maxHoldingBars)
        strategy.close("CE Entry", comment="CE Timed Exit")

if (strategy.position_size < 0)
    // Exit Short PE on Target Hit
    if (close <= shortTarget)
        strategy.close("PE Entry", comment="PE Target Hit")
    // Exit Short PE on Stop Loss
    if (close >= shortStopLoss)
        strategy.close("PE Entry", comment="PE Stop Loss Hit")
    // Time-Based Exit after 3 candles
    if (bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1) >= maxHoldingBars)
        strategy.close("PE Entry", comment="PE Timed Exit")

// ---- Plotting ----
plot(upperBB, color=color.green, title="Upper BB")
plot(lowerBB, color=color.red, title="Lower BB")
plot(rsiValue, title="RSI", color=color.blue, linewidth=1)
hline(60, "Overbought", color=color.blue)
hline(40, "Oversold", color=color.blue)
plot(vwap, color=color.orange, linewidth=1, title="VWAP")

// ---- Plot Volume Breakout/Spike ----
barcolor(volSpike ? color.yellow : na, title="Volume Spike Indicator")

//plotshape(volSpike, title="Volume Breakout", location=location.bottom, style=shape.triangleup, color=color.purple, size=size.small, text="Spike")

// ---- Alerts ----
alertcondition(longCE, "CE Buy Alert", "Bank Nifty CE Buy Triggered!")
alertcondition(longPE, "PE Buy Alert", "Bank Nifty PE Buy Triggered!")