Эта стратегия сочетает в себе полосы Боллинджера и индикатор Аруна для получения прибыли от колебаний и прорывов на волатильных рынках.
Стратегия в основном использует два индикатора для определения торговых возможностей и точек выхода.
Первый из них - полосы Боллинджера. Он состоит из средней полосы, верхней полосы и нижней полосы. Средняя полоса - это простая скользящая средняя цена закрытия за n периодов. Верхняя полоса - это средняя полоса + k стандартных отклонений. Нижняя полоса - это средняя полоса - k стандартных отклонений. Вверх прорыв средней полосы от нижней полосы сигнализирует о длинном входе. Вниз прорыв средней полосы от верхней полосы сигнализирует о коротком входе. Стратегия использует полосы Боллинджера для выявления точек возможности среди колебательных тенденций, входящих вокруг прорывов средней полосы.
Во-вторых, индикатор Aroon. Он отражает относительную силу максимальной и минимальной цены за n периодов. Aroon может определять тенденции и возможности. Когда линия Aroon Up выше порога, она указывает на восходящую тенденцию. Когда линия Aroon Down выше порога, она указывает на нисходящую тенденцию. Стратегия использует Aroon Up для подтверждения восходящего тренда и Aroon Down для определения стоп-лосса.
Комбинируя два индикатора, стратегия идет в длинный путь, когда происходит прорыв Боллинджера, и Aroon Up выше порога.
Сочетание нескольких индикаторов повышает точность. Один индикатор восприимчив к шуму рынка. Комбинация полос Боллинджера и Аруна может отфильтровать ложные сигналы.
В своевременном порядке отслеживать изменение тренда. Боллингерские полосы обладают сильной способностью к идентификации тренда и могут обнаруживать краткосрочные возможности прорыва.
Правильный контроль риска. Стоп-лосс и Арун Даун контролируют риск снижения. Размер позиции также ограничивает потери на торговле.
По сравнению со стратегией, следующей за трендом, эта стратегия работает лучше на колеблющихся рынках.
Неожиданные события на рынке могут привести к недействительности полос Боллинджера.
Параметры Aroon нуждаются в оптимизации. Различные рынки нуждаются в скорректированных параметрах Aroon для достижения наилучших результатов.
Слишком плотный стоп-потеря вызывает повторные триггеры.
Избегайте сильных трендовых рынков. Стратегия подходит для колеблющихся рынков. Она плохо работает на сильных трендовых рынках.
Оптимизируйте параметры Боллинджера, используйте адаптивные полосы Боллинджера.
Оптимизировать динамические параметры Аруна. Разные активы и временные рамки нуждаются в разных параметрах Аруна. Исследование динамической оптимизации.
Добавьте фильтры, такие как RSI, чтобы избежать перекупа/перепродажи.
Использование машинного обучения для оптимизации остановки потери.
Индикаторы объема могут предотвратить ложные сигналы Боллинджера.
В целом это типичная стратегия торговли колебаниями. Она определяет торговые возможности путем сочетания полос Боллинджера и Арона, способных извлекать выгоду из краткосрочных колебаний рынка. При правильном стоп-лосе, управлении рисками и оптимизации параметров она подходит для рыночных диапазонов. Но для того, чтобы избежать ее применения на трендовых рынках, необходима оптимизация и контроль рисков. С дальнейшими улучшениями она может стать очень практичной квантовой стратегией.
/*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())