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


Дата создания: 2023-09-19 16:06:56 Последнее изменение: 2023-09-19 16:06:56
Копировать: 2 Количество просмотров: 821
1
Подписаться
1617
Подписчики

Обзор

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

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

  1. Вычислите среднюю линию SMA по поясу Бурин, взяв простую скользящую среднюю цены недавнего закрытия.

  2. Расчетная стандартная разница StdDev, отражающая диапазон колебаний цен.

  3. Средняя SMA плюс отклонение от стандартной погрешности, полученное Брином.

  4. Средняя линия SMA за вычетом стандартного отклонения, полученная Брином.

  5. Когда цена на конец торгового дня поднимается вверх и выходит из строя, то следует сделать дополнительный вход.

  6. Когда цена касается рельса, считается, что цена является аномальной, и закрывается позиция.

Анализ преимуществ

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

  1. Брин автоматически адаптируется к рыночным колебаниям.

  2. Прорыв является более надежным сигналом входа.

  3. Возвращение к центральной оси в качестве стоп-сигнала обосновано.

  4. Параметры могут быть оптимизированы и адаптированы для различных рынков.

  5. Получается, что в этом случае можно использовать как среднюю, так и длинную линию, а также короткую.

Анализ рисков

Основные риски этой стратегии:

  1. Брин-лист не очень эффективен на горизонтальном рынке, поэтому следует избегать ошибок.

  2. Сигналы о прорыве могут быть ложными, поэтому следует быть осторожным.

  3. Положение тормоза слишком идеальное, его можно оптимизировать для практических случаев.

  4. Неправильная настройка параметров может привести к слишком частым или консервативным сделкам.

  5. Период отсчета должен быть достаточно длительным, чтобы избежать кривосочетания.

Соответствующие меры по устранению риска:

  1. Фильтрационный сигнал в сочетании с индексом объема торгов.

  2. Оптимизация параметров, тестирование эффективности данных для разных рынков.

  3. Дополнительная установка мобильной остановки, ротационная остановка.

  4. Оценка сигналов отклоняется, чтобы избежать преследования.

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

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Попробуйте разные параметры ленты Бринна, чтобы найти оптимальную комбинацию.

  2. Повышение средней линии, MACD и другие показатели фильтруют прорывные сигналы.

  3. Применение алгоритмов машинного обучения для оптимизации параметров Брин-полосы.

  4. При прорыве входа в игру, оценить свои сильные и слабые стороны и скорректировать позиции.

  5. Отслеживание более длительных циклов данных, стабильность тестирования стратегий.

  6. Добавление механизма сдерживания убытков для контроля риска.

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

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

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

//@version=4

strategy(title="BB training No Repainting (OTS Mode)", overlay=true)


// Strategy Rules:
// 1. Enter trade when price crosses above the lower band
// 2. Exit trade when price touches the upper band
// 

// Chart Properties
testStartYear = input(2010, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0)

testStopYear = input(2030, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and time >= testPeriodStart and time <= testPeriodStop ? #6c6f6c : na
bgcolor(testPeriodBackgroundColor, transp=97)

// User provided values
smaLength = input(title="SMA Length", type=input.integer, defval=20) // Middle band period length (moving average)
stdLength = input(title="StdDev Length", type=input.integer, defval=20) // Range to apply bands to
ubOffset = input(title="Upper Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviations above MA
lbOffset = input(title="Lower Band Offset", type=input.float, defval=2.0, step=0.5) // Number of standard deviation below MA

testPeriod() =>
    time >= testPeriodStart and time <= testPeriodStop ? true : false

smaValue = sma(close, smaLength) // Middle band
stdDev = stdev(close, stdLength)
upperBand = smaValue + stdDev * ubOffset // Top band
lowerBand = smaValue - stdDev * lbOffset // Bottom band

// Plot bands to chart
plot(series=smaValue, title="SMA", color=color.green)
plot(series=upperBand, title="UB", color=color.blue, linewidth=2)
plot(series=lowerBand, title="LB", color=color.blue, linewidth=2)

longCondition = (crossover(close, lowerBand))
closeLongCondition = (close >= upperBand)

if (longCondition and testPeriod())
    strategy.entry(id="CALL", long=true)

strategy.close(id="CALL", when=closeLongCondition)