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

Autora:ChaoZhang, Data: 2024-02-21 15:11:32
Tags:

img

Resumo

Esta é uma estratégia de negociação combinada baseada em médias móveis simples (SMA). Ele usa um cruzamento das linhas SMA de 9 dias e 21 dias como sinais de compra e venda. Quando a SMA de curto prazo cruza acima da SMA de longo prazo de baixo, um sinal de compra é gerado. Quando a SMA de curto prazo cruza abaixo da SMA de longo prazo de cima, um sinal de venda é gerado.

Estratégia lógica

A lógica central desta estratégia é usar duas linhas SMA com parâmetros diferentes - uma SMA de 9 dias representando a tendência de curto prazo e uma SMA de 21 dias representando a tendência de longo prazo. Quando a linha de tendência de curto prazo cruza acima da linha de tendência de longo prazo de baixo, ela indica que o mercado está mudando de tendência de baixa para tendência de alta, gerando um sinal de compra. Quando a linha de curto prazo cruza abaixo da linha de longo prazo de cima, ela sinaliza uma mudança de tendência de alta para tendência de baixa, gerando um sinal de venda.

Os principais sinais em que esta estratégia se baseia são a cruz de ouro e a cruz de morte das duas linhas SMA. Uma cruz de ouro ocorre quando a SMA curta cruza acima da SMA longa, sinalizando uma possível mudança de tendência de baixa para tendência de alta. Uma cruz de morte ocorre quando a SMA curta cruza abaixo da SMA longa, sugerindo que uma queda da tendência de alta pode começar. Utilizando esses dois sinais, a estratégia identifica relações entre tendências de curto e longo prazo para tomar decisões de negociação.

Vantagens

  1. Simples de compreender e implementar
  2. Poucos parâmetros que necessitem de testes/otimizações extensos
  3. Frequência de negociação razoável, evitando negociações excessivamente agressivas
  4. É bastante preciso na identificação dos pontos de reversão da tendência
  5. Oferece mensurabilidade e estabilidade até certo ponto

Riscos

  1. Tendência a gerar sinais falsos e batimentos cardíacos
  2. A selecção dos pontos de compra/venda baseia-se fortemente na experiência em vez de numa abordagem sistemática
  3. Performance altamente dependente de parâmetros. SMA de 9/21 dias pode não ser ideal
  4. Ineficaz para filtrar o ruído dos negócios em mercados agitados/de lado
  5. Operações com perdas consideráveis em ambientes de alta volatilidade

Melhorias possíveis:

  1. Adicionar filtros para evitar agir em sinais falsos
  2. Incorporar outros indicadores para avaliar a fiabilidade do sinal
  3. Teste e otimização de parâmetros para diferentes produtos
  4. Implementar stop loss/take profit para controlar os riscos

Conclusão

No geral, este é um sistema de cruzamento de média móvel dupla bastante tradicional e simples. É fácil de entender e implementar com seleção de parâmetros relativamente simples. Pode rastrear efetivamente mudanças entre tendências de curto e longo prazo. No entanto, questões como sinais falsos, parâmetros escolhidos empiricamente, desempenho medíocre em ambientes de alta volatilidade precisam ser abordadas. Otimizações, melhorias e combinações apropriadas devem ser consideradas junto com práticas sólidas de controle de risco.


/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bitboy Strategy", overlay=true)

// Define MAs
SlowMA = ta.sma(close, 9)
FastMA = ta.sma(close, 21)

// Plot MAs
plot1 = plot(SlowMA, color=color.new(color.red, 0), title="Slow MA")
plot2 = plot(FastMA, color=color.new(color.green, 0), title="Fast MA")

// Plot MA Ribbon
fill(plot1, plot2, color=FastMA > SlowMA ? color.rgb(233, 21, 21, 50) : color.new(#1de223, 45))

// Define buy/sell conditions
longCondition = ta.crossover(SlowMA, FastMA)
shortCondition = ta.crossunder(SlowMA, FastMA)

// Strategy commands for buy/sell
if longCondition
    strategy.entry("Long", strategy.long)

if shortCondition
    strategy.entry("Short", strategy.short)

// Plot buy/sell signals (for visualization)
plotshape(longCondition, location=location.belowbar, color=color.rgb(18, 230, 25, 37), style=shape.labelup, text="Buy", textcolor=color.white)
plotshape(shortCondition, location=location.abovebar, color=color.rgb(239, 23, 23, 40), style=shape.labeldown, text="Sell", textcolor=color.white)

Mais.