
Стратегия по торговле с несколькими RSI использует несколько RSI в комбинации, чтобы идентифицировать торговые возможности и отслеживать тенденции. Стратегия гибко использует от 1 до 5 RSI, чтобы оценить время входа и выхода на основе показателя.
Стратегия использует от 1 до 5 RSI-индикаторов с выбором входных параметров, каждый RSI-индикатор может быть индивидуально настроен на количество периодов и предельные значения параметров. Сила сигнала определяется количеством периодов 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()