Stratégie de stop loss mobile ATR basée sur l'indicateur UT Bot


Date de création: 2024-03-11 11:17:33 Dernière modification: 2024-03-11 11:17:33
Copier: 0 Nombre de clics: 2014
1
Suivre
1617
Abonnés

Stratégie de stop loss mobile ATR basée sur l’indicateur UT Bot

Aperçu

La stratégie est basée sur l’indicateur UT Bot développé par QuantNomad, combiné à l’idée d’un stop-loss mobile. Le code source a été écrit par @Yo_adriiiiaan, modifié par @HPotter. La stratégie sera utilisée en collaboration avec les Smart Money Concepts de LuxAlgo. La stratégie est actuellement en phase de test.

Principe de stratégie

Les principaux principes de cette stratégie sont les suivants:

  1. Il est préférable d’effectuer des transactions multiples lorsque le prix de clôture est supérieur à la moyenne mobile simple à 50 jours.
  2. Pour les positions multiples, définissez un prix de stop-loss mobile. Le prix de stop-loss mobile est de 80% (de 1 à 20%) du prix de clôture actuel. Le prix de stop-loss mobile augmente avec l’augmentation du prix, mais ne baisse pas, ce qui sert à protéger les bénéfices.
  3. Pour les positions à découvert, définissez également un prix d’arrêt mobile. Le prix d’arrêt mobile est de 120% du prix de clôture actuel. Le prix d’arrêt mobile baisse avec la baisse du prix, mais ne monte pas.
  4. Utilisation de l’ATR comme référence pour le stop-loss mobile. La méthode de calcul du prix d’arrêt mobile de l’ATR est la suivante: lorsque vous vous déplacez vers le haut, prenez le prix d’arrêt mobile de l’ATR précédent et le prix de clôture actuel.*La valeur la plus grande de l’un ou de l’autre; lorsque vous déplacez vers le bas, prenez l’ATR précédent, déplacez le prix d’arrêt et le prix de clôture actuel + ATR*Key Value) est la plus petite des deux. Key Value est le paramètre que l’utilisateur définit pour régler la sensibilité de l’arrêt mobile.
  5. Déterminer la direction de la position actuelle en fonction de la rupture du prix d’arrêt mobile de l’ATR. Maintenez une position à plusieurs têtes lorsque le prix est supérieur à la rupture du prix d’arrêt mobile de l’ATR. Maintenez une position à vide lorsque le prix est inférieur à la rupture du prix d’arrêt mobile de l’ATR.

Analyse des avantages

  1. Le paramètre de stop-loss mobile protège très bien les bénéfices, permettant à la stratégie d’obtenir plus de bénéfices dans des conditions de tendance.
  2. Le stop loss est réglé sur les positions à plusieurs têtes et à vide, ce qui permet de s’adapter à différentes situations.
  3. En utilisant l’ATR comme base de référence pour les arrêts, il est possible d’ajuster dynamiquement la position des arrêts, de manière plus flexible et efficace.
  4. Les paramètres Key Value sont fournis pour l’optimisation par l’utilisateur et peuvent être ajustés en fonction des variétés et des cycles, améliorant ainsi l’adaptabilité.

Analyse des risques

  1. En cas de choc, les arrêts fréquents peuvent entraîner une surcharge de transactions, augmenter les frais de traitement et réduire les bénéfices.
  2. La méthode de stop-loss mobile à pourcentage fixe est relativement simple et peut ne pas très bien résister aux fluctuations de prix dans certaines situations.
  3. La stratégie ne prend en compte que les stop-loss mobiles, sans mettre en place de stop-loss mobiles, ce qui peut entraîner la perte de certaines opportunités de profit.
  4. Le choix des paramètres a un impact significatif sur la performance de la stratégie, et les paramètres incorrects peuvent entraîner un risque de retrait plus élevé.

Direction d’optimisation

  1. On peut envisager d’optimiser les conditions d’entrée en combinaison avec d’autres indicateurs ou conditions, telles que le volume de transactions, la volatilité, etc., afin d’améliorer la fiabilité du signal.
  2. Des méthodes plus complexes et plus efficaces peuvent être explorées pour le calcul des pertes mobiles, telles que l’utilisation de pertes parallèles, de pertes en pourcentage dynamiques, etc.
  3. Des mécanismes d’arrêt mobile peuvent être ajoutés, par exemple en réglant les arrêts dynamiques en fonction de l’ATR ou du pourcentage, pour mieux bloquer les bénéfices.
  4. Il est possible d’optimiser les paramètres pour les différentes variétés et les différents cycles afin de trouver la combinaison de paramètres la plus appropriée. Il est également possible d’ajuster dynamiquement les paramètres en fonction des changements de l’état du marché.

Résumer

La stratégie, basée sur l’indicateur UT Bot, ajoute une logique de stop loss mobile, qui peut jouer un rôle dans la protection des bénéfices dans des situations de tendance. En outre, la stratégie définit des stop loss séparément pour les positions à plusieurs têtes et à tête vide.

A l’avenir, il est possible d’améliorer la stratégie en optimisant les conditions d’entrée, en explorant des méthodes de stop-loss mobiles plus complexes, en ajoutant des mécanismes de stop-loss mobiles et en optimisant les paramètres pour différentes variétés et cycles afin d’obtenir des gains plus solides. Dans l’ensemble, l’idée de la stratégie est simple et facile à comprendre et à mettre en œuvre, mais il y a encore de la place pour une optimisation supplémentaire, qui mérite d’être explorée et améliorée.

Code source de la stratégie
/*backtest
start: 2023-03-05 00:00:00
end: 2024-03-10 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trailingstop", overlay=true)

if close > sma(close, 50)
    strategy.entry("long", strategy.long)

// Trailing stop loss for long positions
Trailperc = 0.20
price_stop_long = 0.0

if (strategy.position_size > 0)
    stopValue = close * (1 - Trailperc)
    price_stop_long := max(stopValue, price_stop_long[1])
else
    price_stop_long := 0

if (strategy.position_size > 0)
    strategy.exit(id="stoploss_long", stop=price_stop_long)

// Trailing stop loss for short positions
Trailperc_short = 0.20
price_stop_short = 0.0

if (strategy.position_size < 0)
    stopValue_short = close * (1 + Trailperc_short)
    price_stop_short := min(stopValue_short, price_stop_short[1])
else
    price_stop_short := 0

if (strategy.position_size < 0)
    strategy.exit(id="stoploss_short", stop=price_stop_short)

// ATR Trailing Stop for visualization
keyvalue = input(3, title="Key Value. 'This changes the sensitivity'", step=0.5)
atrperiod = input(10, title="ATR Period")
xATR = atr(atrperiod)
nLoss = keyvalue * xATR

xATRTrailingStop = 0.0
xATRTrailingStop := iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), max(nz(xATRTrailingStop[1]), close - nLoss),
   iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), min(nz(xATRTrailingStop[1]), close + nLoss),
   iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))

pos = 0  
pos :=   iff(close[1] < nz(xATRTrailingStop[1], 0) and close > nz(xATRTrailingStop[1], 0), 1,
   iff(close[1] > nz(xATRTrailingStop[1], 0) and close < nz(xATRTrailingStop[1], 0), -1, nz(pos[1], 0)))

xcolor = pos == -1 ? color.red: pos == 1 ? color.green : color.blue

plot(xATRTrailingStop, color = xcolor, title = "Trailing Stop")