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

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

img

Обзор

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

Принципы

Эта стратегия сначала использует нижнюю полосу индикатора Болинджерских полос. Когда цена ниже нижней полосы, это считается возможностью открыть позицию. Чтобы избежать перекупки, стратегия также вводит индикатор RSI, который требует, чтобы RSI был меньше 30 для генерации сигнала покупки. Кроме того, стратегия устанавливает фильтр тела свечи, который требует, чтобы тело текущего свеча было больше половины среднего тела свечей за последние 10 периодов, чтобы инициировать покупку. Наконец, цветовой фильтр требует, чтобы свеча была зеленой (закрываясь выше), чтобы еще больше подтвердить время покупки.

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

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

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

  1. Индикатор Bollinger Bands точно определяет направление тренда. Он использует диапазон колебаний цен для определения движения цен, поэтому с помощью этого индикатора можно эффективно определить начало и конец тренда.

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

  3. Фильтрация объектов повышает надежность сигнала. Более крупный корпус свечи представляет собой более мощный прорыв. Фильтрация объектов обеспечивает покупку сильных прорывов.

  4. Только покупка на зеленых свечах еще больше подтверждает правильное время.

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

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

Стратегия также несет в себе некоторые риски:

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

  2. Потери увеличиваются без стоп-лосса. Отсутствие стоп-лосса может привести к большим потерям, если суждения неверны.

  3. Слишком строгие условия фильтрации могут привести к упущению возможности покупки.

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

  5. Зеленый цвет свечи не является надежным для определения перемены тренда.

Для рисков стоп-лосс может контролировать потери, оптимизация фильтров уменьшает пропущенные покупки, использование нескольких индикаторов проверяет сигналы и проверяет результаты в режиме реального времени.

Направления к улучшению

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

  1. Оптимизируйте параметры полосы Боллинджера для наилучших настроек.

  2. Испытывайте различные осцилляторы вместо RSI, например, KDJ, Williams %R и т.д.

  3. Добавьте задержку потерь для контроля рисков.

  4. Оптимизируйте параметры состояния фильтра.

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

  6. Испытывать различные сигналы обратного движения, например, пересечение скользящей средней для определения обратного движения.

  7. Тестирование на различных продуктах и сроках. Оценка стратегии на разных рынках.

Заключение

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


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

//Noro
//2018

//Donate: 3BMEXvKkuJLobJrcpMm12bKTZoCnojZTjh

//@version=2
strategy(title = "Noro's Wizard Strategy v1.1", shorttitle = "Wizard str 1.1", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 10)

//Settings
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
length = input(40, defval = 40, minval = 1, maxval = 200, title = "BB Period")
usebod = input(false, defval = false, title = "Use Body-Filter")
usecol = input(false, defval = false, title = "Use Color-Filter")
usersi = input(true, defval = true, title = "Use RSI-Filter")
showar = input(false, defval = false, title = "Show Arrows")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Bollinger
src = low
mult = 2
basis = sma(src, length)
dev = mult * stdev(src, length)
lower = basis - dev
plot(lower, color = lime, linewidth = 3, title="Bottom Line")

//Fast RSI Filter
fastup = rma(max(change(close), 0), 7)
fastdown = rma(-min(change(close), 0), 7)
rsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
rsif = rsi < 30 or usersi == false

//Body Filter
nbody = abs(close - open)
abody = sma(nbody, 10)
body = nbody > abody / 2 or usebod == false

//Signals
up1 = low < lower and (close < open or usecol == false) and body and rsif
exit = close > open and nbody > abody / 2

//Arrows
needar = up1 and showar
plotarrow(needar ? 1 : na)

//Trading
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

if up1
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

Больше