Esta é uma estratégia de seguimento de tendências baseada em sinais cruzados de média móvel exponencial (EMA) tripla. A estratégia combina EMAs de 9 períodos, 15 períodos e 50 períodos, utilizando sinais cruzados entre EMAs de curto e médio prazo, enquanto usa a EMA de longo prazo como um filtro de tendências, juntamente com mecanismos dinâmicos de stop-loss e take-profit para gerenciamento de riscos.
A lógica central baseia-se no acompanhamento dos sinais de cruzamento entre as EMA de 9 e 15 períodos, utilizando a EMA de 50 períodos como indicador de confirmação de tendência.
Esta é uma estratégia de seguimento de tendências bem projetada com lógica clara. A combinação de múltiplas EMAs garante a confiabilidade do sinal enquanto alcança uma tendência eficaz. Os mecanismos de gerenciamento de risco embutidos fornecem estabilidade para a operação da estratégia. Através das direções de otimização sugeridas, há espaço para melhoria adicional. A estratégia é adequada para comerciantes que buscam retornos constantes, mas requer testes completos e otimização de parâmetros para características específicas do mercado antes da implementação.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover Strategy with 50 EMA Filter", overlay=true) // Customizable Inputs ema9Length = input(9, title="EMA 9 Length") ema15Length = input(15, title="EMA 15 Length") ema50Length = input(50, title="EMA 50 Length") stopLossPoints = input(100, title="Stop Loss Points") takeProfitPoints = input(200, title="Take Profit Points") // Calculate EMAs ema9 = ta.ema(close, ema9Length) ema15 = ta.ema(close, ema15Length) ema50 = ta.ema(close, ema50Length) // Detect crossovers crossover_above = ta.crossover(ema9, ema15) crossover_below = ta.crossunder(ema9, ema15) // Plot EMAs plot(ema9, color=color.blue, title="EMA 9") plot(ema15, color=color.red, title="EMA 15") // Make the 50 EMA invisible plot(ema50, color=color.new(color.white, 100), title="EMA 50", display=display.none) // Plot buy and sell signals as shapes plotshape(crossover_above and close > ema50, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(crossover_below and close < ema50, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small) // Execute trades if (crossover_above and close > ema50) strategy.entry("Buy", strategy.long) if (crossover_below and close < ema50) strategy.close("Buy") // Apply stop loss and take profit if (crossover_above and close > ema50) strategy.exit("Exit", from_entry="Buy", loss=stopLossPoints, profit=takeProfitPoints) // Alerts for notifications if (crossover_above and close > ema50) alert("EMA 9 crossed above EMA 15 with price above EMA 50 - Buy Signal", alert.freq_once_per_bar_close) if (crossover_below and close < ema50) alert("EMA 9 crossed below EMA 15 with price below EMA 50 - Sell Signal", alert.freq_once_per_bar_close)