Esta estratégia é um sistema de negociação quantitativo baseado no cruzamento de médias móveis exponenciais duplas (EMA). Utiliza uma EMA de curto prazo (14 períodos) e uma EMA de longo prazo (100 períodos) para capturar pontos de transição da tendência do mercado, determinando o tempo de entrada através da interseção de médias móveis de curto e longo prazo.
A lógica central da estratégia é baseada em mudanças de momento nas tendências de preços. A EMA de curto prazo é mais sensível às mudanças de preço, enquanto a EMA de longo prazo filtra melhor o ruído do mercado e reflete a tendência primária. Quando a média móvel de curto prazo cruza acima da média móvel de longo prazo, ela indica o fortalecimento da dinâmica de curto prazo e uma possível tendência de alta; quando a média móvel de curto prazo cruza abaixo da média móvel de longo prazo, ela sugere um enfraquecimento da dinâmica e uma potencial tendência de queda. A estratégia usa as funções ta.crossover e ta.crossunder para capturar com precisão esses pontos de cruzamento e executar operações de posição em momentos apropriados.
A Estratégia Quantitativa Dynamic EMA Trend Crossover Entry é um sistema clássico e prático de seguimento de tendências. Combinando médias móveis exponenciais de curto e longo prazo, a estratégia capta efetivamente oportunidades de transição de tendências de mercado. Embora existam riscos de atraso e sinais falsos, resultados comerciais estáveis ainda podem ser alcançados através de otimização de parâmetros apropriados e medidas de controle de risco. A simplicidade e escalabilidade da estratégia tornam-na uma excelente estrutura de base para a negociação quantitativa.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-11 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy", overlay=true) // Input for EMAs shortEmaLength = input(14, title="Short EMA Length") longEmaLength = input(100, title="Long EMA Length") // Calculate EMAs shortEma = ta.ema(close, shortEmaLength) longEma = ta.ema(close, longEmaLength) // Plot EMAs plot(shortEma, color=color.blue, title="9 EMA") plot(longEma, color=color.red, title="100 EMA") // Historical Signal Tracking var float lastBuyPrice = na var float lastSellPrice = na // Buy and Sell Signals buySignal = ta.crossover(shortEma, longEma) sellSignal = ta.crossunder(shortEma, longEma) // Track last buy and sell prices if (buySignal) lastBuyPrice := close if (sellSignal) lastSellPrice := close // Plot buy and sell signals on the chart plotshape(buySignal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(sellSignal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Logic if (buySignal) strategy.entry("Buy", strategy.long) if (sellSignal) strategy.close("Buy")