La stratégie de rupture des bandes de Bollinger est une stratégie de trading quantitative qui combine l'indicateur des bandes de Bollinger et l'indicateur de moyenne mobile pour effectuer des opérations de rupture dans certaines conditions de dynamique.
La stratégie est principalement basée sur l'indicateur des bandes de Bollinger et l'indicateur de moyenne mobile de MA. Les bandes de Bollinger et les moyennes mobiles appartiennent à des indicateurs de tendance. Les bandes de Bollinger utilisent le concept d'écart type pour décrire la plage de fluctuation élevée et basse des prix. La moyenne mobile lissue les données de prix et juge la direction de la tendance des prix.
La logique de base de la stratégie est la suivante:
Initialiser les paramètres des bandes de Bollinger et calculer le rail du milieu, le rail supérieur et le rail inférieur.
Initialisez les paramètres de la moyenne mobile.
Signal d'achat: lorsque le prix franchit le rail inférieur des bandes de Bollinger de bas en haut et que la moyenne mobile est en dessous du rail inférieur, passez long.
Signaux de vente: lorsque le prix franchit la barre supérieure des bandes de Bollinger de haut en bas et que la moyenne mobile est au-dessus de la barre supérieure, passez court.
Signal de sortie: lorsque le prix rentre dans la fourchette des bandes de Bollinger, fermez la position.
La stratégie combine l'utilisation des bandes de Bollinger et des indicateurs de moyenne mobile pour générer des signaux de négociation dans certaines conditions de dynamique, ce qui est une stratégie typique de suivi de tendance.
En utilisant les bandes de Bollinger pour juger clairement de la fourchette de fluctuation des prix et la moyenne mobile pour déterminer la direction de la tendance des prix, les signaux de négociation formés par la combinaison du double filtrage des indicateurs ont une fiabilité relativement élevée.
En plus du prix qui franchit la limite des bandes de Bollinger, il faut aussi que la moyenne mobile soit franchie, ce qui garantit un support de dynamique suffisant pour éviter de fausses ruptures.
Les paramètres de la stratégie sont fixés de manière raisonnable et flexible, ce qui permet d'ajuster les paramètres des bandes de Bollinger et des cycles de moyennes mobiles pour s'adapter aux différentes variétés et conditions du marché.
L'idée stratégique est claire et facile à comprendre, facile à mettre en œuvre et à vérifier.
L'indicateur de volatilité Bollinger Bands lui-même présente un retard potentiel dans les tendances en évolution rapide, ce qui peut générer des signaux de trading non valides.
Lorsqu'il est utilisé comme indicateur de filtrage, le réglage de ses paramètres affecte directement la fréquence de la stratégie.
En s'appuyant à la fois sur l'indicateur Bollinger Bands et l'indicateur de moyenne mobile pour former des signaux efficaces, une fois que l'un d'entre eux échoue, toute la stratégie sera affectée.
Les stratégies de rupture sont plus agressives, lorsque les prix reculent pour tester la limite des bandes de Bollinger, ils sont sujets à être piégés.
Optimiser les paramètres des bandes de Bollinger pour s'adapter aux variétés présentant des cycles et une volatilité différents, par exemple en modifiant les paramètres du multiplicateur de la période et de l'écart type des bandes de Bollinger.
Optimiser les paramètres de la moyenne mobile pour équilibrer la fréquence et l'effet de filtrage.
Augmenter la stratégie de stop loss pour contrôler la perte maximale par transaction.
Combiner avec d'autres indicateurs tels que le RSI et le MACD pour former des indicateurs composites et enrichir les signaux de trading pour la stratégie.
Combiner des modèles d'apprentissage automatique pour aider à juger de la direction de la tendance des prix et du taux de réussite de la rupture.
Cette stratégie intègre l'indicateur des bandes de Bollinger avec l'indicateur de moyenne mobile pour générer des signaux d'entrée et de sortie après avoir assuré une certaine dynamique de rupture de prix. L'idée de stratégie est claire et facile à mettre en œuvre, et peut suivre efficacement les marchés en tendance. Mais en même temps, il existe également certains risques de recul. Il doit être optimisé pour les paramètres de paramètres et arrêter les pertes pour s'adapter aux changements du marché.
/*backtest start: 2022-12-28 00:00:00 end: 2024-01-03 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 // strategy("Advanced Bollinger Bands Strategy", overlay=true) //BB Values wall1= input(defval=true,title="===BB Values===",type=input.bool) source = input(defval=close,title="BB Source",type=input.source) length = input(20,title="BB Length", minval=1) mult = input(2.0,title="BB Multiplier",minval=0.001, maxval=50) basis = sma(source, length) dev = mult * stdev(source, length) upper = basis + dev lower = basis - dev offset = input(0, " BB Offset", type = input.integer, minval = -500, maxval = 500) plot(basis, "Basis", color=#872323, offset = offset) p1 = plot(upper, "Upper", color=color.teal, offset = offset) p2 = plot(lower, "Lower", color=color.teal, offset = offset) fill(p1, p2, title = "Background", color=#198787, transp=95) //Moving Average Values wall2= input(defval=true,title="===MA Values===",type=input.bool) nfl= input(defval=14,title="Moving Average Period",type=input.integer,minval=1,maxval=100) source1= input(defval=close,title="Moving Average Source",type=input.source) noisefilter= sma(source1,nfl) plot(noisefilter,style=plot.style_line,linewidth=2,color=color.yellow,title=" Moving Average Filter") bgcolor(noisefilter<lower?color.green:noisefilter>upper?color.red:na,title="Moving Average Filter") //Strategy Conditions wall3= input(defval=true,title="===Strategy Conditions===",type=input.bool) bl= input(defval=false,title="Exit at Basis Line?",type=input.bool) nflb= input(defval=false,title="Use Moving Average Filter?",type=input.bool) //Strategy Condition buyEntry = crossover(source, lower) sellEntry = crossunder(source, upper) if (nflb?(crossover(source,lower) and noisefilter<lower): crossover(source, lower)) strategy.entry("BBandLE", strategy.long, oca_name="BollingerBands", comment="BBandLE") else strategy.cancel(id="BBandLE") if (nflb?(crossunder(source,lower) and noisefilter>upper): crossunder(source, lower)) strategy.entry("BBandSE", strategy.short, oca_name="BollingerBands", comment="BBandSE") else strategy.cancel(id="BBandSE") strategy.close_all(when=bl?crossover(source,basis) or crossunder(source,basis):crossover(source,upper) or crossunder(source,lower))