Stratégie de suivi des tendances ATR


Date de création: 2023-09-21 15:13:47 Dernière modification: 2023-09-21 15:13:47
Copier: 0 Nombre de clics: 770
1
Suivre
1617
Abonnés

Aperçu

La stratégie utilise l’amplitude réelle moyenne (ATR) pour capturer les tendances des prix et définit des points de perte avec l’ATR pour suivre les tendances.

Principe de stratégie

  1. Calculer la valeur de l’ATR

  2. Le stop loss est déterminé en fonction de la valeur ATR.

  3. Lorsque le prix atteint la limite de rupture, il est préférable d’effectuer un dégagement.

  4. Le blocage des bénéfices par l’ajustement dynamique des stop-loss.

Avantages stratégiques

  • L’ATR s’adapte automatiquement à l’arrêt sans intervention humaine
  • Une stratégie simple, intuitive et facile à mettre en œuvre
  • Il est possible d’éviter la prise et d’arrêter les dommages en temps opportun.
  • Une tendance à la rentabilité
  • La fréquence des transactions peut être contrôlée en ajustant les paramètres ATR

Risque stratégique

  • Les paramètres ATR mal définis peuvent entraîner des paramètres trop Loose ou Tight
  • La fin d’une tendance ne peut pas être identifiée efficacement
  • Il y a un retard temporel.
  • Une partie des bénéfices peut être due à des pertes inversées

Direction d’optimisation

  • Optimiser les paramètres de cycle ATR
  • Tester différents ATR comme distance de rupture
  • Une inversion de tendance identifiée par d’autres indicateurs
  • Essayez d’optimiser les paramètres de l’apprentissage automatique
  • Considérez des stratégies supplémentaires pour arrêter la grippe

Résumer

La stratégie utilise l’ATR pour capturer efficacement les tendances et ajuster dynamiquement le stop loss pour réaliser le profit-locking. Les paramètres d’optimisation peuvent améliorer la performance de la stratégie. Mais le problème du retard d’ATR ne peut pas être complètement évité.

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

strategy(title="ATR Strategy", overlay = true,  commission_type=strategy.commission.percent,commission_value=0.075)
//credits to HPotter for the orginal code
nATRPeriod = input(5)
nATRMultip = input(3.5)
xATR = ta.atr(nATRPeriod)
nLoss = nATRMultip * xATR
xATRTrailingStop = iff(close > nz(xATRTrailingStop[1], 0) and close[1] > nz(xATRTrailingStop[1], 0), math.max(nz(xATRTrailingStop[1]), close - nLoss),
                    iff(close < nz(xATRTrailingStop[1], 0) and close[1] < nz(xATRTrailingStop[1], 0), math.min(nz(xATRTrailingStop[1]), close + nLoss), 
                        iff(close > nz(xATRTrailingStop[1], 0), close - nLoss, close + nLoss)))
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))) 
color = pos == -1 ? color.red: pos == 1 ? color.green : color.blue 
plot(xATRTrailingStop, color=color, title="ATR Trailing Stop")

barbuy = close > xATRTrailingStop 
barsell = close < xATRTrailingStop 

strategy.entry("Long", strategy.long, when = barbuy) 
strategy.entry("Short", strategy.short, when = barsell) 

barcolor(barbuy? color.green:color.red)