
La stratégie est un système de trading de suivi de tendance qui combine des signaux de croisement de moyennes mobiles avec la gestion des risques ATR. La stratégie capture les tendances du marché grâce au croisement de moyennes rapides et lentes, et utilise l’indicateur ATR pour ajuster dynamiquement les niveaux de stop loss et de profit afin d’obtenir un contrôle précis des risques de trading. La stratégie comprend également un module de gestion de l’argent qui ajuste automatiquement la taille des positions en fonction de la valeur nette du compte et des paramètres de risque prédéfinis.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
Cette stratégie capture les tendances grâce au croisement des moyennes mobiles et les combine avec le contrôle dynamique des risques ATR pour obtenir un système de trading complet de suivi des tendances. Les points forts de la stratégie résident dans son adaptabilité et ses capacités de contrôle des risques, mais elle peut être peu performante sur des marchés volatils. Les performances globales de la stratégie peuvent être améliorées en ajoutant des filtres de tendance et en optimisant le système de gestion de l’argent.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © davisash666
//@version=5
strategy("Trend-Following Strategy", overlay=true)
// Inputs for strategy parameters
timeframe = input.timeframe("D", "Timeframe")
risk_tolerance = input.float(2.0, "Risk Tolerance (%)", step=0.1) / 100
capital_allocation = input.float(200, "Capital Allocation (%)", step=1) / 100
// Technical indicators (used to emulate machine learning)
ma_length_fast = input.int(10, "Fast MA Length")
ma_length_slow = input.int(50, "Slow MA Length")
atr_length = input.int(14, "ATR Length")
atr_multiplier = input.float(1.5, "ATR Multiplier")
// Calculations
fast_ma = ta.sma(close, ma_length_fast)
slow_ma = ta.sma(close, ma_length_slow)
atr = ta.atr(atr_length)
// Entry and exit conditions
long_condition = ta.crossover(fast_ma, slow_ma)
short_condition = ta.crossunder(fast_ma, slow_ma)
// Risk management
stop_loss_long = close - (atr * atr_multiplier)
stop_loss_short = close + (atr * atr_multiplier)
take_profit_long = close + (atr * atr_multiplier)
take_profit_short = close - (atr * atr_multiplier)
// Capital allocation
position_size = strategy.equity * capital_allocation
// Execute trades
if long_condition
strategy.entry("Long", strategy.long, qty=position_size / close)
strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long)
if short_condition
strategy.entry("Short", strategy.short, qty=position_size / close)
strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short)
// Plotting for visualization
plot(fast_ma, color=color.green, title="Fast MA")
plot(slow_ma, color=color.red, title="Slow MA")
plot(stop_loss_long, color=color.blue, title="Stop Loss (Long)", linewidth=1, style=plot.style_cross)
plot(take_profit_long, color=color.purple, title="Take Profit (Long)", linewidth=1, style=plot.style_cross)