Esta estratégia é um sistema de seguimento de tendências baseado em análise técnica, combinando médias móveis, indicador de impulso RSI e indicador de volatilidade ATR para validar oportunidades de negociação através de múltiplas confirmações de sinal.
A lógica central da estratégia inclui três componentes essenciais: Determinação da tendência: usa cruzamento de média móvel exponencial (EMA) de 100 períodos e 200 períodos para confirmar a direção da tendência do mercado. 2. Sinais de entrada: com base na confirmação da tendência, a estratégia procura padrões de engulfamento de alta como pontos de entrada específicos e usa o indicador RSI para filtragem de sinais. 3. Gestão de posição: usa ATR de 14 períodos para medir a volatilidade do mercado e define dinamicamente os níveis de stop-loss e lucro em conformidade.
Esta estratégia constrói um sistema de tendência logicamente completo, integrando múltiplos indicadores técnicos. As vantagens da estratégia estão na validação de múltiplos sinais e na gestão dinâmica de riscos, mas também deve ser dada atenção ao tratamento de atrasos de tendência e falhas. Através da adição de confirmação de volume e otimização de configurações de parâmetros, a estratégia ainda tem espaço para melhorias significativas.
/*backtest start: 2024-11-12 00:00:00 end: 2024-12-11 08:00:00 period: 3h basePeriod: 3h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bullish Engulfing with EMA Crossover and ATR-Based SL/TP with RSI Filter", overlay=true) // Inputs for moving averages short_ema_length = input.int(100, title="Short EMA Length") long_ema_length = input.int(200, title="Long EMA Length") // RSI Input rsi_length = input.int(14, title="RSI Length") rsi_threshold = input.float(50, title="RSI Threshold") // Calculate the Exponential Moving Averages (EMAs) short_ema = ta.ema(close, short_ema_length) long_ema = ta.ema(close, long_ema_length) // Plot EMAs on the chart plot(short_ema, color=color.blue, title="100 EMA") plot(long_ema, color=color.red, title="200 EMA") // Calculate RSI rsi_value = ta.rsi(close, rsi_length) // Plot RSI on a separate panel hline(rsi_threshold, "RSI Threshold", color=color.gray) plot(rsi_value, color=color.purple, title="RSI") // Bullish Engulfing Pattern bullish_engulfing = close > open[1] and open < close[1] and close > open // Define strategy entry condition with RSI filter long_condition = bullish_engulfing and short_ema > long_ema and rsi_value > rsi_threshold // Plot a buy signal when conditions are met plotshape(long_condition, style=shape.labelup, location=location.belowbar, color=color.green, title="Buy Signal", text="BUY") // ATR Calculation atr_length = input.int(14, title="ATR Length") atr_value = ta.atr(atr_length) // Define Stop Loss and Take Profit as levels stop_loss_level = 1.1 * atr_value take_profit_level = 2.0 * atr_value // Execute Strategy Entry if (long_condition) strategy.entry("Buy", strategy.long) // Adjust SL and TP levels using the entry price if (strategy.position_size > 0) // Calculate SL and TP relative to the entry price stop_price = strategy.position_avg_price - stop_loss_level limit_price = strategy.position_avg_price + take_profit_level // Exit strategy with SL and TP strategy.exit("Exit", from_entry="Buy", stop=stop_price, limit=limit_price)