Стратегия Dual Bollinger Band Volatility Tracking - это количественная стратегия торговли, которая улавливает волатильность цен путем создания двойных полос Боллинджера для отслеживания.
Стратегия сначала рассчитывает N-дневную скользящую среднюю как базовую линию, а затем рассчитывает верхние и нижние рельсы на основе кратных стандартного отклонения для построения полос Боллинджера. Стратегия использует двойные полосы Боллинджера, где и верхние и нижние рельсы являются кратными стандартного отклонения. Как только формируются двойные полосы Боллинджера, сигнал покупки запускается, когда цена проходит через верхний рельс, а сигнал продажи запускается, когда цена проходит через нижний рельс, захватывая возможности волатильности цен на полосах Боллинджера.
Стратегия также устанавливает временное окно, чтобы сделать обратный тест более целевым и предотвратить влияние ранних данных на результаты теста.
Наибольшее преимущество этой стратегии заключается в том, что она может улавливать волатильность цен в режиме реального времени, прорывая верхние и нижние рельсы полос Боллинджера, чтобы определить направление ОПЕРАции. По сравнению с другими индикаторами, полосы Боллинджера реагируют на рынок более чувствительно и могут формировать торговые сигналы в течение более короткого периода времени. Кроме того, двойные полосы Боллинджера устанавливают более широкий канал, так что вероятность прорыва цен больше, что позволяет стратегии захватывать больше торговых возможностей.
Основные риски этой стратегии заключаются в параметровых настройках N-дневного периода и множественности стандартного отклонения, которые составляют полосы Боллинджера. Если параметры не установлены должным образом, это приведет к тому, что полосы Боллинджера будут слишком широкими или слишком узкими, что приведет к потере торговых возможностей или созданию ложных сигналов. Кроме того, для двойной торговли не устанавливается стоп-лосс, что может привести к увеличению потерь.
Решения заключаются в оптимизации параметров и оценке формы полос Боллинджера в режиме реального времени; также, чтобы установить стратегии остановки потери на основе исторических данных для контроля одиночных потерь.
Основные аспекты, которые необходимо оптимизировать для этой стратегии:
Оптимизировать параметры полос Боллинджера, корректировать N-дневный период и кратные стандартного отклонения, чтобы лучше соответствовать различным рыночным характеристикам.
Увеличить механизмы продления заказов для размещения дополнительных заказов после получения некоторой прибыли от первоначальных заказов, чтобы расширить пространство прибыли.
Создайте стратегии остановки потери, чтобы выйти из позиций, когда цены прорвутся через верхние или нижние рельсы полос Боллинджера в неблагоприятном направлении, контролируя потери.
Включать другие индикаторы для отслеживания сигналов и избегать ложных сигналов на волатильных рынках.
Стратегия 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())