
Стратегия является основанной на буринской стратегии отслеживания динамических колебаний. Она объединяет буринские индикаторы для определения тенденции рынка и обратных точек, чтобы отслеживать колебания рынка путем установки свободных позиций.
Центральным показателем стратегии является бурин-пояса. Бурин-пояса состоят из средней, верхней и нижней полос. Средняя полоса представляет собой n-дневную скользящую среднюю, а верхняя и нижняя полосы - отклонение от средней полосы плюс-минус. Когда цена приближается к верхней и нижней полосе, это считается сигналом о перепродаже.
Стратегия одновременно включает в себя трендовые и реверсионные позиции, которые соответствуют различным торговым возможностям. Трендовые позиции требуют, чтобы средняя полоса была ссылкой на поддерживающую сопротивление, что создает эффект отклонения от прорыва.
Эта стратегия объединяет в себе черты сверхпокупа и сверхпродажи по Брин-Бенду, в дополнение к реверсивному суждению. Это позволяет ей одновременно применяться в трендовых и шокирующих рынках, чтобы захватить различные типы торговых возможностей. Установка стоп-лосс-экзита стратегии предотвращает расширение убытков.
По сравнению с простой стратегией Брин-пояса, логическое суждение о тренде, включенное в эту стратегию, делает позиции более стабильными, а также использует возможности для обратного обмена. Это повышает коэффициент доверия и шума. Во-вторых, многообещающая двусторонняя торговля также более полно использует торговые возможности на разных рынках.
Стратегия основывается на особенностях перекупки и перепродажи в бурин-поясе. Поэтому, когда цены сильно колеблются, диапазон бурин-пояса увеличивается, что может привести к многократным убыточным закладкам. Это потенциальный риск. Кроме того, в обратном суждении все еще есть определенная неопределенность и ошибка, которые могут привести к неудачным закладкам и остановке убытков.
В случае неэффективности буринского пояса, можно сократить параметр n дней, чтобы сделать буринский пояса более чувствительным. Или уменьшить его диапазон, чтобы снизить вероятность убытков. Для обратного решения кривой можно уменьшить ошибку, оптимизировав параметр прорыва.
В этой стратегии можно оптимизировать следующие направления:
Эта стратегия является эффективным расширением и оптимизацией стандартной стратегии Брин-Бенда. Добавление отклонения от тренда повышает стабильность и использует возможности для обратного обмена. Много свободных двусторонних сделок и параметры остановки убытков также делают стратегию более сильной.
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy("Noro's Bollinger Strategy v1.3", shorttitle = "Bollinger str 1.3", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
length = input(20, defval = 20, minval = 1, maxval = 1000, title = "Bollinger Length")
mult = input(2.0, defval = 2.0, minval = 0.001, maxval = 50, title = "Bollinger Mult")
source = input(ohlc4, defval = ohlc4, title = "Bollinger Source")
uset = input(true, defval = true, title = "Use trend entry")
usect = input(true, defval = true, title = "Use counter-trend entry")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
showbands = input(true, defval = true, title = "Show Bollinger Bands")
//Bollinger Bands
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
//Lines
col = showbands ? black : na
plot(upper, linewidth = 1, color = col)
plot(basis, linewidth = 1, color = col)
plot(lower, linewidth = 1, color = col)
//Body
body = abs(close - open)
abody = ema(body, 30)
//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up1 = bar == -1 and ohlc4 >= basis and ohlc4 < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and ohlc4 <= basis and ohlc4 > lower and (close > strategy.position_avg_price or strategy.position_size == 0) and uset
up2 = close <= lower and usect
dn2 = close >= upper and usect
exit = ((strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)) and body > abody / 2
//Trading
if up1 or up2
strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn1 or dn2
strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()