Estratégia de cruzamento da média móvel

Autora:ChaoZhang, Data: 2023-11-06 17:01:53
Tags:

img

Resumo

A estratégia da média móvel cruzada calcula as médias móveis de diferentes períodos e usa seus crossovers como sinais de negociação. Ela pertence às estratégias de análise técnica.

Estratégia lógica

A estratégia calcula 3 médias móveis com períodos diferentes: 34-periodo EMA, 89-periodo EMA e 200-periodo EMA.

Os sinais de negociação são gerados com base nos cruzamentos entre diferentes MA: quando o MA rápido cruza acima do MA médio, ele aciona o sinal de compra; quando o MA rápido cruza abaixo do MA médio, ele aciona o sinal de venda.

Para filtrar o ruído excessivo, a estratégia também emprega um MA lento. Somente quando o MA rápido cruza o MA lento simultaneamente, os sinais reais de compra e venda serão acionados. Por exemplo, apenas quando o MA rápido cruza acima dos MA médios e lentos, o sinal de compra será gerado. Isso garante que as negociações ocorram apenas quando ocorrem mudanças significativas na tendência.

Vantagens

  • Utiliza MAs multi-período para filtrar ruído e identificar grandes mudanças de tendência.
  • A MA rápida é sensível, a MA média é estável e a MA lenta filtra falhas.
  • Utiliza a EMA para calcular as MAs, que dá mais peso aos preços recentes e reage melhor às alterações da tendência.
  • Visualiza claramente diferentes MAs através de cruzamento para facilitar a identificação do sinal.
  • Estratégia flexível que permita ajustes do período de autorização para os diferentes ambientes de mercado.

Riscos

  • As MA têm atraso e podem atrasar a geração de sinal.
  • As tendências fortes podem anular os MAs e gerar sinais excessivos.
  • As configurações de períodos de MA inadequadas podem aumentar a frequência e o risco das transações.
  • A volatilidade extrema pode causar cruzamento de MA incorretos.
  • Os mercados com taxas elevadas não são adequados para estas estratégias de alta frequência.

Melhorias

  • Avaliar diferentes combinações de períodos de MA para encontrar parâmetros ideais.
  • Adicione índice de volatilidade etc. para pausar a negociação quando ocorrem grandes oscilações.
  • Combinar com oscilador estocástico etc. para evitar compras/vendas em extremos.
  • Otimizar o tempo de entrada, esperando por retiros MA chave antes de entrar.
  • Usar MAs adaptativas para ajustar dinamicamente os períodos para maior flexibilidade.

Conclusão

A estratégia da média móvel cruzada é uma estratégia típica de análise técnica. Observa a relação entre os MA de diferentes prazos para determinar pontos de reversão do mercado. O uso simultâneo de MA rápidos, médios e lentos pode reagir rapidamente às tendências e filtrar sinais falsos de forma eficaz. Com ajuste adequado dos parâmetros, pode ser flexível para diferentes ambientes de mercado. Ainda assim, questões atrasadas com os MA precisam ser consideradas.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="EMA 34, 89, 200 e cruzamento das EMA", overlay=true)

// Input options
fastMALen = input(title="Fast MA",  defval=34)
midMALen  = input(title="Medium MA",  defval=89)
slowMALen = input(title="Slow MA",  defval=200)

// Calculate values
fastMA = ema(close, fastMALen)
midMA  = ema(close, midMALen)
slowMA = ema(close, slowMALen)

// Plot values
plot(series=fastMA, color=yellow,
     title="Fast MA", linewidth=3, trackprice=false)
plot(series=midMA, color=red,
     title="Mid MA", linewidth=4, trackprice=false)
plot(series=slowMA, color=white,
     title="Slow MA", linewidth=5)

// Highlight crossovers
longCondition = crossover(ema(close, 34), ema(close, 200)) 
if (longCondition)
    strategy.entry("COMPRA FINAL", strategy.long)

longCondition1 = crossover(ema(close, 34), ema(close, 89)) 
if (longCondition1)
    strategy.entry("COMPRA INICIAL", strategy.long)

shortCondition = crossunder(ema(close, 34), ema(close, 200))
if (shortCondition)
    strategy.entry("VENDE FINAL", strategy.short)
    
shortCondition1 = crossunder(ema(close, 34), ema(close, 89))
if (shortCondition1)
    strategy.entry("VENDE INICIAL", strategy.short)


Mais.