Боллингерские полосы и тренд RSI после стратегии

Автор:Чао Чжан, Дата: 2023-12-20 14:32:40
Тэги:

img

Обзор

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

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

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

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

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

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

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

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

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

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

Заключение

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


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

//@version=4
strategy("Gab EMA + rsi + bb", overlay=true)
// Custom RSI
RSIlength = input(3, minval=1 , title="lookback length of RSI")
RSIOverBought = input(70, title="RSI OB")
RSIOverSold = input(30, title="RSI OS")
RSIprice = close
vrsi = rsi(RSIprice, RSIlength)


//Bollinger Bands
BBlength = input(20, minval=1,title="Bollinger Period Length")
BBmult = input(2.0, minval=0.001, maxval=50, title="Bollinger Bands Standard Deviation")
BBbasis = sma(close, BBlength)
BBdev = BBmult * stdev(close, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close

//EMA
emaLength=input(200)

//Set TP and SL values
sl_short = high + (syminfo.mintick * 5 * 10)
tp_short = low - (syminfo.mintick * 10 * 10)
sl_long = low - (syminfo.mintick * 5 * 10)
tp_long = high + (syminfo.mintick * 10 * 10)


//Strategy Entry and Exit
strategy.entry("sell", strategy.short, when = low < ema(low, emaLength) and vrsi < RSIOverSold and low < BBlower and barstate.isconfirmed)
strategy.exit("closeshort", from_entry="sell", limit=tp_short, stop=sl_short, when=strategy.position_size != 0)

strategy.entry("buy", strategy.long, when = high > ema(high, emaLength) and vrsi > RSIOverBought and high > BBupper and barstate.isconfirmed)
strategy.exit("closelong", from_entry="buy", limit=tp_long, stop=sl_long, when=strategy.position_size != 0)



  

Больше