Стратегия торговли с несколькими индикаторами RSI определяет торговые возможности путем объединения нескольких индикаторов RSI для отслеживания тенденций.
Стратегия позволяет выбирать 1-5 индикаторов RSI через входные параметры. Каждый индикатор RSI может быть настроен независимо с периодом и предельными значениями. Когда любой RSI опускается ниже предельного значения, запускается сигнал покупки. Сила сигнала определяется периодом задействованного индикатора RSI, причем более высокий период означает более сильный сигнал. Когда RSI поднимается выше предельного значения, запускается сигнал закрытия. Стратегия также обеспечивает гибкость для использования цветового фильтра и ограничения торговых часов.
Наибольшее преимущество этой стратегии заключается в возможности оценки нескольких временных рамок с использованием различных РСИ, оценивая как тренд, так и возможности реверсии с длинных и коротких измерений для улучшения точности. Кроме того, гибкая конфигурация каждого индикатора РСИ значительно расширяет адаптивность на разных рынках. Фальшивые прорывы также могут быть эффективно отфильтрованы с использованием цветовых фильтров. Модули управления рисками, такие как часы торговли и размещение позиций, обеспечивают эффективное управление рисками.
Основной риск заключается в противоречивых сигналах при сочетании нескольких суждений RSI. Например, более короткий RSI приводит к покупке, в то время как более длинный RSI все еще перепродан.
Стратегия может рассматривать добавление индикаторов, помогающих тренду, таких как скользящие средние или полосы Боллинджера, для проверки сигналов RSI и улучшения точности. Кроме того, могут быть изучены определенные алгоритмы машинного обучения, используя многофакторный рейтинг для автоматического определения надежности сигнала. Для контроля риска могут быть реализованы плавающие потери или максимальные линии остановки для целей остановки потери.
Подводя итог, стратегия торговли мульти-индикаторами RSI очень новаторская. Ее гибкость в комбинации индикаторов и параметрах делает ее адаптивной к развивающимся рынкам. Дальнейшие улучшения могут быть достигнуты путем включения алгоритмов машинного обучения и большего количества мер контроля рисков, учитывая ее модульную конструкцию.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Symphony Strategy v1.1", shorttitle = "Symphony str 1.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 20) //Settings //needlong = input(true, defval = true, title = "Long") //needshort = input(true, defval = true, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") usersi1 = input(true, defval = true, title = "Use RSI 1") rsiperiod1 = input(4, defval = 4, minval = 2, maxval = 100, title = "RSI 1 Period") rsilimit1 = input(20, defval = 20, minval = 2, maxval = 50, title = "RSI 1 Limit") usersi2 = input(true, defval = true, title = "Use RSI 2") rsiperiod2 = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI 2 Period") rsilimit2 = input(25, defval = 25, minval = 2, maxval = 50, title = "RSI 2 Limit") usersi3 = input(true, defval = true, title = "Use RSI 3") rsiperiod3 = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI 3 Period") rsilimit3 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 3 Limit") usersi4 = input(false, defval = false, title = "Use RSI 4") rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period") rsilimit4 = input(35, defval = 35, minval = 2, maxval = 50, title = "RSI 4 Limit") usersi5 = input(false, defval = false, title = "Use RSI 5") rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period") rsilimit5 = input(40, defval = 40, minval = 2, maxval = 50, title = "RSI 5 Limit") cf = input(false, defval = false, title = "Use color filter") fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From Day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To Day") //RSI rsi1 = rsi(close, rsiperiod1) rsi2 = rsi(close, rsiperiod2) rsi3 = rsi(close, rsiperiod3) rsi4 = rsi(close, rsiperiod4) rsi5 = rsi(close, rsiperiod5) //Signals up1 = rsi1 < rsilimit1 and usersi1 up2 = rsi2 < rsilimit2 and usersi2 up3 = rsi3 < rsilimit3 and usersi3 up4 = rsi4 < rsilimit4 and usersi4 up5 = rsi5 < rsilimit5 and usersi5 str = up5 ? 5 : up4 ? 4 : up3 ? 3 : up2 ? 2 : up1 ? 1 : str[1] up = up1 or up2 or up3 or up4 or up5 exit = (rsi1 > rsilimit1 and str == 1) or (rsi2 > rsilimit2 and str == 2) or (rsi3 > rsilimit3 and str == 3) or (rsi4 > rsilimit4 and str == 4) or (rsi5 > rsilimit5 and str == 5) lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] //Background col = up ? lime : na bgcolor(col, transp = 0) //Trading if up and (close < open or cf == false) strategy.entry("Long", strategy.long, lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if time > timestamp(toyear, tomonth, today, 23, 59) or exit strategy.close_all()