Stratégie de super tendance améliorée EMA


Date de création: 2023-10-07 10:07:15 Dernière modification: 2023-10-07 10:07:15
Copier: 1 Nombre de clics: 700
1
Suivre
1617
Abonnés

Aperçu

Cette stratégie permet de déterminer la direction de la tendance des prix en calculant l’ATR et la comparaison des prix avec la moyenne de l’espace de fluctuation réelle, et en combinant l’aide d’une moyenne mobile. Comparée à d’autres méthodes de détermination de la tendance, elle permet de capturer plus rapidement les tendances des changements de prix et de réduire les rétractions.

Principe de stratégie

La stratégie consiste principalement à déterminer les tendances des prix par les étapes suivantes:

  1. Calculer l’ATR de la moyenne des fluctuations réelles des derniers N jours. La méthode de calcul de l’ATR définie par Wilder est utilisée ici pour mieux refléter les fluctuations du marché actuel.

  2. Les lignes en haut et en bas sont calculées en fonction des coefficients d’ajustement ATR et atk. Les lignes en haut = prix - ((atk multiplié par ATR); les lignes en bas = prix + ((atk multiplié par ATR)).

  3. Comparer la relation entre le prix et la ligne de haut en bas pour déterminer la direction de la tendance. Le prix de haut en haut est un signal positif; le prix de bas en bas est un signal négatif.

  4. Lorsqu’un signal de transaction se produit, faites plus ou faites moins. Ici, la combinaison de la moyenne mobile détermine la qualité du signal.

  5. La stratégie de contrôle des risques de Stop Loss est incluse.

  6. Les couleurs de l’humeur sont utilisées pour marquer l’état de la stratégie et aider au jugement.

Cette stratégie exploite pleinement les avantages de l’ATR pour capturer rapidement les tendances des changements de prix et réaliser des opérations de retrait bas, une stratégie de suivi de tendance assez typique.

Avantages stratégiques

Cette stratégie présente les avantages suivants:

  1. La rapidité avec laquelle l’ATR réagit aux changements de prix permet de saisir les changements de tendance en temps opportun.

  2. Il y a une zone de sécurité sur la voie ascendante et descendante, ce qui réduit la probabilité que l’arrêt-défaut soit atteint et réduit le retrait.

  3. Les signaux de négociation sont clairs. La rupture de la fourchette de compilation est un signal de négociation de haute qualité.

  4. La personnalisation est élevée. Le cycle et le multiplicateur de l’ATR peuvent être ajustés pour s’adapter à différents environnements de marché.

  5. L’utilisation d’outils graphiques pour afficher l’état de la stratégie et l’utilisation intuitive.

  6. Facile à optimiser. Des modules tels que l’arrêt mobile et le filtrage peuvent être ajoutés pour optimiser davantage.

Dans l’ensemble, la stratégie de retraits faibles, de gains marqués et de suivi des tendances est une stratégie de trading très pratique.

Risque stratégique

Cette stratégie comporte aussi des risques:

  1. Le risque d’erreur dans le jugement des tendances.

  2. Le risque de choisir un point de sortie. Il est nécessaire de choisir raisonnablement un point de rupture pour éviter une sortie prématurée.

  3. Risque d’optimisation des paramètres. Les cycles ATR et les multiples nécessitent des tests d’optimisation répétés. Des réglages inappropriés peuvent affecter la performance de la stratégie.

  4. Le risque d’une fréquence de négociation trop élevée. La fréquence de négociation peut être trop élevée en période de forte volatilité.

  5. Le risque de mauvaise performance. Dans certains marchés où les tendances ne sont pas évidentes, les résultats peuvent être médiocres.

  6. Le risque d’ajustement du disque dur. Lors de l’opération du disque dur, il est également nécessaire d’optimiser l’ajustement pour les points de glissement, les frais de traitement, etc.

  7. Risque systémique: il faut prendre en compte le contrôle des risques du système dans son ensemble et ne pas s’appuyer sur cette stratégie seule.

Les mesures suivantes peuvent être prises pour contrer ces risques:

  1. Optimiser les paramètres ATR pour améliorer l’exactitude des jugements.

  2. Les tendances sont déterminées en combinant l’analyse de plusieurs périodes.

  3. L’utilisation d’un stop loss mobile pour verrouiller les bénéfices et réduire les retraits.

  4. Les conditions de filtrage sont utilisées pour contrôler la fréquence des transactions.

  5. Paramètres stratégiques adaptés aux différents marchés.

  6. Test des variétés différentes pour trouver les meilleurs scénarios d’utilisation.

  7. Les risques de toutes les transactions sont pris en compte dans le réel.

Orientation de l’optimisation de la stratégie

Cette stratégie peut être optimisée dans les domaines suivants:

  1. L’introduction d’indicateurs tels que la moyenne pour filtrer et réduire les signaux erronés. Des jugements auxiliaires d’indicateurs tels que MACD, KDJ peuvent être ajoutés.

  2. Optimiser les paramètres ATR. Vous pouvez tester différents paramètres ATR pour trouver la valeur optimale.

  3. Optimiser les paramètres de multiplication. Vous pouvez tester différents paramètres de multiplication pour déterminer la sensibilité du signal généré.

  4. Adhérer à une stratégie de stop mobile. La stratégie de stop dynamique, basée sur l’ATR ou la volatilité, peut réduire davantage le retrait.

  5. L’analyse multi-cadres de temps est combinée avec un jugement plus élevé des indicateurs de périodes de temps, permettant de filtrer les faux signaux occasionnels.

  6. L’apprentissage automatique améliore la détection des signaux. Le modèle de détection des signaux d’achat et de vente est formé à l’aide de modèles tels que RNN.

  7. Les paramètres peuvent être ajustés en fonction des caractéristiques de la variété. Par exemple, le cycle ATR peut être réduit de manière appropriée pour les actions volatiles.

  8. Optimiser les points d’entrée. Vous pouvez trouver les meilleurs points d’entrée en utilisant des méthodes telles que la percée et la rétraction.

  9. L’indicateur de puissance de liaison. Ajout d’aides telles que la quantité d’accouplement pour déterminer la force du signal.

  10. Ajouter une stratégie d’arrêt. Déterminer le point d’arrêt en fonction de l’indicateur d’énergie de la tendance, etc.

Résumer

Cette stratégie de super-tendance est très pratique dans l’ensemble, avec des avantages tels que la réponse rapide, le recul faible et la facilité d’optimisation. C’est une stratégie de suivi de tendance typique. Cependant, il faut également faire attention aux risques tels que les erreurs de jugement et l’optimisation des paramètres, qui doivent être considérés dans leur intégralité.

Code source de la stratégie
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
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/
// © KivancOzbilgic


//@version=4
strategy("SuperTrend STRATEGY", overlay=true)
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)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", 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
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
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 = 9999, title = "To Year", minval = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => true
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)

//@version=3
//study(title="3 Moving Average Exponential", shorttitle="3 EMA", overlay=true)
//len1 = input(17, minval=1, title="Fast")
//len2 = input(72, minval=1, title="Medium")
len3 = input(305, minval=1, title="Slow")
//src1 = input(close, title="Source Fast")
//src2 = input(close, title="Source Medium")
src3 = input(close, title="Source Slow")
//out1 = ema(src1, len1)
//out2 = ema(src2, len2)
out3 = ema(src3, len3)
//plot(out1, title="EMA1", color=fuchsia)
//plot(out2, title="EMA2", color=orange)
plot(out3, title="EMA3", color=color.blue)