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

Автор:Чао Чжан, Дата: 2023-10-25 11:04:13
Тэги:

img

Обзор

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

Логика стратегии

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

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

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

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

  1. Торговля тенденцией низкой волатильности уменьшает случайность и повышает стабильность

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

  1. Движущаяся средняя помогает судить о тренде, улучшая точность

Движущаяся средняя, в дополнение к полосам Боллинджера, измеряющим волатильность, помогает определить направление тренда, причем оба подтверждают друг друга и улучшают точность.

  1. Встроенные средства контроля стоп-потери

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

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

  1. Риск ошибочной оценки тенденции

Направление скользящей средней может измениться во время сокращения диапазона, что приводит к неправильному оценке тренда и потерям.

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

  1. Риск чрезмерной волатильности диапазона

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

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

  1. Риск неудачного прорыва

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

Использование только закрывающих перерывов или добавление подтверждения объема может уменьшить неудачные перерывы.

Руководство по оптимизации

  1. Добавить дополнительные подтверждения показателей

Добавление таких индикаторов, как MACD и KDJ для подтверждения сигналов скользящих средних, повышает точность.

  1. Оптимизировать параметры

Обратное тестирование для поиска оптимальных скользящих средних и стандартных отклонений мультипликаторов улучшает производительность.

  1. Оптимизировать время входа

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

  1. Оптимизировать стратегию стоп-лосса

Задержка и движение могут помочь зафиксировать прибыль и предотвратить возвращение прибыли.

Заключение

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


/*backtest
start: 2022-10-24 00:00:00
end: 2023-10-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Trading Public School", overlay=true)
source = close
length = input(20, minval=1)
mult = input(2.0, minval=0.001, maxval=50)

basis = sma(source, length)
dev = mult * stdev(source, length)

upper = basis + dev
lower = basis - dev

buyEntry = crossover(source, lower)
sellEntry = crossunder(source, upper)

if (crossover(source, lower))
    strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands",  comment="BBandLE")
else
    strategy.cancel(id="BBandLE")

if (crossunder(source, upper))
    strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands",  comment="BBandSE")
else
    strategy.cancel(id="BBandSE")

//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)


Больше