Esta estratégia é um sistema de negociação de reversão de tendência que combina médias móveis exponenciais (EMA) e índice de força relativa (RSI). Identifica pontos de reversão de tendência através dos sinais de cruzamento de EMAs de 9 períodos e 21 períodos, confirmados por avanços do RSI no nível 50. O sistema inclui um mecanismo abrangente de gerenciamento de risco com rácios de risco-recompensa fixos para controlar efetivamente os drawdowns.
A lógica central é baseada no cruzamento entre a EMA rápida (9-período) e a EMA lenta (21-período), com confirmação de impulso do RSI. O sistema gera um sinal de compra quando a EMA rápida cruza acima da EMA lenta enquanto o RSI está acima de 50, e um sinal de venda quando a EMA rápida cruza abaixo da EMA lenta enquanto o RSI está abaixo de 50.
Esta estratégia constrói um sistema robusto de seguimento de tendências, combinando cruzamento da EMA e confirmação do ímpeto do RSI. Seu mecanismo abrangente de controle de risco e interface de visualização clara tornam-no altamente prático. Embora o desempenho possa ser subóptimo em mercados laterais, as direções de otimização sugeridas oferecem potencial para melhoria adicional.
/*backtest start: 2024-11-26 00:00:00 end: 2024-12-25 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA Crossover with RSI Confirmation and Buy/Sell Signals", overlay=true) // Input for EMAs and RSI fastLength = input.int(9, title="Fast EMA Length") slowLength = input.int(21, title="Slow EMA Length") rsiLength = input.int(14, title="RSI Length") rsiLevel = input.int(50, title="RSI Level", minval=0, maxval=100) // Calculate the EMAs and RSI fastEMA = ta.ema(close, fastLength) slowEMA = ta.ema(close, slowLength) rsi = ta.rsi(close, rsiLength) // Plot the EMAs on the chart plot(fastEMA, color=color.green, linewidth=2, title="Fast EMA (9)") plot(slowEMA, color=color.red, linewidth=2, title="Slow EMA (21)") // Plot the RSI on a separate pane (below the chart) hline(rsiLevel, "RSI Level", color=color.gray) plot(rsi, color=color.blue, linewidth=2, title="RSI") // Buy condition: Fast EMA crosses above Slow EMA and RSI crosses above 50 buyCondition = ta.crossover(fastEMA, slowEMA) and rsi > rsiLevel // Sell condition: Fast EMA crosses below Slow EMA and RSI crosses below 50 sellCondition = ta.crossunder(fastEMA, slowEMA) and rsi < rsiLevel // Execute trades based on conditions if (buyCondition) strategy.entry("Buy", strategy.long) label.new(bar_index, low, "Buy", color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small) if (sellCondition) strategy.close("Buy") label.new(bar_index, high, "Sell", color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small) // Strategy exit (optional): Fixed risk-to-reward ratio (take profit and stop loss) takeProfit = input.int(2, title="Take Profit (Risk-Reward)", minval=1) stopLoss = input.int(1, title="Stop Loss (Risk-Reward)", minval=1) strategy.exit("Exit Buy", "Buy", stop=close * (1 - stopLoss / 100), limit=close * (1 + takeProfit / 100)) // Plot buy/sell arrows for visualization plotarrow(buyCondition ? 1 : na, offset=-1, colorup=color.green, maxheight=30, title="Buy Signal Arrow") plotarrow(sellCondition ? -1 : na, offset=-1, colordown=color.red, maxheight=30, title="Sell Signal Arrow")