Estratégia de cruzamento de médias móveis multi-SMA

Autora:ChaoZhang, Data: 2023-11-28 15:08:37
Tags:

img

Resumo

Esta estratégia calcula as médias móveis da SMA de vários prazos e leva o valor médio para construir o indicador da média móvel.

Princípio da estratégia

  1. Calcular as médias móveis de 5 SMA de diferentes períodos (8 dias, 21 dias, 50 dias, 100 dias, 200 dias)
  2. Pegue a média das 5 médias móveis para obter o indicador de média móvel final
  3. Gerar sinais de compra quando os preços de fechamento subirem acima da média móvel
  4. Gerar sinais de venda quando os preços de fechamento caem abaixo da média móvel

Ao fazer a média das SMAs de vários intervalos de tempo, esta estratégia pode suavizar efetivamente a curva e filtrar falhas.

Análise das vantagens

  1. O uso de médias móveis de vários prazos pode filtrar eficazmente o ruído do mercado e identificar tendências
  2. Curva suave, evitar gerar muitos sinais falsos
  3. A lógica da estratégia é simples e clara, fácil de entender e implementar, adequada para iniciantes a aprender
  4. Combinação de períodos de média móvel personalizável para otimizar o efeito do indicador

Análise de riscos

  1. O sistema da média móvel está atrasado no seu conjunto e não consegue acompanhar as variações de preços no tempo
  2. Quando ocorre falha de ruptura, o ponto de stop loss está longe, com maior risco de perda
  3. As linhas de stop loss são frequentemente desencadeadas em tendências oscilantes

Estes riscos podem ser reduzidos através do adequado encurtamento de alguns períodos de média móvel e da adição de outros indicadores de confirmação.

Orientações de otimização

  1. Otimizar as combinações de períodos de média móvel para encontrar os melhores parâmetros
  2. Adicionar indicadores como volume de negociação para confirmar sinais de ruptura
  3. Incorporar indicadores de tendência para evitar falsos sinais em mercados oscilantes
  4. Desenvolver programas automáticos de otimização de parâmetros para encontrar dinamicamente os parâmetros ideais

Resumo

A ideia geral desta estratégia é clara. Ao integrar as médias móveis de vários prazos, ela pode identificar efetivamente tendências e é uma estratégia estável e prática. No entanto, também precisamos prestar atenção aos riscos de atraso e falso sinal. Através da otimização adicional das configurações de parâmetros, adicionando indicadores de confirmação, etc., podemos melhorar continuamente essa estratégia para torná-la uma poderosa ferramenta de negociação quantitativa.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("STRATEGY AVERAGE MULTI_SMA", overlay=true)


sma1 = sma(close,input(title="SMA 1", defval=8))

sma2 = sma(close,input(title="SMA 2", defval=21))

sma3 = sma(close,input(title="SMA 3", defval=50))

sma4 = sma(close,input(title="SMA 4", defval=100))

sma5 = sma(close,input(title="SMA 5", defval=200))


mediaSMA= (sma1+sma2+sma3+sma4+sma5)/5

//color mediaSMA

MediaUP = mediaSMA>mediaSMA[1]
colorUP = (MediaUP ? #3CFF35 : na)

MediaDOWN = mediaSMA<mediaSMA[1]
colorDOWN =(MediaDOWN ? #FF0F03 : na)

colorN =(not MediaUP and not MediaDOWN and mediaSMA==mediaSMA[1] ? white : na )

plot(mediaSMA,title="Avarege MULTI_SMA UP", color=colorUP, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA DOWN", color=colorDOWN, style=circles, linewidth=2, transp=0)
plot(mediaSMA,title="Avarege MULTI_SMA UP NEUTRAL", color=colorN, style=circles, linewidth=2, transp=0)


//plot(sma1,color=blue,linewidth=1, style=line,transp=0,title="SMA 1")
//plot(sma2,color=yellow,linewidth=1, style=line,transp=0,title="SMA 2")
//plot(sma3,color=green,linewidth=1, style=line,transp=0,title="SMA 3")
//plot(sma4,color=purple,linewidth=1, style=line,transp=0,title="SMA 4")
//plot(sma5,color=red,linewidth=1, style=line,transp=0,title="SMA 5")


// Strategy

//BUY
comprar=close>mediaSMA and mediaSMA>mediaSMA[1] 
fechar=close<mediaSMA and mediaSMA<mediaSMA[1]
 
strategy.entry("BUY",strategy.long,when=comprar)
strategy.entry("SELL",strategy.short, when=fechar)

//SELL
vender=close<mediaSMA and mediaSMA<mediaSMA[1] 
fechar2=close>mediaSMA and mediaSMA>mediaSMA[1]

strategy.entry("SELL",strategy.short, when=vender)
strategy.entry("BUY", strategy.long,when=fechar2)



Mais.