Стратегия интеллектуального отслеживания Double B


Дата создания: 2024-01-18 15:41:20 Последнее изменение: 2024-01-18 15:41:20
Копировать: 2 Количество просмотров: 539
1
Подписаться
1617
Подписчики

Стратегия интеллектуального отслеживания Double B

Это стратегия торговли с использованием индекса бурин-пояса. Эта стратегия направлена на то, чтобы использовать индикатор бурин-пояса, чтобы идентифицировать время сильных колебаний цен и принимать соответствующие решения о покупке или продаже.

Стратегический принцип

Стратегия рассчитывает верхнюю, среднюю и нижнюю линию траектории Брин-Бенда, чтобы определить, находится ли текущая цена в диапазоне колебаний, чтобы определить, когда нужно построить или закрыть позицию. Когда цена приближается к верхней траектории, она рассматривается как многоголовая крайняя зона, и стратегия выбирает продажу плоской позиции; когда цена приближается к нижней траектории, она рассматривается как пустая крайняя зона, и стратегия выбирает покупку.

Кроме того, в стратегии вводятся факторы обратного тренда, которые в случае возникновения обратного сигнала также могут спровоцировать соответствующее решение о покупке или продаже. В частности, логика стратегии такова:

  1. Расчет верхних, средних и нижних путей по ленте Брин
  2. Определить, пробилась ли цена с обратным сигналом
    1. Прорыв средней полосы как сигнал тренда
    2. В качестве обратного сигнала вблизи подъезда или выезда
  3. Выдача ордера на покупку, продажу или ликвидацию

Это основная логика торговли этой стратегии. Используя свойства буринской полосы, в сочетании с трендом и обратным фактором, стратегия пытается захватить обратную точку для торговли в момент усиления волатильности.

Стратегические преимущества

По сравнению с обычной стратегией скользящей средней, она имеет следующие преимущества:

  1. Это позволит нам быть более чувствительными к колебаниям цен.
  2. Вместе с тем следует учитывать тенденции и обратные факторы, чтобы избежать убытков от преждевременного разворота.
  3. Имеет определенный эффект фильтрации, чтобы избежать бесполезной торговли в не волатильных зонах.
  4. Уменьшение количества сделок с помощью определения направления основных тенденций
  5. Добавление условий обратной фильтрации снижает вероятность ошибочных выводов

В целом, эта стратегия лучше всего сочетает в себе суждения о буринской зоне и ценовых субъектах, торгуя в разумных переломных точках, гарантируя определенный уровень прибыли и контролируя риски.

Риск и оптимизация

Тем не менее, эта стратегия несет в себе определенные риски, которые проявляются в следующем:

  1. Недостаточная настройка параметров Брин-пояса не позволяет в полной мере зафиксировать колебания цен.
  2. Неточный, пропущенный или ошибочный отсчет обратного сигнала
  3. Сигналы на средней полосе плохо работают, когда тенденция не очевидна

В соответствии с этим, в будущем оптимизация может быть осуществлена в следующих направлениях:

  1. Оптимизация параметров Брин-полосы в зависимости от параметров разных сортов
  2. Увеличение вероятности обратного решения в модели машинного обучения
  3. Перейти к другим показателям, если тенденция не ясна
  4. Фильтрация торговых сигналов в сочетании с другими ценовыми формами

Подвести итог

В целом, эта стратегия является типичным шаблоном стратегии торговли в брин-поясе. Она избегает недостатков неэффективных сделок, которые легко могут возникнуть только с использованием брин-пояса. Благодаря введению реверсивных суждений о тренде, эффективное фильтрование сигналов теоретически обеспечивает лучшую эффективность стратегии.

Исходный код стратегии
/*backtest
start: 2023-12-18 00:00:00
end: 2024-01-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy("Noro's Bollinger Strategy v1.2", shorttitle = "Bollinger str 1.2", overlay = true )

//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 close >= basis and close < upper and (close < strategy.position_avg_price or strategy.position_size == 0) and uset
dn1 = bar == 1 and close <= basis and close > 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)

if dn1 or dn2
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if exit
    strategy.close_all()