Stratégie de suivi des tendances ATR


Date de création: 2023-09-28 11:32:09 Dernière modification: 2023-09-28 11:32:09
Copier: 0 Nombre de clics: 795
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie est basée sur l’indicateur ATR de la longueur d’onde réelle moyenne pour juger de la direction de la tendance, en faisant plus lorsque la tendance augmente et en faisant moins lorsque la tendance diminue, et appartient au type de stratégie de suivi de la tendance.

Principe de stratégie

La stratégie commence par calculer la moyenne mobile simple sma et la moyenne mobile indicielle ema des prix. Ensuite, elle calcule l’indicateur ATR, c’est-à-dire la gamme moyenne des fluctuations des derniers N jours.

La stratégie utilise la direction de la tendance à partir de la moyenne de l’ema, de la trajectoire ascendante ((ema + ATR *) et descendante ((ema - ATR *) . Lorsque le prix monte sur la trajectoire ascendante, faites plus; lorsque le prix descend sur la trajectoire descendante, faites moins.

La logique principale du code:

  1. Calculer la moyenne des prix SMA et EMA
  2. Calculer la plage de fluctuation moyenne de l’ATR
  3. Calcul de la ligne de haut et de bas
  4. Les prix sont en train de monter en flèche
  5. Les prix ont baissé en dessous de la ligne de basse
  6. Mise en équilibre stop-loss: prix au-dessous de la ligne d’équilibre; prix au-dessus de la ligne d’équilibre du prix

Les positions sont ajustées dynamiquement via ATR, permettant de suivre efficacement les tendances.

Avantages stratégiques

  1. L’indicateur ATR est utilisé pour déterminer la direction de la tendance et pour capturer efficacement les tendances des prix.
  2. Stop-loss basé sur la moyenne permettant une maîtrise raisonnable des risques
  3. La logique de la stratégie est simple, claire et facile à comprendre.
  4. Les paramètres configurables sont flexibles et s’appliquent à différents environnements de marché

Risque stratégique

  1. L’indicateur ATR ne fonctionnera plus si le marché est en forte volatilité
  2. Une mauvaise configuration des paramètres peut entraîner des ouvertures trop fréquentes
  3. Les arrêts de perte peuvent être inefficaces en cas d’événements imprévus entraînant une inversion rapide.
  4. Setting, un marché où les frais de transaction sont élevés, nécessite des ajustements

La solution est simple:

  1. Si le marché est très volatile, il est préférable de suspendre la stratégie ou d’utiliser d’autres indicateurs.
  2. Optimisation des paramètres pour réduire la fréquence d’ouverture des positions
  3. Un taux d’arrêt plus élevé pour les événements importants
  4. Adaptation de la portée de l’ATR en fonction de la variété

Orientation de l’optimisation de la stratégie

  1. Combinaison de paramètres d’optimisation de l’indicateur de tendance, tels que l’ajout de MACD pour déterminer la tendance
  2. Ajout de filtres, comme ceux de Brin, pour déterminer l’entrée
  3. Optimisation de l’arrêt des pertes, comme le déplacement de l’arrêt ou de l’indicateur de sortie
  4. Optimisation de la gamme de valeurs ATR pour une variété spécifique
  5. Augmentation des stratégies de gestion des fonds, comme les quotas fixes
  6. Paramètres d’optimisation dynamique combinés à une méthode d’apprentissage automatique

Résumer

L’ATR est une stratégie de suivi des tendances qui a une conception globale claire et qui permet de déterminer la direction des tendances à l’aide des indicateurs ATR. Elle est une stratégie de suivi des tendances typique. L’avantage de la stratégie est sa simplicité et sa facilité d’utilisation. Elle permet de suivre efficacement les tendances.

Code source de la stratégie
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Investoz

//@version=4
strategy("ATR Strategy FOREX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(26, type=input.integer, minval=1, title="Length")
mul = input(2.618, type=input.float, minval=0, title="Length")
mullow = input(2.386, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk()) and ema(close,1) > ema(close,528)
    strategy.entry("KOP", strategy.long, when=bull_cross) 
    strategy.close("KOP", when=bear_cross)  
if (startTimeOk()) and ema(close,1) < ema(close,528)
   strategy.entry("SALJ", strategy.short, when=bear_cross) 
   strategy.close("SALJ", when=bull_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)