Stratégie de rupture des bandes de Bollinger doubles

Auteur:ChaoZhang est là., Date: 2023-12-25 13:20:31 Je vous en prie.
Les étiquettes:

img

Résumé

La stratégie Double Bollinger Bands Breakout est une stratégie de suivi des tendances. Elle utilise les bandes supérieures et inférieures des bandes de Bollinger pour juger des tendances des prix et établir des positions longues lorsque les prix franchissent les bandes de Bollinger internes et des positions fermées lorsque les prix tombent en dessous des bandes de Bollinger externes.

La logique de la stratégie

La stratégie calcule d'abord la moyenne mobile et l'écart type sur une période spécifiée. Elle construit ensuite les bandes de Bollinger doubles en utilisant la moyenne mobile ± un écart type pour les bandes internes et la moyenne mobile ± 1,5 écart type pour les bandes externes.

Lorsque les prix dépassent la bande intérieure supérieure, cela indique que le marché commence une course haussière, donc va long.

Le profit de sortie pour les positions longues est lorsque les prix tombent en dessous de la bande extérieure inférieure.

La stratégie définit également les sorties stop loss, take profit et trailing stop loss.

Analyse des avantages

La stratégie Double Bollinger Bands Breakout présente les avantages suivants:

  1. L' utilisation de bandes de Bollinger doubles pour juger des mouvements de prix permet de suivre efficacement la tendance;
  2. L'introduction de ruptures de bande intérieure évite les transactions de réversion de la moyenne inutiles;
  3. Les risques de prise de profit, de stop-loss et de stop-loss de suivi sont contrôlés de manière efficace;
  4. Les paramètres optimisés permettent de régler les différents produits.

Analyse des risques

La stratégie Double Bollinger Bands Breakout comporte également certains risques:

  1. Des entrées fréquentes et des arrêts de pertes peuvent se produire sur les marchés à fourchette;
  2. Des paramètres mal réglés pourraient entraîner des entrées ou des sorties trop faciles;
  3. Les évasions donnent parfois de faux signaux qui aboutissent à des évasions infructueuses.

Pour faire face à ces risques, les paramètres pourraient être ajustés, des filtres supplémentaires ajoutés ou des éruptions contrôlées manuellement pour réduire les risques.

Directions d'optimisation

La stratégie Double Bollinger Bands Breakout peut être optimisée de plusieurs façons:

  1. Optimiser les paramètres de la moyenne mobile et de l'écart type pour les adapter aux différents produits;
  2. Ajouter le volume, le MACD ou d'autres filtres pour éviter de fausses ruptures;
  3. Utiliser des méthodes d'apprentissage automatique pour optimiser dynamiquement les paramètres;
  4. Copiez la stratégie sur plusieurs intervalles de haute fréquence pour augmenter le potentiel de profit.

Conclusion

La stratégie Double Bollinger Bands Breakout évalue globalement les changements de prix par rapport aux bandes de Bollinger par rapport aux entrées de temps dans une approche de tendance typique. La stratégie fixe des objectifs de profit en utilisant les bandes doubles et des mécanismes de sortie scientifiques pour contrôler le risque.


/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy("BB Strat",default_qty_type = strategy.percent_of_equity, default_qty_value = 100,currency="USD",initial_capital=100, overlay=true)
l=input(title="length",defval=100)
pbin=input(type=float,step=.1,defval=.25)
pbout=input(type=float,step=.1,defval=1.5)
ma=sma(close,l)
sin=stdev(ma,l)*pbin
sout=stdev(ma,l)*pbout
inu=sin+ma
inb=-sin+ma
outu=sout+ma
outb=-sout+ma
plot(inu,color=lime)
plot(inb,color=lime)
plot(outu,color=red)
plot(outb,color=yellow)

inpTakeProfit = input(defval = 0, title = "Take Profit", minval = 0)
inpStopLoss = input(defval = 0, title = "Stop Loss", minval = 0)
inpTrailStop = input(defval = 0, title = "Trailing Stop Loss", minval = 0)
inpTrailOffset = input(defval = 0, title = "Trailing Stop Loss Offset", minval = 0)
useTakeProfit = inpTakeProfit >= 1 ? inpTakeProfit : na
useStopLoss = inpStopLoss >= 1 ? inpStopLoss : na
useTrailStop = inpTrailStop >= 1 ? inpTrailStop : na
useTrailOffset = inpTrailOffset >= 1 ? inpTrailOffset : na


longCondition = close>inu and rising(outu,1) 
exitlong = (open[1]>outu and close<outu) or crossunder(close,ma)

shortCondition = close<inb and falling(outb,1)
exitshort = (open[1]<outb and close>outb) or crossover(close,ma)

strategy.entry(id = "Long", long=true, when = longCondition)
strategy.close(id = "Long", when = exitlong)
strategy.exit("Exit Long", from_entry = "Long", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitlong)

strategy.entry(id = "Short", long=false, when = shortCondition)
strategy.close(id = "Short", when = exitshort)
strategy.exit("Exit Short", from_entry = "Short", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset, when=exitshort)

Plus de