Стратегия торговли с различными индикаторами РСИ

Автор:Чао Чжан, Дата: 2023-11-28 15:03:53
Тэги:

img

Обзор

Стратегия торговли с несколькими индикаторами 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()

Больше