Esta estratégia determina as tendências do mercado através do cálculo das situações de cruzamento entre a média móvel de 9 dias (MA), a MA de 20 dias e a MA de 200 dias.
Esta estratégia avalia principalmente as tendências dos preços através do cálculo das relações entre a MA de 9 dias, a MA de 20 dias e a MA de 200 dias.
Em primeiro lugar, ele calcula a MA de 9 dias e a MA de 20 dias. Se a MA de 9 dias cruzar acima da MA de 20 dias, é um sinal de compra. Se a MA de 9 dias cruzar abaixo da MA de 20 dias, é um sinal de venda. Esta é a regra de julgamento mais básica do cruzamento de MA duplo.
Em segundo lugar, calcula a MA de 200 dias como um indicador para julgar tendências de longo prazo. Se a MA de 20 dias cruzar acima da MA de 200 dias, sinaliza uma visão de alta a longo prazo. Se a MA de 20 dias cruzar abaixo da MA de 200 dias, sinaliza uma visão de baixa a longo prazo.
Finalmente, combina as relações entre o MA de 9 dias, o MA de 20 dias e o MA de 200 dias para determinar pontos de entrada e saída específicos.
Ao calcular as situações de cruzamento entre múltiplos MAs, esta estratégia faz pleno uso da capacidade de acompanhamento de tendências dos MAs para determinar eficazmente os movimentos de preços a curto e a longo prazo, orientando assim as operações de compra e venda.
A utilização do crossover de MA dupla pode capturar eficazmente as tendências de preços a médio e curto prazo e gerar lucros.
A adição de um julgamento de MA de 200 dias evita longas durante tendências de baixa de longo prazo, reduzindo as perdas.
A combinação de múltiplas relações MA torna os sinais mais confiáveis e evita negociações ineficazes.
Os sinais de cruzamento MA são claros e fáceis de avaliar, adequados para a prática manual de negociação.
O código simples e limpo é fácil de entender e implementar, bom para iniciantes em quant trading.
Flexível de otimizar, como ajustar os períodos de MA ou adicionar outros indicadores.
As estratégias de MA são sensíveis ao ajuste de parâmetros, diferentes períodos de MA podem produzir resultados muito diferentes.
O cruzamento de MA dupla julga apenas tendências de médio curto prazo, podendo perder grandes tendências de longo prazo.
Os sinais cruzados podem atrasar e não podem evitar completamente a perda de negócios.
As negociações frequentes aumentam os custos de comissão e de deslizamento, reduzindo o potencial de lucro real.
O código demasiado simples pode ter um desempenho inferior na negociação ao vivo, exigindo otimização.
Teste diferentes combinações de períodos de MA para encontrar os parâmetros ideais.
Adicionar estratégias de stop loss para controlar estritamente o montante da perda por negociação.
Considerar o dimensionamento das posições de acordo com a evolução das condições de mercado.
Otimizar os sinais de entrada, como adicionar a confirmação do Momentum.
Otimizar as saídas estabelecendo níveis razoáveis de lucro.
Adicione mais indicadores para julgar tendências e probabilidades de retração.
Adicione modelos de aprendizagem de máquina para descobrir lógica de negociação mais complexa.
Esta estratégia combina as idéias clássicas de cruzamento duplo de MA e julgamento de tendência de MA de longo prazo para guiar as decisões de negociação usando características de tendência de MA. Tem lógica simples e é fácil de entender e implementar, bom para iniciantes em negociação quantitativa. No entanto, é sensível a parâmetros e tem problemas atrasados que exigem otimização e melhoria adicionais.
/*backtest start: 2023-10-29 00:00:00 end: 2023-11-05 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=1 strategy("Dieyson Swingtrade EMA 20+200 and bar & line color", overlay=true) //bar color rules Dgbar = close>close[1] and ema(close,20)>ema(close[1],20) Drbar = close<close[1] and ema(close,20)<ema(close[1],20) //Barcolors barcolor(Dgbar ? green : na) barcolor(Drbar ? red : na) //MM09 Colorful MMgreen9 = ema(close,9)>ema(close[1],9) and ema(close,20)>ema(close[1],20) MMred9 = ema(close,9)<ema(close[1],9) and ema(close,9)<ema(close[1],9) col8 = (MMgreen9 ? color(green,0) : na) col28 = (MMred9 ? color(red,0) : na) col38 = (not MMgreen9 and not MMred9 ? color(black,0) : na) //plot(ema(close,9), color=col8, style=line, linewidth=1) //plot(ema(close,9), color=col28, style=line, linewidth=1) //plot(ema(close,9), color=col38, style=line, linewidth=1) //MM20 Colorful MMgreen = ema(close,20)>ema(close[1],20) MMred = ema(close,20)<ema(close[1],20) col = (MMgreen ? color(green,0) : na) col2 = (MMred ? color(red,0) : na) col3 = (not MMgreen and not MMred ? color(yellow,0) : na) col4 = color(black,0) plot(ema(close,20), color=col, style=line, linewidth=2) plot(ema(close,20), color=col2, style=line, linewidth=2) plot(ema(close,20), color=col3, style=line, linewidth=2) plot(ema(close,200), color=col4, style=line, linewidth=3) //plot(vwap(15), color(white,0), style=line, linewidth=3) //plot(cross(ema(close,9), ema(close,20)) ? ema(close,9) : na, style = cross,color=fuchsia, transp=0, linewidth = 4) plot(cross(ema(close,20), ema(close,200)) ? ema(close,20) : na, style = cross,color=fuchsia, transp=0, linewidth = 4) c = crossover(ema(close,9), ema(close,20)) and ema(close,9) > ema(close,20) // c = crossover(close, ema (close,9) and ema(close,9) > ema(close[1],9)) v = crossunder(close, ema (close,9)) strategy.entry("COMPRA", strategy.long,when=c) strategy.entry("VENDA", strategy.short,when=v)