Stratégie de stop suiveur ES basée sur l'ATR


Date de création: 2024-01-12 14:52:23 Dernière modification: 2024-01-12 14:52:23
Copier: 3 Nombre de clics: 673
1
Suivre
1617
Abonnés

Stratégie de stop suiveur ES basée sur l’ATR

Aperçu

Cette stratégie est une stratégie d’arrêt de suivi appliquée aux E-mini S&P 500 futures (ES). Elle utilise l’ATR de 10 jours comme référence pour mettre en place une ligne de stop de plusieurs têtes et de têtes vides avec 3 fois l’ATR comme plage de stop. La stratégie juge la tendance par le changement de direction de la ligne d’ATR et génère un signal d’entrée. Une fois entrée en bourse, elle ajuste la ligne de stop en temps réel, laissant la ligne de stop suivre le prix et protéger le profit.

Principe de stratégie

Cette stratégie utilise hl2 comme source de prix. On calcule d’abord l’ATR de 10 jours, et on laisse le choix entre calculer l’ATR en utilisant la méthode SMA ou la fonction ATR intégrée. Après avoir calculé l’ATR, on ajoute 3 fois l’ATR comme gamme.

La méthode de détermination de la tendance est la suivante: lorsque le prix dépasse la limite supérieure, c’est la hausse; lorsque le prix tombe sous la limite inférieure, c’est la baisse. Lorsque le prix revient dans la zone, le renversement de la tendance est confirmé.

Après l’entrée en jeu, la ligne d’arrêt multi-tête est réglée sur la limite supérieure de 1 point de déplacement vers le bas et la ligne d’arrêt vide sur la limite inférieure de 1 point de déplacement vers le haut, pour une protection de suivi efficace.

Avantages stratégiques

  1. L’utilisation de l’ATR permet de s’adapter automatiquement aux variations de la volatilité du marché, réduisant ainsi la probabilité que le stop loss soit déclenché.
  2. Les méthodes de suivi des tendances sont simples et efficaces pour éviter les risques de tops et de bottes
  3. Le stop-loss de suivi assure la protection des bénéfices et évite les pertes ultérieures après les gains

Analyse des risques

  1. Une mauvaise définition des paramètres ATR peut entraîner une gamme de stop-loss trop grande ou trop petite
  2. Des pertes anormales peuvent survenir lorsque la volatilité de l’indicateur fluctue
  3. TAILING Stop Loss peut être trop conservateur et ne pas suivre la tendance de façon continue

Direction d’optimisation

  1. L’optimisation des paramètres ATR peut être envisagée en combinaison avec l’indicateur de volatilité
  2. Il est possible de tester différents algorithmes de stop loss TAILING, tels que le stop loss pourcentage de solde.
  3. Il est possible de combiner les indicateurs de tendance pour filtrer les signaux d’entrée afin d’éviter les entrées non dominantes.

Résumer

Cette stratégie est une stratégie de suivi de tendance plus générale dans l’ensemble. Elle résout le problème de la difficulté de déterminer le périmètre de stop, réduisant le risque par l’ajustement dynamique de l’ATR.

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

//@version=4
strategy("ATR Based Trailing Stop Strategy on ES! [v4]", overlay=true)

// Given ATR study
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR = input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr = changeATR ? atr(Periods) : atr2
up = src - (Multiplier * atr)
up1 = nz(up[1], up)
up := close[1] > up1 ? max(up, up1) : up
dn = src + (Multiplier * atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend

// Entry logic based on trend change
longCondition = trend == 1 and trend[1] == -1
shortCondition = trend == -1 and trend[1] == 1

if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)

// Trailing stop loss logic
// For long positions, trail 1 point below the up plot
longStopPrice = up - 1

// For short positions, trail 1 point above the dn plot
shortStopPrice = dn + 1

strategy.exit("Trailing Stop Long", "Long", trail_offset=longStopPrice)
strategy.exit("Trailing Stop Short", "Short", trail_offset=shortStopPrice)