RSI Bollinger Bands Краткосрочная стратегия торговли

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

img

Обзор

Эта стратегия сочетает в себе индекс относительной силы (RSI) и полосы Боллинджера для построения краткосрочной торговой стратегии. Она в основном использует сигналы покупки и продажи, когда RSI проходит через верхние или нижние полосы Боллинджера. Между тем, для эффективного контроля рисков включен механизм остановки потери.

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

  1. При расчете показателя RSI используется 14-периодный параметр.
  2. При расчете средней полосы Боллинджера используется взвешенная скользящая средняя показателя RSI с периодом, установленным на 25.
  3. Вычислить верхнюю и нижнюю полосы полос Боллинджера. Верхняя полоса - это средняя полоса плюс амплитуда, в то время как нижняя полоса - это средняя полоса минус амплитуда. Амплитуда установлена на 20 раз стандартного отклонения RSI.
  4. Идите длинный, когда RSI пробивается через нижнюю полосу, и идти короткий, когда RSI пробивается через верхнюю полосу.
  5. Установите механизм стоп-лосса, чтобы, если цена упадет ниже 6% от цены входа в длинную позицию, закрыть длинную позицию.

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

Эта стратегия сочетает в себе сильные стороны как RSI, так и Bollinger Bands для краткосрочной торговли.

  1. RSI может эффективно определять сценарии перекупления и перепродажи.
  2. Боллингерские полосы являются динамическими для автоматической корректировки диапазона на основе волатильности рынка.
  3. Установка стоп-лосса разумна с 6%-ой толерантностью к нормальным колебаниям при контроле потерь.

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

Потенциальные риски этой стратегии включают:

  1. RSI имеет отстающие характеристики и может упустить возможности быстрого отмены.
  2. Неправильный параметр полос Боллинджера или резкие колебания рынка могут вызвать плохие сигналы.
  3. Неразумное установление параметра остановки может привести к ненужным потерям.

Решения:

  1. Подумайте о сочетании с другими показателями, такими как KDJ, для всеобъемлющего суждения.
  2. Динамическая оптимизация параметров для разных рынков.
  3. Опробуйте и оптимизируйте параметр остановки для наилучшей настройки.

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

Есть возможности для дальнейшей оптимизации:

  1. Изменение фиксированного стоп-лосса на динамический стоп-лосс в зависимости от колебаний цен.
  2. Добавьте правила индекса ширины полосы Боллинджера, чтобы приостановить торговлю, когда полосы расширяются или сокращаются слишком сильно.
  3. Для лучшего подтверждения комбинируйте показатели объема, такие как денежный поток Chaikin.

Резюме

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


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

//@version=3
strategy("rsi+bb st", shorttitle="rsibb st 0.3")

len_rsi=input(14)
len_bb = input(25)
mul10 = input(20.0)
mul=mul10/10
sl100 = input(94.0, title='stop loss rate')
sl=sl100/100

lw = 3

vwma_e(src, len) =>
    ema(src*volume, len)/ema(volume,len)

rsi = rsi(close, len_rsi)
plot(rsi, color=blue, title= 'rsi blue', linewidth=lw)
plot(70, color=gray, title='line 70', linewidth=lw)
plot(30, color=gray, title='line 30', linewidth=lw)

bbg = stdev(rsi, len_bb)*mul
bbc = vwma_e(rsi, len_bb)
//bbc=ema(rsi,len_bb)
ratio = 0.6
bbc := bbc*ratio + 50*(1-ratio)

bbu = bbc+bbg
bbl = bbc-bbg
plot(bbu, color=green, title='bb_up green', linewidth=lw)
plot(bbl, color=red, title='bb_low red', linewidth=lw)
plot(bbc, color=#808000ff, title='bb center', linewidth=lw)

plot(50, color=black)

lc = crossover(rsi, bbl) //or crossover(rsi, bbc)
sc = crossunder(rsi, bbu)

last_pos = 0*close
if lc
    last_pos := 1
else
    last_pos := last_pos[1]
if sc
    last_pos := 2

last_price = 0*close
if last_pos[1] !=1 and last_pos == 1
    last_price := close
else
    last_price := last_price[1]
    
if last_pos==1 and close < last_price*sl
    lc:=false
    sc:=true
    last_pos:=2

if (lc)
    strategy.entry("long", strategy.long)

if (sc)
    strategy.entry("short", strategy.short)

Больше