В процессе загрузки ресурсов... загрузка...

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

Автор:Чао Чжан, Дата: 2024-04-30 16:03:11
Тэги:БоллББSMAstdev

img

Обзор

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

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

  1. Вычислить исходную линию полос Боллинджера, верхнюю полосу 1, верхнюю полосу 2, нижнюю полосу 1 и нижнюю полосу 2.
  2. Сгенерировать сигнал покупки, когда цена закрытия пересекает нижнюю полосу 1 снизу.
  3. Сгенерировать сигнал продажи, когда цена закрытия пересекает верхнюю полосу 1 сверху.
  4. После покупки, закрыть позицию, когда появится сигнал продажи. После продажи, закрыть позицию, когда появится сигнал покупки.
  5. Верхняя полоса 2 и нижняя полоса 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))


Связанные

Больше