Стратегия торговли Bollinger Band и Stoch RSI

Автор:Чао Чжан, Дата: 2021-09-21 21:02:02
Тэги:

Обзор

Эта стратегия сочетает в себе индикаторы Bollinger Bands и Stoch RSI для торговли несколькими индикаторами. Она относится к типичному типу стратегии комбинированных индикаторов.

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

Стратегия основана на двух основных показателях:

  1. Боллингерские полосы

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

  2. РСИ Stoch

    Вычислите индикатор RSI. Сигнал покупки генерируется, когда линия K пересекает линию D.

Конкретная логика торговли заключается в том, чтобы открыть длинный период, когда и нижний прорыв полос Боллинджера, и золотой крест RSI Stoch возникают вместе.

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

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

  • Комбинирует полосы Боллинджера и RSI Stoch
  • Полосы оценивают общий тренд, Stoch RSI оптимизирует вход
  • Stoch RSI фильтрует ложные прорывы полосы
  • Средние и нижние полосы обеспечивают выход
  • Многочисленные регулируемые параметры для оптимизации

Риски

  • Отставание по показателям, основанным на МР, отсутствие лучших записей
  • Чисто индикаторная, медленная реакция на внезапные события
  • Неправильные настройки полосы недействительны остановки
  • Параметры RSI Bad Stoch генерируют ложные сигналы
  • Отдельная настройка параметров необходима для различных продуктов

Риски могут быть уменьшены:

  • Оптимизация параметров для более высокой точности
  • Добавление подтверждающих фильтров, таких как MACD
  • Использование остановок вместо остановок группы
  • Параметры испытаний для различных продуктов
  • Система регулирования размеров позиций

Руководство по улучшению

Стратегия может быть улучшена путем:

  1. Оптимизация параметров полос Боллинджера

    Корректировка коэффициентов расчета верхний/нижний для наилучшего соответствия

  2. Оптимизация параметров Stoch RSI

    Найти оптимальные значения K и D

  3. Добавление подтверждающих показателей, таких как MACD

    Избегайте ложных сигналов, опирающихся на один индикатор

  4. Использование остановок прибыли вместо фиксированных остановок

    Прекращения движения на основе волатильности цен

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

    Оптимальные параметры варьируются в зависимости от продукции

Резюме

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


/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3

strategy(title = "BB+RSI v2", overlay = true)

price=close
////////// ///////  BB /////////////////////////

bblength = input(50)
bbupmult =input(2,step=0.1,title="Multiplier for BB Upper Band")
bblowmult = input(2,step=0.1,title="Multiplier for BB Lower Band")

basis =  sma(close,bblength)

devup = bbupmult * stdev(close, bblength)
devlow = bblowmult * stdev(close, bblength)

upper = basis + devup
lower = basis - devlow
plot(basis, color=red)
p1 = plot(upper, color=blue)
p2 = plot(lower, color=blue)
fill(p1, p2)


bbbuy= crossover(price,lower)
bbsell = crossunder(price,upper) or price>upper or crossunder(price,basis)



//////////////////// BB //////////////////////




////////////////////////  S RSI  /////////////////////

lengthrsi = input(6)
overSold = input( 20 )
overBought = input( 70 )
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)

SRSIbuy=crossover(k,d)

////////////////////// S  RSI  ///////////////////////

// Conditions



longcond = bbbuy and SRSIbuy
closelong = bbsell


monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)



if (  longcond ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    
else
    strategy.cancel(id="BUY")


if ( closelong  ) 

    strategy.close("BUY")







Больше