Пятиминутная количественная торговая стратегия с двойным фильтром и стандартным отклонением полос Боллинджера

Boll BB SMA stdev
Дата создания: 2024-04-30 16:03:11 Последнее изменение: 2024-04-30 16:03:11
Копировать: 0 Количество просмотров: 720
1
Подписаться
1617
Подписчики

Пятиминутная количественная торговая стратегия с двойным фильтром и стандартным отклонением полос Боллинджера

Обзор

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

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

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

Стратегические преимущества

  1. Настройка двойного стандартного отклонения повышает точность определения тенденций.
  2. Высокая частота транзакций на уровне 5 минут, подходящая для быстрых входов и выходов.
  3. Оценка силы тренда помогает контролировать риск.
  4. Параметры могут быть изменены в зависимости от рынка.

Стратегический риск

  1. Частые транзакции могут привести к высоким комиссионным.
  2. Ошибки в оценке трендов приводят к убыткам.
  3. Отсутствие мер предосторожности приводит к повышенному риску.
  4. Не хватает понимания односторонних тенденций.

Направление оптимизации стратегии

  1. Внедрение механизмов стоп-лосса и стоп-стоп для контроля рисков в отдельных сделках.
  2. Оптимизация параметров Брин-пояса и повышение способности улавливать тенденции.
  3. Добавление вспомогательных показателей для определения тенденции, таких как MA, повышает коэффициент победы.
  4. Фильтрационные условия для землетрясений.

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2024-03-01 00:00:00
end: 2024-03-31 23:59:59
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//This displays the traditional Bollinger Bands, the difference is
//that the 1st and 2nd StdDev are outlined with two colors and two
//different levels, one for each Standard Deviation

strategy("Five Min Scalping Strategy", overlay=true)

src = input(close, title="Source")
length = input.int(20, minval=1, title="Length")
mult = input.float(2.0, minval=0.001, maxval=50, title="Multiplier")

basis = ta.sma(src, length)
dev = ta.stdev(src,length)
dev2 = mult * dev

upper1 = basis + dev
lower1 = basis - dev
upper2 = basis + dev2
lower2 = basis - dev2

LongCondition = close[1] < lower1 and close > lower1
ShortCondition = close[1] > upper1 and close < upper1

strategy.entry("Long", strategy.long, when = LongCondition)
strategy.entry("Short", strategy.short, when = ShortCondition)

strategy.close("Long", when = ShortCondition)
strategy.close("Short", when = LongCondition)

colorBasis = src >= basis ? color.blue : color.orange

pBasis = plot(basis, linewidth=2, color=colorBasis)
pUpper1 = plot(upper1, color=color.new(color.blue, 0), style=plot.style_circles)
pUpper2 = plot(upper2, color=color.new(color.blue, 0), style=plot.style_circles)
pLower1 = plot(lower1, color=color.new(color.orange, 0), style=plot.style_circles)
pLower2 = plot(lower2, color=color.new(color.orange, 0), style=plot.style_circles)

fill(pBasis, pUpper2, color=color.new(color.blue, 80))
fill(pUpper1, pUpper2, color=color.new(color.blue, 80))
fill(pBasis, pLower2, color=color.new(color.orange, 80))
fill(pLower1, pLower2, color=color.new(color.orange, 80))