La stratégie utilise un stop-loss dynamique pour effectuer des transactions. Le stop-loss est ajusté en temps réel en fonction des prix et des fluctuations actuels.
Logique de la transaction:
Calculer l’amplitude réelle moyenne des fluctuations sur une période donnée (par exemple 20 jours)
En position haussière, le stop loss est le prix maximum moins le ATR multiplié par
Le stop-loss est le prix le plus bas multiplié par l’ATR lorsqu’il est en baisse.
Le prix dépasse le seuil de stop-loss
Modifier la tendance lorsque le prix dépasse le point de rupture
Ajustez le stop loss en fonction de la nouvelle situation
Cette stratégie exploite pleinement l’ATR, qui met automatiquement en place des arrêts de perte, permettant un suivi dynamique.
ATR pour calculer automatiquement le stop loss
Adaptation dynamique, suivi des prix en temps réel
Arrêter les arrêts de perte en temps opportun et contrôler les risques
Les paramètres ATR doivent être testés et optimisés plusieurs fois.
Les dommages sont trop rapprochés et facilement évités.
Attention aux changements en temps réel des valeurs ATR
Cette stratégie utilise l’ATR pour régler dynamiquement le stop loss, permettant un suivi automatique. Optimiser les paramètres ATR permet d’obtenir un meilleur effet de stop loss.
/*backtest
start: 2023-01-01 00:00:00
end: 2023-09-13 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
strategy("Dhananjay Volatility stop strategy v1.0", overlay=true)
length = input(20)
mult = input(1)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? green : red, style=line, linewidth=2)
bearish = close < vstop
bullish = close > vstop
if (bullish)
strategy.entry("Buy", strategy.long, 1)
if (bearish)
strategy.entry("Sell", strategy.short, 1)