Esta estratégia gera sinais de negociação com base na diferença entre duas médias móveis com diferentes prazos. Ele calcula uma SMA mais rápida e uma SMA mais lenta, e produz sinais de compra quando a SMA rápida cruza acima da SMA lenta de baixo, e sinais de venda quando a SMA rápida cruza abaixo da SMA lenta de cima.
A lógica central desta estratégia é calcular duas médias móveis, SMA ((len1) e SMA ((len2), e sua diferença dif. Aqui len1 representa o período do MA mais rápido e len2 o MA mais lento. O MA mais rápido responde mais rapidamente às mudanças de preço, enquanto o MA mais lento reflete melhor a tendência de longo prazo.
Quando o MA mais rápido cruza acima do MA mais lento de baixo, ele indica que o preço de curto prazo começou a subir acima da tendência de longo prazo e, portanto, uma entrada longa pode ser tomada.
Para filtrar sinais falsos, a estratégia também usa o out3 como linha de sinal de negociação, que é a diferença suavizada entre o MA mais rápido e o ponto médio do preço.
Especificamente, a variável longa mantém valores positivos quando out3 cruza acima de dif, dando sinais de compra. A variável curta mantém valores negativos quando out3 cruza abaixo de dif, gerando sinais de venda.
Esta é uma estratégia muito simples e intuitiva para seguir tendências. Ele usa o cruzamento de dois MA de períodos diferentes para identificar pontos de reversão da tendência, o que pode ser mais confiável do que um único sistema MA. O filtro da linha de sinal de negociação também ajuda a evitar sinais falsos em mercados agitados até certo ponto.
Em comparação com o stop loss, ele adota uma mentalidade de tendência para maximizar os lucros durante tendências mais longas sem ser parado.
Esta estratégia tem poucos parâmetros e é fácil de entender e ajustar, tornando-a adequada como uma estratégia de negociação algo para iniciantes.
O maior risco desta estratégia são os períodos de MA incorretamente escolhidos, resultando em maus sinais. Se o len1 for muito longo, os movimentos iniciais da tendência serão perdidos; se for muito curto, os whipssaws aumentam. Se o len2 for muito longo, os ajustes de posição serão atrasados; se for muito curto, ele pode ser perturbado pelo ruído do mercado.
Os parâmetros podem ser otimizados tentando diferentes valores de len1 e len2 para encontrar a melhor combinação.
As estratégias de seguimento de tendências devem também controlar as perdas em operações individuais, através de stop loss ou dimensionamento de posição.
A estratégia de cruzamento de MA dupla é uma tendência por excelência após o representante. Seu sistema de cruzamento de MA dupla simples fornece sinais estáveis, enquanto o filtro ajuda a evitar ruído. Com períodos de MA otimizados, ele pode alcançar bom desempenho. A estratégia serve bem como uma estratégia de negociação de algo para um iniciante aprender.
/*backtest start: 2022-10-10 00:00:00 end: 2023-10-16 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //by afrazium //@version=3 strategy(title="SMA Diff strat", shorttitle="SMAD STR", overlay=false, initial_capital=1, precision=8, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.1, calc_on_order_fills= false, calc_on_every_tick=false, pyramiding=0) len1 = input(50, minval=1, title="Length1"), len2 = input(100, minval=1, title="Length2"), smo = input(1, minval=1, title="Smoothing") src = input(ohlc4, title="Source") mid = src expr1 = sma(src, len1), expr2 = sma(src, len2) dif = (expr1 - expr2), out1 = (mid - expr1), out2 = (mid - expr2), out3 = sma(out1, smo) long = crossover(out3, dif) ? out3 : na, short = crossunder(out3, dif) ? out3 : na plot(out3, color=black, linewidth=2), hline(0) clr = out2 >= out1 ? lime : red, plot(dif, color=clr, linewidth=2) plot(long, title = 'Crossover', color = green, style = circles, linewidth=4), plot(short, title = 'Crossunder', color = red, style = circles, linewidth=4) strategy.entry("buy", strategy.long, when=crossover(out1, dif)) strategy.close("buy", when=crossunder(out1, dif)) //plot(out2, color=blue, linewidth=2) //A = plot(mid/10, color=red, linewidth=1, transp=100), B = plot(mid/20, color=red, linewidth=1, transp=100) //C = plot(-mid/10, color=green, linewidth=1, transp=100), D = plot(-mid/20, color=green, linewidth=1, transp=100) //fill(A, B, color=red), fill(C, D, color=green)