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

Автор:Чао Чжан, Дата: 2023-12-28 15:54:07
Тэги:

img

Обзор

Эта стратегия строит торговую стратегию на основе индикатора Болинджерских полос для достижения автоматизированной торговли на фьючерсах биткоина в течение 1-минутного периода времени.

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

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

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

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

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

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

Кроме того, стратегия основана исключительно на индикаторе Bollinger Bands, который очень прост и отвечает требованиям количественной торговли.

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

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

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

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

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

  1. Индикаторы, такие как KDJ и MACD, могут помочь оценить экстремальные условия перекупки / перепродажи для модификации торговых сигналов.

  2. По сравнению со статическим стоп-лосом, стоп-лосс может корректировать позицию стоп-лоса соответствующим образом на основе колебаний цен.

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

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

  5. Добавить продвинутые стратегии управления рычагами.Управлять профилем риска стратегии путем динамической корректировки рычагов.

Заключение

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


/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Kozlod - BB Strategy - 1 minute", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)

// 
// author: Kozlod
// date: 2019-05-29
// BB - XBTUDS - Bitmex - 1m
// https://www.tradingview.com/u/Kozlod/
// https://t.me/quantnomad
//

source = close
length = input(55, minval=1)
mult = input(4, minval=0.001, maxval=50)

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

upper = basis + dev
lower = basis - dev

plot(upper)
plot(lower)

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")

Больше