Estratégia de negociação de opções dinâmicas multifatoriais quantitativas

ATR BB RSI VWAP CE PE SL TP
Data de criação: 2025-03-31 16:38:05 última modificação: 2025-03-31 16:38:05
cópia: 0 Cliques: 374
2
focar em
319
Seguidores

Estratégia de negociação de opções dinâmicas multifatoriais quantitativas Estratégia de negociação de opções dinâmicas multifatoriais quantitativas

Visão geral

Trata-se de uma estratégia de negociação de opções dinâmicas baseada em indicadores multi-técnicos, que visa identificar oportunidades de negociação de alta probabilidade por meio de uma análise integrada da volatilidade, tendências e dinâmica do mercado. A estratégia combina vários indicadores técnicos, como a média real de amplitude (ATR), a faixa de Brin (BB), o índice de força relativa (RSI) e o preço médio ponderado pelo volume de transações (VWAP), para formar um quadro abrangente de decisão de negociação.

Princípio da estratégia

O princípio central da estratégia é o uso de múltiplos sinais de mercado para construir decisões de negociação. Os principais passos incluem:

  1. Usando o Brincadeira para cima e para baixo como sinal de quebra de preço
  2. Combinado com o RSI, o mercado está super-comprado e super-vendido
  3. Tendências confirmadas por detecção de anomalias em volume de transação
  4. O ATR é usado para calcular o stop loss dinâmico e o stop loss objetivo.
  5. Configurar o limite máximo de tempo de posição de risco

Vantagens estratégicas

  1. Análise de múltiplos fatores para melhorar a precisão dos sinais de negociação
  2. Mecanismos de suspensão e parada dinâmicos para controlar o risco
  3. Ajustes de parâmetros flexíveis para diferentes cenários de mercado
  4. Os dados de retrospecção mostram uma maior taxa de vitórias e fatores de lucro.
  5. Estratégias de saída baseadas no tempo para evitar excesso de posições

Risco estratégico

  1. Indicadores técnicos atrasados podem causar sinais errados
  2. Mercados altamente voláteis podem aumentar a complexidade das transações
  3. A seleção de parâmetros é fundamental para a performance da estratégia
  4. Custo de transação e deslizamento podem afetar o lucro real
  5. Condições de mercado em rápida mudança podem reduzir a eficácia da estratégia

Direção de otimização da estratégia

  1. Introdução de algoritmos de aprendizado de máquina para otimizar a seleção de parâmetros
  2. Adicionar mais indicadores de sentimento de mercado
  3. Desenvolvimento de mecanismos de ajuste de parâmetros dinâmicos
  4. Optimizar o módulo de gestão de risco
  5. Introdução à análise de relevância entre mercados

Resumir

A estratégia, por meio de análise multifatorial, construiu uma estrutura de negociação de opções relativamente robusta. A estratégia fornece aos comerciantes uma abordagem de negociação sistematizada por meio do uso integrado de indicadores técnicos, controle de risco e mecanismos de saída dinâmica. No entanto, qualquer estratégia de negociação requer verificação e otimização contínuas.

Performance Metrics

  • Ciclo de 5 minutos:

    • Taxa de aprovação: 77,6%
    • Fator de lucro: 3,52
    • Retirada máxima: 8,1%
    • Tempo médio de transação: 2,7 horas
  • 15 minutos de intervalo:

    • Taxa de aprovação: 75,9%
    • Fator de lucro: 3,09
    • Retirada máxima: 9,4%
    • Tempo médio de transação: 3,1 horas
Código-fonte da estratégia
/*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!")