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

Автор:Чао Чжан, Дата: 2023-12-25 11:49:41
Тэги:

img

Обзор

Стратегия Dual Bollinger Band Volatility Tracking - это количественная стратегия торговли, которая улавливает волатильность цен путем создания двойных полос Боллинджера для отслеживания.

Принцип стратегии

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

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

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

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

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

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

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

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

Основные аспекты, которые необходимо оптимизировать для этой стратегии:

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

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

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

  4. Включать другие индикаторы для отслеживания сигналов и избегать ложных сигналов на волатильных рынках.

Заключение

Стратегия Dual Bollinger Band Volatility Tracking отслеживает волатильность цен в режиме реального времени, создавая двусторонние полосы Боллинджера, способные использовать больше краткосрочных торговых возможностей. Преимущества этой стратегии - чувствительность к изменениям рынка и быстрая генерация сигналов. Основные риски возникают из-за ненадлежащих настроек параметров и отсутствия стоп-лосса. Мы можем сделать стратегию более стабильной и эффективной посредством многомерной оптимизации.


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

//@version=3
strategy("BB_BB", overlay=true,default_qty_type=strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)
length = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear = input(defval = 2017, title = "From Year", minval = 2017)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"


basis = sma(src, length)
dev = mult * stdev(src, length)
upper = basis + dev
lower = basis - dev
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)

buy = crossover(sma(close,1), upper) or crossover(sma(close,1), lower)
sell = crossunder(sma(close,1), upper) or crossunder(sma(close,1), lower)

if(buy)
    strategy.entry("BUY", strategy.long, when = window())
if(sell)
    strategy.entry("SELL", strategy.short, when = window()) 

Больше