
La stratégie est un système de suivi des tendances basé sur une moyenne mobile simple à 200 cycles (MA200) combinant des indicateurs techniques tels que le RSI, l’indice de tendance moyen (ADX) et l’amplitude réelle moyenne (ATR) pour former un cadre complet de décision de négociation. La stratégie permet une maîtrise efficace du risque grâce à la définition dynamique d’objectifs de stop-loss et de profit.
La logique centrale de la stratégie repose sur les points clés suivants:
La stratégie a été conçue en mettant l’accent sur le contrôle des risques et en améliorant la fiabilité des transactions grâce à des mécanismes d’arrêt dynamique et de confirmation des signaux. Bien qu’il y ait de la place pour l’optimisation, dans l’ensemble, c’est une stratégie de négociation qui présente une valeur pratique.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-18 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"TRB_USDT"}]
*/
//@version=5
strategy("BTC/USD MA200 with RSI, ADX, ATR", overlay=true)
// Definition of the main moving average
ma_trend = ta.sma(close, 200) // Main trend filter
// Definition of RSI and ADX
rsi = ta.rsi(close, 14)
[diplus, diminus, adx] = ta.dmi(14, 14) // Correction for ADX
// Definition of ATR for Stop Loss and Take Profit
atr = ta.atr(14)
// Conditions for crossing of the MA200
crossover_condition = ta.crossover(close, ma_trend)
crossunder_condition = ta.crossunder(close, ma_trend)
// Trend confirmation after 2 bars
buy_confirmation = crossover_condition[2] and (rsi > 40) and (adx > 20) and close > ma_trend
sell_confirmation = crossunder_condition[2] and (rsi < 60) and (adx > 20) and close < ma_trend
// Definition of Stop Loss and Take Profit
take_profit = close * 1.02 // 2% profit
stop_loss = close - (1.5 * atr) // Dynamic stop based on ATR
// Execution of orders
if (buy_confirmation and strategy.opentrades == 0)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=take_profit, stop=stop_loss)
label.new(bar_index, high, "BUY", style=label.style_label_down, color=color.green, textcolor=color.white, size=size.normal)
if (sell_confirmation)
if (strategy.opentrades > 0)
strategy.close("Buy")
label.new(bar_index, low, "SELL", style=label.style_label_up, color=color.red, textcolor=color.white, size=size.normal)
// Draw the main moving average
plot(ma_trend, color=color.purple, title="MA 200")