Стратегия прорыва RSI-BB

Автор:Чао Чжан, Дата: 2023-11-03 15:02:19
Тэги:

img

Обзор

Стратегия RSI-BB сочетает в себе индикаторы относительной силы (RSI) и полос Боллинджера (BB) для торговли. Она использует RSI для определения рыночных тенденций и уровня перекупленности / перепроданности, а BB для определения точек прорыва. Когда оба сигнала RSI и BB выравниваются, стратегия будет вносить долгие или короткие сделки соответственно.

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

Код сначала вычисляет показатели RSI и BB.

RSI рассчитывается как:

up = rma(max(change(close), 0), 30)
down = rma(-min(change(close), 0), 30) 
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

Там, где вверх измеряет движение цен вверх в течение 30 периодов, вниз измеряет движение цен вниз, а rsi рассчитывается на основе соотношения вверх - вниз.

BB рассчитывается как:

basis = sma(close, 50)
dev = 0.2 * stdev(close, 50)
upper = basis + dev
lower = basis - dev

Где база - это скользящая средняя за 50 периодов, dev - это 0,2 раза стандартное отклонение, верхняя и нижняя полосы.

bbi - индекс пропускной способности Bollinger, рассчитанный как:

bbr = close>upper? 1 : close<lower? -1 : 0 
bbi = bbr - bbr[1]

bbr проверяет, если ближайший перерыв верхней или нижней полосы. прорыв равен 1, разрыв равен -1, в противном случае 0. bbi - это разница между текущим и предыдущим bbr. Положительный bbi указывает на прорыв вверх, отрицательный указывает на снижение.

Сигналы стратегии определяются следующим образом:

long = rsi>52 and rsi<65 and bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and bbi<-0.11 and bbi>-0.7 

Если RSI находится между 52-65 и BBI между 0,11 и 0,7, то выбирайте короткий курс, если RSI находится между 35-48 и BBI между -0,11 и -0,7.

Преимущества

  1. Сочетание RSI и BB обеспечивает более надежные сигналы.

  2. 30-периодный РСИ фильтрует рыночный шум и фокусируется на основных тенденциях.

  3. 50-периодный BB с 0,2 стандартным отклонением помогает отфильтровывать биты.

  4. Пороги BBI фильтруют фальшивые побеги.

  5. Длинные/короткие зоны RSI 52-65 и 35-48 обеспечивают определенный буфер, чтобы избежать пропущенных сделок.

Риски

  1. Стратегии прорыва склонны к тому, чтобы попасть в ловушку, нужно управлять риском с остановкой потери.

  2. Результаты обратных тестов могут быть перегружены, и производительность может варьироваться.

  3. Экстремальные рыночные движения могут привести к большим потерям.

  4. Необходимо оптимизировать параметры RSI и BB, включая периоды и пороги.

  5. Цена заказа может существенно повлиять на производительность.

Возможности для расширения

  1. Испытывать различные комбинации параметров RSI и BB для поиска оптимальных настроек.

  2. Добавьте другие индикаторы, такие как MACD, KD для фильтрации сигнала.

  3. Оптимизируйте длинные/короткие зоны RSI, чтобы отфильтровать больше шума.

  4. Оптимизируйте динамические пороги BBI для лучшей фильтрации подделок.

  5. Добавьте фильтр тренда, чтобы избежать торговли против основного тренда.

  6. Испытывать различные методы стоп-лосса для поиска оптимального контроля риска.

  7. Проверьте различные типы заказов, чтобы свести к минимуму влияние скольжения.

Заключение

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


/*backtest
start: 2023-10-03 00:00:00
end: 2023-11-02 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Based on Larry Connors RSI-2 Strategy - Lower RSI
strategy(title="Spyfrat Strat", shorttitle="SpyfratStrat", overlay=true)
src = close, 
// BB Init
source = close
length = input(50, minval=1)
mult = input(0.2, title="Mult Factor", minval=0.001, maxval=50)
alertLevel=input(0.1)
impulseLevel=input(0.75)
showRange = input(false, type=bool)
//RSI CODE
up = rma(max(change(src), 0), 30)
down = rma(-min(change(src), 0), 30)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//BB CODE
basis = sma(source, length)
dev = mult * stdev(source, length)
upper = basis + dev
lower = basis - dev
bbr = source>upper?(((source-upper)/(upper-lower))/10): source<lower?(((source-lower)/(upper-lower))/10) : 0.1
bbi = bbr - nz(bbr[1]) 
//Rule
long = rsi>52 and rsi<65 and  bbi>0.11 and bbi<0.7
short = rsi<48 and rsi>35 and  bbi<-0.11 and bbi>-0.7
//Trade Entry
strategy.entry("long", strategy.long, when=long)
strategy.entry("short", strategy.short, when=short)
//Trade Exit
TP = input(250) * 10
SL = input(20) * 10
TS = input(0) * 10
CQ = 100

TPP = (TP > 0) ? TP : na
SLP = (SL > 0) ? SL : na
TSP = (TS > 0) ? TS : na

strategy.exit("Close Long", "long", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)
strategy.exit("Close Short", "short", qty_percent=CQ, profit=TPP, loss=SLP, trail_points=TSP)

Больше