Estratégia de acompanhamento de tendências com três EMAs combinados com DMI e MACD


Data de criação: 2024-01-25 15:48:59 última modificação: 2024-01-25 15:48:59
cópia: 0 Cliques: 1177
1
focar em
1617
Seguidores

Estratégia de acompanhamento de tendências com três EMAs combinados com DMI e MACD

Visão geral

É uma estratégia de acompanhamento de tendências que combina o uso de três indicadores: a média móvel (EMA), o indicador de tendência (DMI) e o indicador de concentração de média móvel (MACD) para determinar a direção da tendência e gerar um sinal de compra e venda. Os componentes-chave incluem o sinal de cruzamento de ouro da EMA, o DMI para determinar a força da tendência e o MACD para a confirmação da dinâmica.

Estratégia Lógica

A lógica central depende de 3 EMAs - 34, 89 e 200 - calculadas no ciclo M5 para identificar a tendência geral. Os EMAs de 34 ciclos fornecem direção a curto prazo, enquanto os EMAs de 89 e 200 definem a tendência de médio e longo prazo.

Quando você compra um sinal de disparo:

  • EMA de 34 em close
  • + DI ((movimento de tendência do dólar) > 17
  • ADX (intensidade da tendência) > -DI

Quando o sinal é vendido:

  • EMA 34 abaixo do preço de fechamento
  • -DI ((movimento de tendência de baixa) > 17
  • ADX > +DI

Os indicadores MACD fornecem uma confirmação adicional antes da entrada.

Vantagens

A estratégia tem várias vantagens importantes:

  1. A tendência de cruzamento e captura antecipada de ouro através de EMAs de curto prazo
  2. Usando vários EMAs para avaliar a força da tendência em diferentes períodos de tempo
  3. Os filtros DMI ajudam a evitar sinais errados, examinando movimentos de tendências fortes
  4. O MACD fornece confirmação de dinâmica para melhorar a qualidade e a probabilidade de oportunidades de negociação
  5. A combinação de indicadores aumenta a precisão e a puntualidade dos sinais de entrada

Riscos

Os principais riscos:

  1. Dependendo apenas do EMA, o cruzamento de ouro é vulnerável a erros e desvios
  2. A confirmação múltipla pode causar um atraso no momento da geração do sinal
  3. Vulneráveis a reversões de tendências repentinas

Métodos de mitigação:

  • Adotar uma gestão adequada de stop loss e posições
  • Optimizar os parâmetros do EMA de acordo com as condições atuais do mercado
  • Observação de movimentos de preços para confirmação visual

Direção de otimização

A estratégia foi melhorada:

  1. Aumento de indicadores como o RSI para determinar áreas de sobrecompra e sobrevenda
  2. Combinação de análise de tráfego para gerar um sinal mais forte
  3. Optimização de indicadores e parâmetros de acordo com diferentes ativos e prazos
  4. Continuar a aprender com novos dados de mercado usando aprendizado de máquina

Resumir

Em geral, é um sistema de acompanhamento de tendências robusto, que combina o uso de uma sequência de indicadores simples, mas práticos. Os três EMAs são configurados para julgar as tendências em vários períodos de tempo, o DMI e o MACD verificam o aumento do tempo de entrada e a probabilidade de lucro.

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

//@version=5
strategy("2 EMA di+ Buy Sell, strategy ", overlay=true)

// Define the EMA calculation function
ema(src, length) =>
    ta.ema(src, length)

// Calculate and plot EMA on M5
ema34_M5 = ema(close, 34)
ema89_M5 = ema(close, 89)
ema200_M5 = ema(close, 200)

// Plot EMAs
plot(ema34_M5, color=color.green, title="EMA 34 M5", linewidth=2)
plot(ema89_M5, color=color.blue, title="EMA 89 M5", linewidth=2)
plot(ema200_M5, color=color.black, title="EMA 200 M5", linewidth=2)

// Define DMI parameters
len = input(14, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plusDI = 100 * ta.rma(plusDM, len) / trur
minusDI = 100 * ta.rma(minusDM, len) / trur

// Calculate ADX
adxValue = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI == 0 ? 1 : plusDI + minusDI), len)

// Define MACD parameters
fastLength = input(12, title="Fast Length")
slowLength = input(26, title="Slow Length")
signalLength = input(9, title="Signal Length")

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalLength)

// Create buy/sell conditions
buyCondition = close > ema34_M5 and plusDI > 17 and adxValue > minusDI 
sellCondition = close < ema34_M5 and minusDI > 17 and adxValue > plusDI 

// Strategy logic
strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)

// Create alerts for buy/sell signals
alertcondition(buyCondition, title="Buy Signal", message="Buy Signal")
alertcondition(sellCondition, title="Sell Signal", message="Sell Signal")

// Plot buy/sell arrows on the price chart
bgcolor(buyCondition ? color.new(color.green, 90) : sellCondition ? color.new(color.red, 90) : na)

plotarrow(buyCondition ? 1 : sellCondition ? -1 : na, colorup=color.new(color.green, 0), colordown=color.new(color.red, 0), offset=-1)