Les ressources ont été chargées... Je charge...

Stratégie de rupture de canal adaptative

Auteur:ChaoZhang est là., Date: 2024-02-29 14:49:05 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie de rupture de canal adaptative est une stratégie de suivi des tendances qui suit les canaux de prix du marché.

L'avantage de cette stratégie est qu'elle peut s'adapter automatiquement aux changements du marché en élargissant les canaux pour filtrer le bruit et produire des signaux de trading lorsqu'une tendance est claire.

La logique de la stratégie

Cette stratégie est basée sur la théorie de la rupture du canal. Elle calcule deux ensembles de prix les plus élevés et les plus bas au cours de différentes périodes (longueur d'entrée et longueur de sortie) pour former des canaux. Lorsque les prix dépassent les canaux, des signaux sont générés.

Plus précisément, la stratégie calcule d'abord le prix le plus élevé (supérieur) et le prix le plus bas (inférieur) de 20 périodes pour former le canal de prix. Elle calcule ensuite le prix le plus élevé (supérieur) et le prix le plus bas (inférieur) de 10 périodes. Après un signal d'achat est déclenché (dépassement des prix au-dessus du rail supérieur), le prix le plus bas de 10 périodes (dépassement) est utilisé comme ligne de stop loss. Après un signal de vente est déclenché (dépassement des prix au-dessous du rail inférieur), le prix le plus élevé de 10 périodes (supérieur) est utilisé comme ligne de prise de profit. Cela forme un système de canal adaptatif.

Lorsque les prix franchissent le canal, cela indique qu'une tendance se forme. La stratégie émettra alors des signaux de trading. En même temps, les lignes de prise de profit et de stop-loss s'ajusteront également aux changements de prix pour verrouiller les profits et éviter les pertes.

Les avantages

  • Le canal de cette stratégie s'ajuste automatiquement en fonction des prix récents, élargissant la gamme de canaux pour filtrer le bruit lorsqu'une tendance commence.
  • Il ne négocie que sur des événements à la hausse ou à la baisse, en évitant de poursuivre des prix élevés et de tuer des prix bas.
  • Mecanismes de contrôle des risques: adopte des lignes de stop-loss et de prise de bénéfices basées sur différentes périodes afin de fixer de manière flexible les bénéfices et d'éviter des pertes accrues.
  • Facile à mettre en œuvre, ne nécessite que deux paramètres et les données d'essai sont faciles à obtenir, adaptées au commerce quantitatif.

Analyse des risques

Les principaux risques de cette stratégie sont les suivants:

  • Il y a un risque d'achat élevé et de vente bas lorsque la plage de canaux est trop grande. Cela peut être atténué en optimisant les paramètres pour réduire les transactions inutiles.
  • Le risque d'arrêt de perte. Les lignes d'arrêt de perte à période fixe peuvent être trop rigides. Un arrêt de perte ATR adaptatif peut être envisagé.
  • Risque de fréquence de négociation élevée. Des paramètres incorrects peuvent entraîner une négociation trop fréquente. Des conditions de filtrage peuvent être ajoutées pour contrôler la fréquence de négociation.
  • Risque d'anomalie du marché: cette stratégie évalue les tendances futures sur la base des données historiques et peut échouer ou perdre de l'argent lorsque des changements drastiques se produisent sur le marché.

Optimisation

Les optimisations potentielles de cette stratégie comprennent:

  • Ajouter des filtres d'indicateurs de tendance. Les indicateurs de tendance comme l'EMA ou le MACD peuvent être introduits pour ne prendre des signaux que lorsqu'ils sont alignés sur la direction de rupture du canal.
  • Introduisez un stop loss adaptatif ATR. Les lignes de stop loss calculées à partir d'une plage réelle moyenne peuvent mieux contrôler les pertes d'une seule transaction.
  • Optimiser les combinaisons de paramètres. Améliorer encore la rentabilité de la stratégie en trouvant des combinaisons de paramètres optimisées grâce à plus de backtests.
  • Introduire des techniques d'apprentissage automatique, utiliser des réseaux neuronaux ou des algorithmes génétiques pour générer des paramètres dynamiques pour une meilleure robustesse.

Conclusion

La stratégie Adaptive Channel Breakout a une logique claire et une forte faisabilité globale. Elle peut suivre automatiquement les changements du marché et générer des signaux de trading lorsque les tendances se forment. Les mécanismes à double canal et stop loss/take profit aident également à contrôler les risques. Cette stratégie peut être encore améliorée en termes de stabilité et de rentabilité grâce à l'optimisation des paramètres, des conditions de filtrage, etc. Il vaut la peine de vérifier et de perfectionner davantage le trading en direct.


/*backtest
start: 2024-01-29 00:00:00
end: 2024-02-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Turtle Trade Channels Strategy", shorttitle="TTCS", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

length = input(20,"Entry Length", minval=1)
len2=input(10, "Exit Length", minval=1)

lower = lowest(length)
upper = highest(length)

up=highest(high,length)
down=lowest(low,length)
sup=highest(high,len2)
sdown=lowest(low,len2)
K1=barssince(high>=up[1])<=barssince(low<=down[1]) ? down : up
K2=iff(barssince(high>=up[1])<=barssince(low<=down[1]),sdown,sup)
K3=iff(close>K1,down,na)
K4=iff(close<K1,up,na)

buySignal=high==upper[1] or crossover(high,upper[1])
sellSignal = low==lower[1] or crossover(lower[1],low)
buyExit=low==sdown[1] or crossover(sdown[1],low)
sellExit = high==sup[1] or crossover(high,sup[1])

strategy.entry("Buy", strategy.long, when = buySignal and barssince(buySignal) < barssince(sellSignal[1]))
strategy.entry("Sell", strategy.short, when = sellSignal and barssince(sellSignal) < barssince(buySignal[1]))
strategy.exit("Buy Exit", from_entry = "Buy", when = buyExit and barssince(buyExit) < barssince(sellExit[1]))
strategy.exit("Sell Exit", from_entry = "Sell", when = sellExit and barssince(sellExit) < barssince(buyExit[1]))

plot(K1, title="Trend Line", color=color.red, linewidth=2)
e=plot(K2, title="Exit Line", color=color.blue, linewidth=1, style=6)



Plus de