Stratégie de suivi de la volatilité des bandes de Bollinger doubles

Auteur:ChaoZhang est là., Date: 2023-12-25 11:49:41 Je suis désolé
Les étiquettes:

img

Résumé

La stratégie de suivi de la volatilité des bandes de Bollinger doubles est une stratégie de trading quantitative qui capture la volatilité des prix en construisant des bandes de Bollinger doubles pour le suivi.

Principe de stratégie

La stratégie calcule d'abord la moyenne mobile de N jours comme la ligne de base, puis calcule les rails supérieurs et inférieurs en fonction des multiples de l'écart type pour construire les bandes de Bollinger.

La stratégie définit également une fenêtre de temps pour rendre le backtest plus TARGET et empêcher les premières données d'affecter les résultats des tests.

Analyse des avantages

Le plus grand avantage de cette stratégie est qu'elle peut capturer la volatilité des prix en temps réel en brisant les rails supérieur et inférieur des bandes de Bollinger pour déterminer la direction de l'OPERATION. Par rapport à d'autres indicateurs, les bandes de Bollinger réagissent au marché de manière plus sensible et peuvent former des signaux commerciaux dans un délai plus court. En outre, les bandes de Bollinger doubles définissent un canal plus large afin que la probabilité de rupture des prix soit plus grande, permettant à la stratégie de capturer plus d'opportunités de trading.

Analyse des risques

Les principaux risques de cette stratégie résident dans les paramètres de la période de N jours et les multiples d'écart type qui construisent les bandes de Bollinger. Si les paramètres ne sont pas définis de manière appropriée, cela entraînera des bandes de Bollinger trop larges ou trop étroites, ce qui entraînera des opportunités de trading manquantes ou générera de faux signaux.

Les solutions sont d'optimiser les paramètres et d'évaluer la forme des bandes de Bollinger en temps réel; également, de mettre en place des stratégies de stop loss basées sur des données historiques pour contrôler une seule perte.

Directions d'optimisation

Les principaux aspects à optimiser pour cette stratégie:

  1. Optimiser les paramètres des bandes de Bollinger, ajuster la période de N jours et les multiples d'écart type pour mieux s'adapter aux différentes caractéristiques du marché.

  2. Augmenter les mécanismes de renouvellement des commandes pour placer des commandes supplémentaires après que certains bénéfices ont été réalisés sur les commandes initiales, afin d'élargir l'espace de profit.

  3. Mettez en place des stratégies de stop loss afin de sortir des positions lorsque les prix franchissent les rails supérieurs ou inférieurs des bandes de Bollinger dans des directions défavorables, contrôlant les pertes.

  4. Incorporer d'autres indicateurs pour détecter les signaux et éviter les faux signaux sur les marchés volatils.

Conclusion

La stratégie de suivi de la volatilité de la bande de Bollinger double capte la volatilité des prix en temps réel en construisant des bandes de Bollinger à double face, pouvant saisir plus d'opportunités de trading à court terme. Les avantages de cette stratégie sont la sensibilité aux changements du marché et la génération rapide de signaux. Les principaux risques proviennent de paramètres inappropriés et d'un manque de stop loss. Nous pouvons rendre la stratégie plus stable et efficace grâce à une optimisation multidimensionnelle.


/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("BB_BB", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
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 = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"


basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)

buy = crossover(sma(close,1), upper) or crossover(sma(close,1), lower)
sell = crossunder(sma(close,1), upper) or crossunder(sma(close,1), lower)

if(buy)
    strategy.entry("BUY", strategy.long, when = window())
if(sell)
    strategy.entry("SELL", strategy.short, when = window()) 

Plus de