Esta estratégia identifica as rupturas da tendência através do cálculo de médias móveis em diferentes prazos, permitindo uma tendência de baixo risco.
Entre em posição longa quando a EMA de 10 dias cruza acima da EMA de 200 dias e a EMA de 20 dias cruza acima da EMA de 50 dias. Entre em posição curta quando a EMA de 10 dias cruza abaixo da EMA de 200 dias e a EMA de 20 dias cruza abaixo da EMA de 50 dias.
A estratégia primeiro calcula quatro médias móveis exponenciais (EMA) nos períodos de 10 dias, 20 dias, 50 dias e 200 dias. A EMA de 10 dias representa a tendência de curto prazo, 20 dias intermediário, 50 dias de médio prazo e 200 dias de longo prazo. Quando a EMA mais curta cruza a EMA mais longa, ela sinaliza uma reversão potencial da tendência. No entanto, usar apenas um cruzamento da EMA produz sinais falsos facilmente.
Para melhorar a fiabilidade, a estratégia aplica duas camadas de filtragem: os indicadores cruzados da EMA 10/200 indicam tendências de longo/curto prazo, enquanto os indicadores cruzados da EMA 20/50 indicam tendências de médio/médio prazo.
A filtragem dupla da EMA reduz significativamente os falsos sinais, gerando entradas de negociação mais fiáveis.
As melhorias incluem relaxamento dos limiares de ruptura, adição de confirmação de volume e otimização de parâmetros.
Em resumo, o núcleo duplo da média móvel complementado com otimização, volume e mais indicadores pode construir um sistema de rastreamento de tendências estável.
Uma estratégia simples, mas prática, de seguir tendências. O núcleo EMA duplo filtra falhas de forma confiável para sinais de qualidade. A fácil parametrização também facilita a adoção. Mais melhorias na gestão de riscos e otimização podem aumentar o desempenho.
/*backtest start: 2023-12-12 00:00:00 end: 2023-12-13 02:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("Advancing Our Basic Strategy", overlay=true) ema10 = ema(close, 10) ema20 = ema(close, 20) ema50 = ema(close, 50) ema200 = ema(close, 200) long = ema10 > ema200 and ema20 > ema50 short = ema10 < ema200 and ema20 < ema50 longcondition = long and long[10] and not long[11] shortcondition = short and short[10] and not short[11] closelong = ema10 < ema200 or ema20 < ema50 and not long[11] closeshort = ema10 > ema200 or ema20 > ema50 and not short[11] plot(ema10, title="10", color=green, linewidth=2) plot(ema20, title="20", color=red, linewidth=3) plot(ema50, title="50", color=purple, linewidth=2) plot(ema200, title="200", color=blue, linewidth=3) testPeriodStart = timestamp(2018,8,1,0,0) testPeriodStop = timestamp(2038,8,30,0,0) if time >= testPeriodStart and time <= testPeriodStop strategy.entry("Long", strategy.long, 1, when=longcondition) strategy.entry("Short", strategy.short, 1, when=shortcondition) strategy.close("Long", when = closelong) strategy.close("Short", when = closeshort)