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

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

img

Обзор

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

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

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

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

Подробные правила торговли сигналами:

  1. Расчет верхней полосы, средней полосы и нижней полосы полос Боллинджера для определения диапазона цен

  2. Когда цена выходит за верхний диапазон, это сигнализирует о восходящей/длинной тенденции.

  3. Если свеча быстрый, подтвердить тенденцию и пойти долго

  4. Когда цена прорывается ниже нижней полосы, это сигнализирует о снижающейся/короткой тенденции

  5. Если свеча медвежий, подтвердить тенденцию и пойти короткий

  6. Установка стоп-лосса и прибыли на основе процента

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

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

Это типичная тенденция, следующая за стратегией со следующими преимуществами:

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

  2. Подтверждение свечей отфильтровывает ложные прорывы

  3. Среднесрочное удержание снижает частоту торговли и снижает затраты/сдвиг

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

  5. Результаты обратных тестов хорошие, а реальная торговля стабильна благодаря систематизации.

  6. Логика стратегии ясна и легко понятна, с возможностью улучшения

Определяя тренд с помощью полос Боллинджера и входя на подтверждение свечей, эта стратегия эффективно улавливает среднесрочный импульс, обусловленный объемом.

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

Для этой стратегии также существуют некоторые риски:

  1. Риск неудачного прорыва.

  2. Риск реверсии: среднесрочные тенденции также могут измениться, следует установить разумные остановки

  3. Оптимизация параметров риска. Параметры и остановки Bollinger Bands требуют настройки для разных акций

  4. Риск перенастройки. Чрезмерная оптимизация параметров приводит к настройке кривой

  5. Риск исполнения: существует расхождение между обратным тестированием и реальной торговлей

Для устранения этих рисков можно сделать следующие улучшения:

  1. Оптимизировать параметры и ширину полос Боллинджера для лучшего соответствия

  2. Добавьте больше факторов, таких как объем, чтобы подтвердить тенденцию

  3. Используйте динамические остановки, чтобы предотвратить огромные потери при переворотах

  4. Применять анализ ходьбы вперед, чтобы избежать перенастройки

  5. Улучшение исполнения ордеров для повышения эффективности реальной торговли

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

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

  1. Добавьте больше индикаторов, таких как KDJ, MACD, чтобы подтвердить сигналы и улучшить точность

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

  3. Установите ценовые зоны вокруг точек прорыва для получения более точных сигналов

  4. Оптимизируйте выход с задержкой или частичным получением прибыли

  5. Внедрение размещения позиций для улучшения управления рисками

  6. Использование расширенных типов заказов для улучшения результатов исполнения

  7. Добавление фильтров режима рынка для отключения стратегии в определенных средах

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

Заключение

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

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

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


/*backtest
start: 2022-11-09 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.2", shorttitle = "Scalper str 1.2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd1 = center + distsma / 2
ld1 = center - distsma / 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = sma(body, 100)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)

Больше