Интеллектуальная стратегия трекинга на основе полос Боллинджера

Автор:Чао Чжан, Дата: 2024-01-17 14:05:36
Тэги:

img

Обзор

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

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

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

В частности, в стратегии в основном рассматриваются два показателя:

  1. ta.crossover ((источник, ниже): цена закрытия превышает нижний диапазон, переходит на длинный

  2. ta.crossunder ((источник, верхний): цена закрытия превышает верхний диапазон, становится короткой

Когда условие выхода запускается, используйте функцию strategy.cancel() для сглаживания существующей позиции.

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

Основными преимуществами этой стратегии являются:

  1. Основанный на индикаторе Bollinger Bands, способный отслеживать волатильность рынка и эффективно отслеживать тенденцию цен
  2. Ясная и простая логика, легкая для понимания и реализации
  3. Настраиваемые параметры, такие как длина периода и мультипликатор стандартного отклонения, очень адаптивные
  4. Конфигурируемые механизмы остановки потерь, безубыточности или отставания для оптимизации эффективности стратегии

Анализ рисков

Эта стратегия также сопряжена с некоторыми рисками:

  1. Прорывы Bollinger Bands склонны к ложным сигналам
  2. Производительность зависит от оптимизации параметров, неправильные параметры могут повлиять на прибыльность
  3. Отслеживание стоп-лосса сложно, не в состоянии эффективно контролировать однократные убытки.

Соответствующие решения:

  1. Добавьте фильтры с другими индикаторами, чтобы избежать ложных вырывов
  2. Испытать параметры тщательно, чтобы найти оптимальный набор параметров
  3. Добавление механизмов движения или следования тренду при остановке потерь

Руководство по оптимизации

Стратегия может быть дополнительно оптимизирована путем:

  1. Добавление других индикаторов для определения направления тренда, избежание неблагоприятных рыночных условий для стратегии Боллинджера
  2. Испытание различных периодов для поиска оптимального
  3. Включение механизмов движения или задержки для эффективного контроля потерь от одной сделки

Заключение

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


/*backtest
start: 2023-12-17 00:00:00
end: 2024-01-16 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Bollinger Bands Strategy with alerts (incl. pending orders) via TradingConnector to Forex", overlay=true)
source = close
length = input.int(20, minval=1)
mult = input.float(2.0, minval=0.001, maxval=50)
basis = ta.sma(source, length)
dev = mult * ta.stdev(source, length)
upper = basis + dev
lower = basis - dev
buyEntry = ta.crossover(source, lower)
sellEntry = ta.crossunder(source, upper)
if (ta.crossover(source, lower))
	strategy.entry("BBandLE", strategy.long, stop=lower, oca_name="BollingerBands", comment="BBandLE")
    alert(message='long price='+str.tostring(lower), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandLE")
    alert(message='cancel long', freq=alert.freq_once_per_bar_close)
if (ta.crossunder(source, upper))
	strategy.entry("BBandSE", strategy.short, stop=upper, oca_name="BollingerBands", comment="BBandSE")
    alert(message='short price='+str.tostring(upper), freq=alert.freq_once_per_bar_close)
else
	strategy.cancel(id="BBandSE")
    alert(message='cancel short', freq=alert.freq_once_per_bar_close)
//plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)

//Lines of code added to the original built-in script: 14, 17, 20 and 23 only.
//They trigger alerts ready to be executed on real markets through TradingConnector
//available for Forex, indices, crypto, stocks - anything your broker offers for trading via MetaTrader4/5


Больше