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

Автор:Чао Чжан, Дата: 2024-01-24 14:56:02
Тэги:

img

Обзор

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

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

Стратегия сначала рассчитывает индикатор RSI и полосы Боллинджера. Индикатор RSI отражает относительную силу торгового инструмента. Когда RSI ниже зоны перепродажи (по умолчанию 30), это означает, что инструмент перепродан и должен покупать. Полосы Боллинджера включают верхнюю полосу, среднюю полосу и нижнюю полосу, что хорошо отражает диапазон колебаний цен. Покупка вблизи нижней полосы и продажа вблизи верхней полосы могут обеспечить относительно надежные сигналы. Эта стратегия сочетает индикатор RSI и полосы Боллинджера для оценки торгового сигнала. Она генерирует сигнал покупки, когда RSI поднимается с зоны перепродажи выше нее (по умолчанию 30), и цена поднимается с нижней полосы выше нее; она генерирует сигнал продажи, когда RSI падает с зоны перепродажи ниже нее (по умолчанию 70), и цена падает с верхней полосы ни

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

  1. Сочетание RSI и полос Боллинджера улучшает точность сигнала
  2. РСИ фильтрует шум.
  3. Боллингерские полосы отражают текущий диапазон волатильности рынка, надежные сигналы
  4. Строгие правила торговли, избегают недействительных сделок

Риски

  1. Неправильные параметры полос Боллинджера могут привести к неточным сигналам
  2. Ненадлежащее установление зоны перекупленности/перепроданности RSI может повлиять на суждения
  3. Стратегия строгая, может упустить некоторые возможности

Решения:

  1. Оптимизировать диапазоны Боллинджера и параметры RSI для поиска наилучшей комбинации
  2. Успокойте условия умеренно, позвольте некоторым недействительным сделкам для большего шансов

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

  1. Тест и оптимизация параметров RSI и Bollinger для оптимального
  2. Добавление стоп-лосса к контролю рисков
  3. Подумайте о добавлении других индикаторов, таких как MACD для проверки сигнала
  4. Результаты тестирования оптимизации для различных продуктов и временных рамок

Резюме

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


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

//@version=2
strategy("BB + RSI 20MIN,", shorttitle="BBRSI 20MIN", overlay=true )
     
     // Strategy Tester Start Time
sYear = input(2019, title = "Start Year")
sMonth = input(04, title = "Start Month", minval = 01, maxval = 12)
sDay = input(01, title = "Start Day", minval = 01, maxval = 31)
sHour = input(00, title = "Start Hour", minval = 00, maxval = 23)
sMinute = input(00, title = "Start Minute", minval = 00, maxval = 59)
startTime = true


///////////// RSI
RSIlength = input(9,title="RSI Period Length") 
RSIoverSold = input(30, minval=1,title="RSIL")
RSIoverBought = input(69, minval=1,title="RSIh")
price = open
vrsi = rsi(price, RSIlength)


///////////// Bollinger Bands
BBlength = input(60, minval=1,title="Bollinger Period Length")
BBmult = input(2.0, minval=0.001, maxval=50,title="Bb")
BBbasis = sma(price, BBlength)
BBdev = BBmult * stdev(price, BBlength)
BBupper = BBbasis + BBdev
BBlower = BBbasis - BBdev
source = close
buyEntry = crossover(source, BBlower)
sellEntry = crossunder(source, BBupper)
plot(BBbasis, color=aqua,title="Bollinger Bands SMA Basis Line")
p1 = plot(BBupper, color=silver,title="Bollinger Bands Upper Line")
p2 = plot(BBlower, color=silver,title="Bollinger Bands Lower Line")
fill(p1, p2)


///////////// Colors
switch1=input(true, title="Enable Bar Color?")
switch2=input(true, title="Enable Background Color?")
TrendColor = RSIoverBought and (price[1] > BBupper and price < BBupper) and BBbasis < BBbasis[1] ? red : RSIoverSold and (price[1] < BBlower and price > BBlower) and BBbasis > BBbasis[1] ? green : na
barcolor(switch1?TrendColor:na)
bgcolor(switch2?TrendColor:na,transp=50)


///////////// RSI + Bollinger Bands Strategy
if (not na(vrsi))

    if (crossover(vrsi, RSIoverSold) and crossover(source, BBlower))
        strategy.entry("RSI_BB_L", strategy.long and startTime, stop=BBlower,  comment="RSI_BB_L")
    else
        strategy.cancel(id="RSI_BB_L")
        
    if (crossunder(vrsi, RSIoverBought) and crossunder(source, BBupper))
        strategy.entry("RSI_BB_S", strategy.short and startTime, stop=BBupper,comment="RSI_BB_S")
    else
        strategy.cancel(id="RSI_BB_S")

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Больше