Cette stratégie juge la direction de la tendance en fonction de la rupture de support/résistance à long terme et entre dans la position lorsque le support/résistance est brisé. Elle utilise le zigzag pour définir les pics et les vallées, confirmant les pics/vallées avec 2 barres, de sorte qu'il y a un décalage de 2 barres. Elle calcule la différence entre SMA des pics et des vallées dans une période définie (21 par défaut) en tant que niveau SR alternatif. Cette idée provient de l'indicateur Nebula-Advanced-Dynamic-Support-Resistance de synapticEx
La stratégie utilise la logique suivante pour déterminer les tendances et les signaux de négociation:
Confirmer les sommets / vallées en zigzag: lorsque dans les 5 dernières barres, la barre 5 est le sommet < la barre 4 est le sommet < la barre 3 est le sommet > la barre 2 est le sommet > la barre 1 est le sommet, la barre 3 est la vallée est confirmée comme étant la vallée la plus basse.
Calculer le nombre de pics hn et de vallées ln dans une période définie (par défaut 21). Si hn>0 et ln>0, calculer le niveau moyen des pics hsum/hn et le niveau moyen des vallées lsum/ln. Leur différence r est utilisée comme niveau SR alternatif.
Comparer le prix de clôture avec la résistance dynamique lvalr et le support hvalr pour déterminer la direction de la tendance.
Allez long quand il y a une rupture valide de la résistance, allez court quand il y a une rupture valide du support.
Les avantages de cette stratégie:
Utiliser le zigzag pour confirmer SR fournit une précision, évitant une fausse fuite.
La SR fondée sur des statistiques à long terme est plus utile pour réduire les risques.
Le SR alternatif améliore la validité des signaux de rupture.
La logique est simple et facile à comprendre, adaptée au trading quantique.
La période statistique personnalisable s'adapte à différents cycles et produits.
Les risques de cette stratégie:
2 mesures de retard avec zigzag peuvent manquer le meilleur point d'entrée.
La SR prévue est juste pour référence, une éruption anormale peut encore se produire.
Une période statistique incorrecte conduit à une SR invalide.
Le repli du prix après la rupture peut déclencher un stop loss.
Les fluctuations violentes des prix après l'entrée entraînent des pertes plus importantes.
Les solutions sont les suivantes:
Réduire correctement la période statistique pour réduire le décalage.
Combinez plus de facteurs pour prédire le SR.
Stabilité d'essai de différentes périodes.
Définir un niveau de stop-loss raisonnable.
Utilisez le dimensionnement des positions pour limiter les pertes uniques.
La stratégie peut être optimisée à partir des aspects suivants:
Utilisez l'apprentissage automatique pour prédire le SR, améliorant le taux de réussite des signaux de rupture.
Combinez le volume CONF pour confirmer la validité des signaux de rupture.
Classifier les statistiques de la SR sur la base de différents cycles, améliorant ainsi l'efficacité de la SR.
Ajoutez une position sur le profit, mettez un arrêt pour équilibrer le profit/perte.
Combiner l'AM pour déterminer la tendance, en évitant à l'aveugle le long/court sans tendance.
En conclusion, il s'agit d'une stratégie de suivi de tendance robuste. Il a une grande précision dans la détermination de la direction de la tendance et un contrôle approprié des risques. Mais le décalage rend impossible de tirer profit de chaque signal long / court. Il convient donc aux traders quant expérimentés pour les combiner avec leurs propres stratégies. En optimisant les périodes statistiques et en intégrant d'autres indicateurs ou modèles, il peut devenir une stratégie de suivi de tendance efficace.
/*backtest start: 2023-11-25 00:00:00 end: 2023-12-25 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("SR TREND STRATEGY", shorttitle="SR TREND", overlay=true, calc_on_order_fills=true) //based on by synapticEx SR indicator https://www.tradingview.com/script/O0F675Kv-Nebula-Advanced-Dynamic-Support-Resistance/ length = input(title="SR lookbak length", type=input.integer, defval=21) h = bar_index>5 and high[5]<high[4] and high[4]<high[3] and high[3]>high[2] and high[2]>high[1] ? 1 : 0 l = bar_index>5 and low[5]>low[4] and low[4]>low[3] and low[3]<low[2] and low[2]<low[1] ? 1 : 0 ln = sum(l, length) hn = sum(h, length) hval = h>0 ? high[3] : 0 lval = l>0 ? low[3] : 0 lsum = sum(lval, length) hsum = sum(hval, length) r = ln>0 and hn>0 ? abs((hsum/hn) - (lsum/ln)): 0 float lvalc = na float lvalr = na float hvalc = na float hvalr = na lvalc := lval and r>0 ? lval : lvalc[1] lvalr := lval and r>0 ? lval+r : lvalr[1] hvalc := hval and r>0 ? hval : hvalc[1] hvalr := hval and r>0 ? hval-r : hvalr[1] int trend=0 trend:=close > lvalr and close > hvalr ? 1 : close < lvalr and close < hvalr ? -1 : trend[1] strategy.close("Long", when=trend==-1) strategy.close("Short", when=trend==1) strategy.entry("Long", strategy.long, when=trend==1 and close>hvalc) strategy.entry("Short", strategy.short, when=trend==-1 and close<lvalc) int long=0 int short=0 long:= trend==1 and close>hvalc ? 1 : trend==-1 ? -1 : long[1] short:= trend==-1 and close<lvalc ? 1 : trend==1 ? -1 : short[1] barcolor(long>0? color.green : short>0? color.red : trend>0? color.white: trend<0 ? color.orange : color.blue)