
La stratégie de suivi dynamique multifonctionnel est une stratégie qui utilise des moyennes dynamiques pour suivre la tendance des prix. Elle permet de déterminer la tendance actuelle en calculant des moyennes mobiles des prix les plus élevés et les plus bas d’une certaine période, et de réaliser un stop-loss dynamique en combinaison avec l’ATR.
La stratégie commence par calculer la moyenne mobile des prix les plus élevés et les plus bas d’une période donnée (par défaut 200 jours) et prend le milieu des deux comme ligne de référence. Ensuite, elle calcule la déviation du prix par rapport à la ligne de référence. Elle est considérée comme étant en hausse lorsque le prix est supérieur à la ligne de référence avec un ATR (par défaut 0,5 fois l’ATR des 10 jours) et est considérée comme étant en baisse lorsque le prix est inférieur à la ligne de référence avec un ATR.
Un signal d’exit est généré lorsque le prix revient à la ligne de référence. De plus, les variations dynamiques de l’ATR peuvent prolonger progressivement les arrêts de perte avec une tendance majeure, réduisant ainsi la sur-fréquence des transactions causées par des fluctuations non tendancielles.
Il est possible de réduire la sensibilité au stop loss en ajustant le paramètre ATR de manière appropriée ou en ajoutant d’autres indicateurs pour filtrer le moment de la transaction avec une certaine certitude. Il est également possible d’évaluer l’appétit au risque en combinaison avec la tendance du grand marché et de choisir de ne faire plus que dans le cas d’un grand marché.
La stratégie de suivi dynamique multifonctionnel est une stratégie de suivi de tendance simple et pratique. Elle détermine la direction de la tendance à l’aide de moyennes dynamiques et utilise l’ATR pour réaliser des arrêts de perte dynamiques, ce qui permet de contrôler efficacement les risques. La stratégie est adaptée à un environnement de marché où la tendance est évidente.
/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Trend Following Long Only Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)
lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(0.5, type=input.float, minval=0.5, title="ATR Multiplier")
vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)
l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = ema(price > upper ? 1 : (price < lower ? -1 : 0), 3)
c = trend < 0 ? upper : lower
pcenter = plot(center, transp=100)
pclose = plot(close, transp=100)
pc = plot(c, transp=100)
buy_signal = crossover(trend, 0.0)
sell_signal = crossunder(trend, 0.0)
strategy.entry("Buy", strategy.long, when=buy_signal)
strategy.close("Buy", when=sell_signal)
bgcolor(trend >= 0 ? color.green : color.red, transp=95)
fill(pc, pclose, color=trend >= 0 ? color.green : color.red)