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


Дата создания: 2023-12-20 14:03:52 Последнее изменение: 2023-12-20 14:03:52
Копировать: 1 Количество просмотров: 624
1
Подписаться
1621
Подписчики

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

Обзор

Стратегия называется “Стратегия поведения цены на основе буринских полос”. Она объединяет анализ поведения цены и индикатор буринских полос для получения торговых сигналов с использованием комплексных критериев.

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

Эта стратегия сначала рассчитывает верхний и нижний отрезки пояса Бурин, а затем определяет, прорвала ли последняя K-линия нижний отрезки пояса Бурин. В то же время, она также определяет, является ли сущность последней K-линии только половиной сущности предыдущей K-линии.

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

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

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

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

Основные риски этой стратегии заключаются в неправильной настройке параметров буринской полосы и неудаче прорыва. Если параметры буринской полосы установлены слишком большими или слишком маленькими, это может привести к ошибочному суждению. Кроме того, даже если цена прорвет буринскую полосу вниз по трассе, это может быть ложным прорывом, не способным создать истинный тренд.

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

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизация параметров Брин-полосы для более эффективного захвата тенденций и колебаний.

  2. Увеличение мобильного стоп-листа для блокировки прибыли и управления рисками.

  3. В сочетании с другими индикаторами, такими как MACD, RSI и т.д., проверяется, фильтруется ложный сигнал.

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

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

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

Исходный код стратегии
/*backtest
start: 2022-12-13 00:00:00
end: 2023-12-19 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
// main codebody taken from Trader Noro - Noro's Crypto Pattern for H1
// Intraday strategy- Exit at EOD at all cost

strategy(title = "Price Action + Bollinger Strategy ",overlay=true)
bar = close > open ? 1 : close < open ? -1 : 0
body = abs(close - open)
avgbody = sma(body, 100)

//calculate simple moving average bollinger bands
b_sma = input(21,minval=1,title=" SMA candle")
b_sma_no_of_deviations = 2.1
b_sma_signal = sma(close, b_sma)
b_sma_deviation = b_sma_no_of_deviations * stdev(close, b_sma)
b_sma_upper= b_sma_signal + b_sma_deviation
b_sma_lower= b_sma_signal - b_sma_deviation

up1 = body < body[1] / 2 and bar[1]==1 and bar == -1 and close[1] > b_sma_upper   
dn1 = body < body[1] / 2 and bar[1]==-1 and bar == 1 and close[1] < b_sma_lower  
up2 = false
dn2 = false
up2 := (up1[1] or up2[1]) and close < close[1]
dn2 := (dn1[1] or dn2[1]) and close > close[1]
plotarrow(up1 or up2 ? 1 : na, colorup = color.black, colordown = color.black, transp = 0)
plotarrow(dn1 or dn2 ? -1 : na, colorup = color.black, colordown = color.black, transp = 0)

strategy.entry("Buy", true, when = dn1)
strategy.exit("exit", "Buy", profit = 3, loss = 1.5)

strategy.entry("Short", false, when = up1)
strategy.exit("exit", "Short", profit = 3, loss = 1.5)