Estratégia de Crossover de EMA de Negociação de Opções de Acompanhamento de Tendências Multiindicador

EMA SMA VWAP MACD RSI TP
Data de criação: 2024-12-20 14:49:04 última modificação: 2024-12-20 14:49:04
cópia: 2 Cliques: 432
1
focar em
1617
Seguidores

Estratégia de Crossover de EMA de Negociação de Opções de Acompanhamento de Tendências Multiindicador

Visão geral

A estratégia é uma estratégia de negociação de opções de acompanhamento de tendências baseada em uma combinação de vários indicadores técnicos. Usando principalmente o cruzamento EMA como sinal central, em combinação com a direção da tendência confirmada pelo SMA, VWAP, e filtrando o sinal usando o MACD e o RSI como indicadores auxiliares.

Princípio da estratégia

A estratégia usa o cruzamento dos EMAs de 8 e 21 ciclos como sinal principal de negociação, e a multi-sinal é acionada quando a curta EMA atravessa a EMA de longo prazo e as seguintes condições são satisfeitas: o preço está acima dos 100 e 200 ciclos SMA, a linha MACD está acima da linha de sinal, e o RSI é maior que 50. Os termos de ação do sinal de curto são os opostos. A estratégia introduz o VWAP como referência de peso de preço para ajudar a determinar a posição relativa do preço atual.

Vantagens estratégicas

  1. Multi-indicadores de colaboração para aumentar a confiabilidade do sinal através de diferentes períodos e tipos de indicadores de verificação cruzada
  2. Usar a combinação de rastreamento de tendências e indicadores de dinâmica para capturar tendências e focar na dinâmica de curto prazo
  3. A fixação de um ponto de parada ajuda a proteger os lucros e a evitar a ganância excessiva.
  4. Gestão rigorosa das posições, evitando a reabertura de posições e reduzindo a exposição ao risco
  5. Visualizações claras, com movimentos EMA, SMA, VWAP e sinalização

Risco estratégico

  1. Sinais falsos frequentes podem ocorrer em mercados voláteis
  2. A fixação de um ponto de parada pode levar a perder oportunidades de lucro maiores
  3. Sem paradas, pode sofrer grandes perdas em situações extremas
  4. O uso de vários indicadores pode causar atraso no sinal
  5. Risco de deslizamento em contratos de opções com pouca liquidez

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

  1. Introdução de um mecanismo de stop-loss adaptável, ajustado à dinâmica de volatilidade do mercado
  2. Adição de módulo de gerenciamento de volume de transação, ajustando posições dinamicamente de acordo com o tamanho da conta e as condições do mercado
  3. Adição de filtros de volatilidade de mercado para ajustar os parâmetros de estratégia em um ambiente de alta volatilidade
  4. Parâmetros de indicadores de otimização, pode considerar o uso de ciclos adaptativos em vez de ciclos fixos
  5. Aumentar o filtro de tempo para evitar a negociação em períodos de maior volatilidade, como abertura e fechamento do mercado

Resumir

Esta é uma estratégia de negociação de opções multi-indicadores de tendências de rastreamento de opções, com uma estrutura completa e lógica clara. A estratégia aumenta a confiabilidade do sinal de negociação através da combinação de vários indicadores técnicos e usa pontos de parada fixos para gerenciar o risco.

Código-fonte da estratégia
/*backtest
start: 2019-12-23 08:00:00
end: 2024-12-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("OptionsMillionaire Strategy with Take Profit Only", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)

// Define custom magenta color
magenta = color.rgb(255, 0, 255)  // RGB for magenta

// Input settings for Moving Averages
ema8 = ta.ema(close, 8)
ema21 = ta.ema(close, 21)
sma100 = ta.sma(close, 100)
sma200 = ta.sma(close, 200)
vwap = ta.vwap(close)  // Fixed VWAP calculation

// Input settings for MACD and RSI
[macdLine, signalLine, _] = ta.macd(close, 12, 26, 9)
rsi = ta.rsi(close, 14)

// Define trend direction
isBullish = ema8 > ema21 and close > sma100 and close > sma200
isBearish = ema8 < ema21 and close < sma100 and close < sma200

// Buy (Call) Signal
callSignal = ta.crossover(ema8, ema21) and isBullish and macdLine > signalLine and rsi > 50

// Sell (Put) Signal
putSignal = ta.crossunder(ema8, ema21) and isBearish and macdLine < signalLine and rsi < 50

// Define Position Size and Take-Profit Level
positionSize = 1  // Position size set to 1 (each trade will use one contract)
takeProfitPercent = 5  // Take profit is 5%

// Variables to track entry price and whether the position is opened
var float entryPrice = na  // To store the entry price
var bool positionOpen = false  // To check if a position is open

// Backtesting Execution
if callSignal and not positionOpen
    // Enter long position (call)
    strategy.entry("Call", strategy.long, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

if putSignal and not positionOpen
    // Enter short position (put)
    strategy.entry("Put", strategy.short, qty=positionSize)
    entryPrice := close  // Store the entry price
    positionOpen := true  // Set position as opened

// Only check for take profit after position is open
if positionOpen
    // Calculate take-profit level (5% above entry price for long, 5% below for short)
    takeProfitLevel = entryPrice * (1 + takeProfitPercent / 100)

    // Exit conditions (only take profit)
    if strategy.position_size > 0
        // Long position (call)
        if close >= takeProfitLevel
            strategy.exit("Take Profit", "Call", limit=takeProfitLevel)
    if strategy.position_size < 0
        // Short position (put)
        if close <= takeProfitLevel
            strategy.exit("Take Profit", "Put", limit=takeProfitLevel)

// Reset position when it is closed (this happens when an exit is triggered)
if strategy.position_size == 0
    positionOpen := false  // Reset positionOpen flag

// Plot EMAs
plot(ema8, color=magenta, linewidth=2, title="8 EMA")
plot(ema21, color=color.green, linewidth=2, title="21 EMA")

// Plot SMAs
plot(sma100, color=color.orange, linewidth=1, title="100 SMA")
plot(sma200, color=color.blue, linewidth=1, title="200 SMA")

// Plot VWAP
plot(vwap, color=color.white, style=plot.style_circles, title="VWAP")

// Highlight buy and sell zones
bgcolor(callSignal ? color.new(color.green, 90) : na, title="Call Signal Background")
bgcolor(putSignal ? color.new(color.red, 90) : na, title="Put Signal Background")

// Add buy and sell markers (buy below, sell above)
plotshape(series=callSignal, style=shape.labelup, location=location.belowbar, color=color.green, text="Buy", title="Call Signal Marker")
plotshape(series=putSignal, style=shape.labeldown, location=location.abovebar, color=color.red, text="Sell", title="Put Signal Marker")