Стратегия прорыва полосы Бора


Дата создания: 2023-09-21 10:38:13 Последнее изменение: 2023-09-21 10:38:13
Копировать: 0 Количество просмотров: 607
1
Подписаться
1617
Подписчики

Обзор

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

Стратегический принцип

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

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

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

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

  1. Простые, интуитивные, понятные и реалистичные
  2. Используя индикатор Bollinger Bands, можно определить прорыв, а также проследить за тенденциями.
  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()