Esta estratégia usa o cruzamento de duas médias móveis exponenciais (EMA) como o principal sinal de negociação, combinado com o índice de força relativa (RSI), a divergência de convergência da média móvel (MACD) e a faixa verdadeira média (ATR) como indicadores auxiliares para melhorar a confiabilidade dos sinais de negociação. Quando a EMA rápida cruza acima da EMA lenta, o RSI está abaixo de 70, a linha MACD está acima da linha de sinal, e o valor ATR aumenta em mais de 10% em relação ao período anterior, é gerado um sinal longo; inversamente, quando a EMA rápida cruza abaixo da EMA lenta, o RSI está acima de 30, a linha MACD está abaixo da linha de sinal, e o valor ATR aumenta em mais de 10% em comparação com o período anterior, é gerado um sinal curto. A estratégia também estabelece um ponto de stop-loss e assume o controle de lucro em relação ao risco.
Esta estratégia gera sinais de negociação relativamente confiáveis, combinando vários indicadores técnicos, como EMA, RSI, MACD e ATR, enquanto controla o risco, definindo pontos fixos de stop loss e take profit. Embora a estratégia ainda tenha algumas deficiências, pode ser melhorada através de uma otimização adicional, como a introdução de mais indicadores, otimização de stop loss e take profit, e a combinação de análise fundamental.
/*backtest start: 2024-03-01 00:00:00 end: 2024-03-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Enhanced EMA Crossover Strategy", overlay=true) // Indicators ema_fast = ema(close, 8) ema_slow = ema(close, 14) rsi = rsi(close, 14) // Correcting the MACD variable definitions [macd_line, signal_line, _] = macd(close, 12, 26, 9) atr_value = atr(14) // Entry conditions with additional filters long_condition = crossover(ema_fast, ema_slow) and rsi < 70 and (macd_line > signal_line) and atr_value > atr_value[1] * 1.1 short_condition = crossunder(ema_fast, ema_slow) and rsi > 30 and (macd_line < signal_line) and atr_value > atr_value[1] * 1.1 // Adding debug information plotshape(series=long_condition, color=color.green, location=location.belowbar, style=shape.xcross, title="Long Signal") plotshape(series=short_condition, color=color.red, location=location.abovebar, style=shape.xcross, title="Short Signal") // Risk management based on a fixed number of points stop_loss_points = 100 take_profit_points = 200 // Order execution if (long_condition) strategy.entry("Long", strategy.long, comment="Long Entry") strategy.exit("Exit Long", "Long", stop=close - stop_loss_points, limit=close + take_profit_points) if (short_condition) strategy.entry("Short", strategy.short, comment="Short Entry") strategy.exit("Exit Short", "Short", stop=close + stop_loss_points, limit=close - take_profit_points) // Plotting EMAs for reference plot(ema_fast, color=color.blue, title="Fast EMA") plot(ema_slow, color=color.orange, title="Slow EMA")