
Эта стратегия называется количественная стратегия Bollinger, основанная на обратном движении по полосе колебаний. Эта стратегия использует восходящие и нисходящие траектории по полосе Bollinger для принятия решений о покупке и продаже.
Эта стратегия использует индикатор RSI для определения времени покупки. В частности, она определяет, является ли закрытая цена последнего бара ниже минимальной цены предыдущих 6 бар, в то время как ширина полосы Блинна (BBW) больше установленного порога, и коэффициент полосы Блинна (BBR) находится в установленном диапазоне.
Выход проще, когда RSI выше 70, что указывает на перегрев цены акций, и тогда продается плавная позиция.
Наибольшее преимущество этой стратегии заключается в том, что она использует восходящую и нисходящую траекторию полос Bollinger, а когда Bollinger переворачивается, покупает и продает, чтобы воспользоваться возможностью краткосрочного переворота. По сравнению с простой стратегией RSI, эта стратегия более строга в определении времени покупки, что позволяет избежать вероятности ошибочной сделки.
Кроме того, эта стратегия более чувствительна к параметрам и может быть оптимизирована для различных сортов путем корректировки параметров BBW и BBR, что позволяет получить лучшие результаты.
Основная опасность этой стратегии заключается в том, что Брин-пояса не могут полностью прогнозировать обратную сторону цены, и, если они не будут использованы вовремя, это может привести к пропуску оптимального момента покупки или к виртуальному убытку.
Кроме того, краткосрочные колебания цен на акции могут привести к тому, что стратегия будет часто открывать и закрывать позиции, увеличивая затраты на торговлю и затраты на скольжение. Если не будет достаточно сильной реверсии, рискуется убыточный уравнение позиций.
Эта стратегия может быть оптимизирована в следующих аспектах:
Параметры оптимизации. Можно более тонким способом тестировать и оптимизировать параметры, такие как BBW, BBR, выбирая оптимальные параметры для различных торговых видов.
Увеличение механизма остановки убытков. Можно установить движущуюся остановку или временную остановку, чтобы контролировать максимальные потери.
В сочетании с другими индикаторами. Можно комбинировать с другими индикаторами, такими как KDJ, MACD, чтобы сделать сигнал покупки более точным и надежным.
Оптимизация механизмов выхода. Текущие механизмы выхода просты и могут быть оптимизированы, например, путем установки соответствующих мобильных стопов или выхода в сочетании с волатильностью.
Эта стратегия использует свойства Bollinger Bands, чтобы определить, когда цена может перевернуться, совершить покупку и продажу. По сравнению с отдельными показателями, такими как RSI, эта стратегия более точна в определении времени.
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study(title = "Bolinger strategy", overlay=true)
strategy("Bolinger strategy",currency="SEK",default_qty_value=10000,default_qty_type=strategy.cash,max_bars_back=50)
len = 5
src = close
up = rma(max(change(src), 0), len)
down = rma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
bbw3level = input(15, title="bbw3")
bbr3level = input(0.45, title="bbr3level")
bbrlower = input(0.4480, title="bbrlower")
bbrhigher = input(0.4560, title="bbrhigher")
sincelowestmin = input(7, title="sincelowestmin")
sincelowestmax = input(57, title="sincelowestmax")
length = input(20, minval=1)
mult = 20
src3 = close[3]
basis3 = sma(src3, length)
dev3 = mult * stdev(src3, length)
upper3 = basis3 + dev3
lower3 = basis3 - dev3
bbr3 = (src3 - lower3)/(upper3 - lower3)
bbw3 = (upper3-lower3)/basis3*100
basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
bbr = (src - lower)/(upper - lower)
bbw = (upper-lower)/basis*100
criteriamet = 0
crossUnderB0 = crossunder(bbr,0)
since_x_under = barssince(crossUnderB0)
sincelowest = barssince(close[6] > close[3] and close[5] > close[3] and close[4] > close[3] and close[2] > close[3] and close[1] > close[3] and close > close[3] and bbw3 > bbw3level and bbr3 < bbr3level) // and bbr3 < 0
if sincelowest > sincelowestmin and sincelowest < sincelowestmax and bbr > bbrlower and bbr < bbrhigher
criteriamet := 1
else
criteriamet := 0
//plot (criteriamet)
//exit
exitmet = 0
if rsi > 70
exitmet := 1
else
exitmet := 0
if criteriamet == 1
strategy.entry("long", strategy.long)
if exitmet == 1
strategy.close("long")