Стратегия прорыва стандартного отклонения полос Боллинджера

SMA
Дата создания: 2024-04-30 16:51:34 Последнее изменение: 2024-04-30 16:51:34
Копировать: 3 Количество просмотров: 571
1
Подписаться
1617
Подписчики

Стратегия прорыва стандартного отклонения полос Боллинджера

Обзор

Стратегия основана на индикаторе буринской полосы, открывает позиции с множественным замыканием, когда цена на закрытии прорывается вверх, и открывает позиции с открытым замыканием, когда цена на закрытии падает вниз. Условия многостороннего замыкания - это цена, которая падает вниз, и условия открытого замыкания - это цена, которая прорывается вниз.

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

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

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

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

Стратегический риск

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

Направление оптимизации стратегии

  1. Стойкость может быть объединена с ATR и другими показателями, чтобы контролировать отступление.
  2. Можно использовать динамическое соотношение свободных позиций, гибко распределяя позиции в зависимости от силы тренда.
  3. Условия открытия позиции могут быть объединены с дополнительными условиями фильтрации, такими как индикатор количества и цены, чтобы повысить надежность сигналов открытия позиции.

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

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

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

//@version=5
// Bollinger Bands: Madrid : 14/SEP/2014 11:07 : 2.0
// This displays the traditional Bollinger Bands, the difference is 
// that the 1st and 2nd StdDev are outlined with two colors and two
// different levels, one for each Standard Deviation

strategy(shorttitle='MBB', title='Bollinger Bands', overlay=true)
src = input(close)
length = input.int(20, minval=1, title = "Length")
mult = input.float(2.0, minval=0.001, maxval=50, title = "Multiplier")

basis = ta.sma(src, length)
dev = ta.stdev(src, length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

// Strategy
long_condition = ta.crossover(close, upper1)
short_condition = ta.crossunder(close, lower1)

if (long_condition)
    strategy.entry("Long", strategy.long)
if (short_condition)
    strategy.entry("Short", strategy.short)

// Exit conditions
exit_long_condition = ta.crossunder(close, basis)
exit_short_condition = ta.crossover(close, basis)

if (exit_long_condition)
    strategy.close("Long")
if (exit_short_condition)
    strategy.close("Short")


colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0))
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0))

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))