Стратегия Bollinger Breakout

Автор:Чао Чжан, Дата: 2021-09-21 10:38:13
Тэги:

Обзор

Эта стратегия основана на индикаторе Bollinger Bands, принимая длинные или короткие позиции, когда цена выходит из верхних или нижних линий Bollinger Bands.

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

  1. Расчет средней линии Боллинджера, верхней и нижней линий
  2. Пройти длинный на нижней линии прорыв; идти короткий на верхней линии прорыв
  3. Установка времени начала и окончания для определения времени торговли
  4. Установка времени ожидания, по умолчанию на выход внутридневный

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

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

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

  1. Простой и интуитивный, легко понимаемый и реализуемый
  2. Используйте полосы Боллинджера для оценки прорывов тренда, имеет некоторую тенденцию, следующую возможности
  3. Гибкое регулирование параметров для различных циклов и продуктов
  4. Контроль внутридневного выхода
  5. Может позволить только длинную или короткую торговлю

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

  1. Риск ложного выхода, цена может восстановиться после первого выхода.
  2. Необходимо своевременное настройка параметров. Параметры нуждаются в корректировке для разных циклов.
  3. Риск увеличения потенциальных потерь.
  4. Частая торговля может увеличить затраты на транзакции.

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

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

  1. Оптимизировать параметры для различных циклов
  2. Добавить правила повторного вхождения и пирамиды, чтобы следовать тенденциям
  3. Внедрение стоп-лосса для контроля рисков
  4. Установите время торговли для избежания значительных новостных событий
  5. Проверьте фильтры тренда, чтобы избежать колебаний цены
  6. Оценить различные периоды хранения и сравнить результаты

Резюме

Это стратегия прорыва, основанная на полосах Боллинджера. Она получает прибыль от прорывных движений. Преимущества заключаются в простой логике и легкой реализации; минусы - в восприимчивости к ложным прорывам. Риски можно управлять с помощью оптимизации параметров, стоп-лосса, контроля торговых часов и т. Д. Это позволяет трейдерам понять основы использования индикаторов и торговых прорывов.


/*backtest
start: 2023-08-21 00:00:00
end: 2023-09-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy("Noro's Bollinger Strategy v1.0", shorttitle = "Bollinger str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100.0, pyramiding = 5)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

length = input(20, minval=1)
mult = input(1.0, minval=0.001, maxval=50)

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")

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

upper = basis + dev
lower = basis - dev

up = close < lower
dn = close > upper
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open)

if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, 01, 00, 00) and time < timestamp(toyear, tomonth, 31, 00, 00)))
    
if time > timestamp(toyear, tomonth, 31, 00, 00) or exit
    strategy.close_all()

Больше