Стратегия Breakout Double Bollinger Bands - это стратегия, использующая верхние и нижние полосы Bollinger Bands для оценки ценовых тенденций и установления длинных позиций, когда цены прорываются через внутренние полосы Bollinger, и закрытия позиций, когда цены падают ниже внешних полос Bollinger.
Стратегия сначала рассчитывает скользящую среднюю величину и стандартное отклонение за определенный период. Затем она строит двойные полосы Боллинджера, используя скользящую среднюю ± одно стандартное отклонение для внутренних полос и скользящую среднюю ± 1,5 стандартных отклонений для внешних полос.
Когда цены выходят выше верхней внутренней полосы, это указывает на то, что рынок начинает бычий поток, поэтому идет длинный.
Выходная прибыль для длинных позиций происходит, когда цены опускаются ниже нижней наружной полосы. Выходная прибыль для коротких позиций происходит, когда цены превышают верхнюю наружную полосу.
Стратегия также устанавливает стоп-лосс, прибыль и выходы стоп-лосса.
Стратегия Double Bollinger Bands Breakout имеет следующие преимущества:
Стратегия Double Bollinger Bands Breakout также сопряжена с некоторыми рисками:
Для устранения этих рисков параметры могут быть скорректированы, добавлены дополнительные фильтры или нарушения могут контролироваться вручную для снижения риска.
Стратегия Double Bollinger Bands Breakout может быть оптимизирована несколькими способами:
Стратегия Breakout двойных полос Боллинджера в целом оценивает изменения цены относительно полос Боллинджера к временным входам в типичном тренде после подхода. Стратегия устанавливает цели прибыли с использованием двойных полос и научных механизмов выхода для контроля риска. С оптимизированными параметрами и контролем риска она может достичь хороших результатов.
/*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)