Stratégie de trading Supertrend basée sur la combinaison ATR et MA


Date de création: 2023-12-01 16:40:27 Dernière modification: 2023-12-01 16:40:27
Copier: 0 Nombre de clics: 1074
1
Suivre
1619
Abonnés

Stratégie de trading Supertrend basée sur la combinaison ATR et MA

Aperçu

La stratégie de trading Supertrend est une stratégie de suivi de tendance basée sur la moyenne de la gamme réelle (ATR) et la moyenne mobile (MA). Elle combine les avantages du suivi de la tendance et des transactions de rupture afin d’identifier la direction de la tendance à moyen terme et de générer des signaux de trading en fonction des changements de tendance.

L’idée principale de cette stratégie est que lorsque le prix franchit le canal de la super-tendance, il indique qu’il y a un renversement de tendance, ce qui entraîne des achats ou des ventes. Il définit simultanément des niveaux de stop-loss et de stop-loss pour verrouiller les gains et contrôler les risques.

Principe de stratégie

Le processus de calcul de la stratégie de super-tendance se compose des étapes suivantes:

  1. Calculer l’ATR. L’ATR reflète la fluctuation moyenne sur une période donnée.
  2. La ligne médiane de la chaîne est calculée en fonction du prix le plus élevé et du prix le plus bas. La formule de calcul de la ligne médiane de la chaîne est: ((le prix le plus élevé + le prix le plus bas) / 2
  3. Les limites supérieures et inférieures du canal sont calculées en fonction de l’ATR et du nombre d’ATR définis par l’utilisateur. La formule de calcul de la limite supérieure du canal est: ligne médiane + (((ATR × ATR); la formule de calcul de la limite inférieure du canal est: ligne médiane - (((ATR × ATR).
  4. Comparer la relation entre le prix de clôture et la limite supérieure et inférieure du canal pour déterminer la direction de la tendance. Le prix de clôture supérieur à la limite supérieure du canal est tendance à la hausse, le prix de clôture inférieur à la limite inférieure du canal est tendance à la baisse.
  5. Lorsqu’un prix franchit le canal de tendance, il effectue une transaction inverse. Par exemple, le prix franchit le haut du canal de bas en haut, générant un signal d’achat; le prix franchit le bas du canal de haut en bas, générant un signal de vente.

L’avantage de cette stratégie réside dans le fait qu’elle combine à la fois le suivi d’une tendance et la négociation d’un renversement de tendance. Elle permet à la fois de déterminer la direction de la grande tendance et de saisir les occasions de renversement en temps opportun.

Analyse des avantages

Les stratégies de super-tendance présentent les avantages suivants:

1. Suivre les tendances à moyen terme

Le canal de super-tendance est basé sur le calcul de l’ATR et permet de refléter efficacement la portée des fluctuations des prix à moyen terme. Il est plus capable de suivre les tendances à moyen terme que la moyenne mobile ordinaire.

2. Capturer le renversement à temps

En cas de rupture du canal, un signal de transaction rapide est émis, permettant de capturer en temps opportun le renversement de la tendance majeure. Cela garantit un ajustement approprié de la position et une réduction des détentions à plus long terme.

3. Un mécanisme anti-collision

La stratégie impose un stop loss et un stop loss simultanément, ce qui réduit considérablement le risque d’un stop loss généralisé, ce qui permet de maîtriser la tendance.

4. La mise en œuvre est simple

La stratégie utilise principalement la moyenne et l’indicateur ATR, ce qui rend la mise en œuvre plus simple et plus facile à maîtriser. Cela réduit la difficulté des opérations sur disque dur.

5. Une utilisation efficace des fonds

Les stratégies de super tendances suivent les tendances à moyen terme et maîtrisent les points de glissement individuels, ce qui entraîne une meilleure efficacité globale de l’utilisation des fonds.

Analyse des risques

Il y a aussi des risques potentiels avec les stratégies de super-trends:

1. Coûts d’opportunité plus élevés des tendances choquantes

Les stratégies de super-trends se concentrent sur le suivi des tendances à moyen et à long terme, avec des coûts plus élevés et des occasions de faillite potentiellement manquées dans les marchés en crise.

2. L’effet de l’optimisation des paramètres

Le choix du cycle ATR et du multiplicateur ATR a un impact significatif sur l’efficacité de la stratégie de négociation. Si les paramètres sont mal configurés, l’effet du signal de négociation est décompté.

3. Il y a un certain retard

Le calcul des canaux de super-tendance présente un certain retard, ce qui peut entraîner un retard dans la production de signaux. C’est le principal problème à résoudre dans cette stratégie.

4. Un contrôle strict des pertes

Si la position d’arrêt est trop grande ou si le contrôle du vent est imparfait, cela peut entraîner des pertes plus importantes dans des situations extrêmes. Il faut donc appliquer strictement la stratégie d’arrêt de perte pour obtenir des gains stables.

Direction d’optimisation

La stratégie de super-tendance a également de la place pour d’autres optimisations, notamment:

1. La combinaison de plusieurs cycles ATR

On peut combiner plusieurs cycles d’ATR, par exemple 10 jours, 20 jours, pour former un indicateur combiné d’ATR. Cela permet d’améliorer la sensibilité de l’indicateur et d’améliorer le retard.

2. Ajout d’un module de stratégie de stop loss

En outre, le renforcement du contrôle des pertes peut être renforcé par l’ajout de modules stratégiques tels que le triple stop, le stop oscillant et le stop séquentiel, ce qui réduit le risque de pertes.

3. Optimiser les paramètres

L’optimisation des paramètres tels que le cycle ATR, la multiplication de l’ATR, la recherche de la combinaison optimale de paramètres peut améliorer encore les gains stratégiques. En outre, les paramètres peuvent également être optimisés dynamiquement, en choisissant les valeurs appropriées en fonction des différentes variétés et des différentes étapes du marché.

4. Modèles intégrés d’apprentissage automatique

Enfin, il est possible d’essayer d’intégrer des modèles d’apprentissage automatique pour l’automatisation de la détection des tendances et des signaux. Cela réduit l’interférence des facteurs subjectifs et peut améliorer encore la stabilité des systèmes stratégiques.

Résumer

La stratégie de trading de super-tendance utilise l’indicateur de ligne moyenne et l’indicateur ATR pour déterminer la tendance à mi-parcours et générer des signaux de négociation pour réaliser des arrêts de perte automatiques aux points de retournement de la tendance. La stratégie capte les grandes tendances tout en saisissant en temps opportun certaines opportunités de retournement.

Cependant, cette stratégie présente également certaines lacunes, principalement en ce qui concerne le manque de compréhension et de retard des conditions de choc. Cela nécessite une optimisation de plusieurs aspects, tels que la combinaison des cycles ATR, l’amélioration des modules de stop loss, l’optimisation des paramètres et l’introduction de l’apprentissage automatique. Cela peut sans aucun doute renforcer davantage la stabilité et le taux d’or de cette stratégie de super-tendance.

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

//@version=3
strategy("Supertrend V1.0 - Buy or Sell Signal",overlay=true)
Factor=input(3, minval=1,maxval = 100)
Pd=input(7, minval=1,maxval = 100)
//Calculating ATR
atrLength = input(title="ATR Length:",  defval=14, minval=1)
Stop_Loss_Factor = input(1.5, minval=0,step=0.01)
factor_profit = input(1.0, minval=0,step=0.01)

// === INPUT BACKTEST RANGE ===
FromMonth = input(defval = 4, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 10, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2016, title = "From Year", minval = 2009)
ToMonth   = input(defval = 4, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 10, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2039, title = "To Year", minval = 2017)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false // create function "within window of time"


// Calculate ATR
atrValue=atr(atrLength)
decimals = abs(log(syminfo.mintick) / log(10)) 
Atr = atrValue
if(decimals == 5)
    Atr := atrValue * 10000
if(decimals == 4)
    Atr := atrValue * 1000
if(decimals == 3)
    Atr := atrValue * 100
if(decimals == 2)
    Atr := atrValue * 10


//VJ2 Supertrend

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))

TrendUp = 0.0
TrendUp:=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown:=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

Trend = 0.0
Trend := close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = 0.0
Tsl := Trend==1? TrendUp: TrendDown

linecolor = Trend == 1 ? green : red

plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)
//plot(Trend==1 and Trend[1]==-1,color = linecolor, style = circles, linewidth = 3,title="Trend")

plotarrow(Trend == 1 and Trend[1] == -1 ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(Trend == -1 and Trend[1] == 1 ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)




//Strategy 
Trend_buy = Trend == 1 
Trend_buy_prev = Trend[1] == -1
algo_buy_pre = Trend_buy and Trend_buy_prev
algo_buy = algo_buy_pre == 1 ? 1 : na
Trend_sell= Trend == -1 
Trend_sell_prev = Trend[1] == 1
algo_sell_pre = Trend_sell and Trend_sell_prev
algo_sell = algo_sell_pre == 1 ? 1:na

strategy.entry("Long1", strategy.long, when= window() and algo_buy==1)

strategy.entry("Short1", strategy.short, when=window() and algo_sell==1)

bought = strategy.position_size > strategy.position_size 
sold = strategy.position_size < strategy.position_size 

longStop = Stop_Loss_Factor * valuewhen(bought, Atr, 0) 
shortStop = Stop_Loss_Factor * valuewhen(sold, Atr, 0) 
longProfit = factor_profit * longStop 
shortProfit = factor_profit * shortStop 


if(decimals == 5) 
    longStop := longStop *100000 
    longProfit := longProfit *100000 
if(decimals == 4) 
    longStop := longStop * 10000 
    longProfit := longProfit * 10000 
if(decimals == 3) 
    longStop := longStop * 1000 
    longProfit := longProfit * 1000 
if(decimals == 2) 
    longStop := longStop * 100 
    longProfit := longProfit *100 
if(decimals == 5) 
    shortStop := shortStop * 100000 
    shortProfit := shortProfit * 100000 
if(decimals == 4) 
    shortStop := shortStop * 10000 
    shortProfit := shortProfit * 10000 
if(decimals == 3) 
    shortStop := shortStop * 1000 
    shortProfit := shortProfit * 1000 
if(decimals == 2) 
    shortStop := shortStop * 100 
    shortProfit := shortProfit * 100 

strategy.exit("Exit Long", from_entry = "Long1", loss =longStop, profit = longProfit) 
strategy.exit("Exit Short", from_entry = "Short1", loss =shortStop, profit = shortProfit)