Стратегия прорыва колебаний полос Боллинджера

Автор:Чао Чжан, Дата: 2023-11-01 16:45:54
Тэги:

img

Обзор

Эта стратегия сочетает в себе полосы Боллинджера и индикатор Аруна для получения прибыли от колебаний и прорывов на волатильных рынках.

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

Стратегия в основном использует два индикатора для определения торговых возможностей и точек выхода.

Первый из них - полосы Боллинджера. Он состоит из средней полосы, верхней полосы и нижней полосы. Средняя полоса - это простая скользящая средняя цена закрытия за n периодов. Верхняя полоса - это средняя полоса + k стандартных отклонений. Нижняя полоса - это средняя полоса - k стандартных отклонений. Вверх прорыв средней полосы от нижней полосы сигнализирует о длинном входе. Вниз прорыв средней полосы от верхней полосы сигнализирует о коротком входе. Стратегия использует полосы Боллинджера для выявления точек возможности среди колебательных тенденций, входящих вокруг прорывов средней полосы.

Во-вторых, индикатор Aroon. Он отражает относительную силу максимальной и минимальной цены за n периодов. Aroon может определять тенденции и возможности. Когда линия Aroon Up выше порога, она указывает на восходящую тенденцию. Когда линия Aroon Down выше порога, она указывает на нисходящую тенденцию. Стратегия использует Aroon Up для подтверждения восходящего тренда и Aroon Down для определения стоп-лосса.

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

Преимущества

  1. Сочетание нескольких индикаторов повышает точность. Один индикатор восприимчив к шуму рынка. Комбинация полос Боллинджера и Аруна может отфильтровать ложные сигналы.

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

  3. Правильный контроль риска. Стоп-лосс и Арун Даун контролируют риск снижения. Размер позиции также ограничивает потери на торговле.

  4. По сравнению со стратегией, следующей за трендом, эта стратегия работает лучше на колеблющихся рынках.

Риски

  1. Неожиданные события на рынке могут привести к недействительности полос Боллинджера.

  2. Параметры Aroon нуждаются в оптимизации. Различные рынки нуждаются в скорректированных параметрах Aroon для достижения наилучших результатов.

  3. Слишком плотный стоп-потеря вызывает повторные триггеры.

  4. Избегайте сильных трендовых рынков. Стратегия подходит для колеблющихся рынков. Она плохо работает на сильных трендовых рынках.

Оптимизации

  1. Оптимизируйте параметры Боллинджера, используйте адаптивные полосы Боллинджера.

  2. Оптимизировать динамические параметры Аруна. Разные активы и временные рамки нуждаются в разных параметрах Аруна. Исследование динамической оптимизации.

  3. Добавьте фильтры, такие как RSI, чтобы избежать перекупа/перепродажи.

  4. Использование машинного обучения для оптимизации остановки потери.

  5. Индикаторы объема могут предотвратить ложные сигналы Боллинджера.

Заключение

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


/*backtest
start: 2023-10-24 00:00:00
end: 2023-10-28 21:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © relevantLeader16058

//@version=4
// strategy(shorttitle='Bollinger bands And Aroon Scalping',title='Bollinger bands And Aroon Scalping (by Coinrule)', overlay=true, initial_capital = 1000, process_orders_on_close=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 30, commission_type=strategy.commission.percent, commission_value=0.1)

//Backtest dates
fromMonth = input(defval = 1,    title = "From Month",      type = input.integer, minval = 1, maxval = 12)
fromDay   = input(defval = 1,    title = "From Day",        type = input.integer, minval = 1, maxval = 31)
fromYear  = input(defval = 2020, title = "From Year",       type = input.integer, minval = 1970)
thruMonth = input(defval = 1,    title = "Thru Month",      type = input.integer, minval = 1, maxval = 12)
thruDay   = input(defval = 1,    title = "Thru Day",        type = input.integer, minval = 1, maxval = 31)
thruYear  = input(defval = 2112, title = "Thru Year",       type = input.integer, minval = 1970)

showDate  = input(defval = true, title = "Show Date Range", type = input.bool)

start     = timestamp(fromYear, fromMonth, fromDay, 00, 00)        // backtest start window
finish    = timestamp(thruYear, thruMonth, thruDay, 23, 59)        // backtest finish window
window()  => time >= start and time <= finish ? true : false       // create function "within window of time"


// BB inputs and calculations
lengthBB = input(20, minval=1)
src = input(close, title="Source")
mult = input(2.0, minval=0.001, maxval=50, title="StdDev")
basis = sma(src, lengthBB)
dev = mult * stdev(src, lengthBB)
upper = basis + dev
lower = basis - dev
offset = input(0, "Offset", type = input.integer, minval = -500, maxval = 500)


lengthAr = input(288, minval=1)
AroonUP = 100 * (highestbars(high, lengthAr+1) + lengthAr)/lengthAr
AroonDown = 100 * (lowestbars(low, lengthAr+1) + lengthAr)/lengthAr


Confirmation = input(90, "Aroon Confirmation")
Stop = input(70, "Aroon Stop")

Bullish = crossunder (close, basis)
Bearish = crossunder (close, upper)

//Entry 

strategy.entry(id="long", long = true, when = Bullish and AroonUP > Confirmation and window())

//Exit

strategy.close("long", when = Bearish or AroonUP < Stop and window())




Больше