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 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.
La stratégie Double Bollinger Bands Breakout présente les avantages suivants:
La stratégie Double Bollinger Bands Breakout comporte également certains risques:
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.
La stratégie Double Bollinger Bands Breakout peut être optimisée de plusieurs façons:
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)