
Cette stratégie utilise le croisement de deux indices, les moyennes mobiles ((EMA) comme signal de trading principal, tout en combinant l’indice relativement faible ((RSI)), l’indice de dispersion des moyennes mobiles ((MACD) et l’amplitude réelle moyenne ((ATR) comme indicateurs auxiliaires pour améliorer la fiabilité du signal de trading. La stratégie crée un signal plus fort lorsque l’EMA est lente et que le RSI est inférieur à 70 et que la ligne MACD est au-dessus du signal et que l’ATR est en hausse de plus de 10% par rapport au cycle précédent; à l’inverse, la stratégie crée un signal vide lorsque l’EMA est lente et que le RSI est supérieur à 30 et que la ligne MACD est au-dessous du signal et que l’ATR est en hausse de plus de 10% par rapport au cycle précédent.
La stratégie produit des signaux de trading plus fiables en combinant plusieurs indicateurs techniques tels que l’EMA, le RSI, le MACD et l’ATR, tout en contrôlant le risque en définissant un stop-loss à un nombre de points fixe. Bien que la stratégie présente des lacunes, elle peut être améliorée par des optimisations et des améliorations supplémentaires, telles que l’introduction de plus d’indicateurs, l’optimisation du stop-loss et la combinaison d’analyses fondamentales.
/*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")