Стратегия следования за трендом на основе индикатора RSI


Дата создания: 2023-10-26 15:44:15 Последнее изменение: 2023-10-26 15:44:15
Копировать: 0 Количество просмотров: 689
1
Подписаться
1617
Подписчики

Стратегия следования за трендом на основе индикатора RSI

Обзор

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

Стратегический принцип

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

Сначала вычисляется значение RSI, а затем с помощью RSI вычисляются скользящие средние и стандартное расхождение для вычисления пересечения на верхнем и нижнем уровнях. RSI колеблется в диапазоне от 0 до 1.

Когда RSI производит сигнал покупки, когда он прорывается с нижней трассы на верхнюю трассу, и сигнал продажи, когда он прорывается с верхней трассы на нижнюю трассу, чтобы реализовать тенденцию следования. После входа в стратегию, не устанавливайте стоп-стоп, пока не будете свободны до конца указанной даты.

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

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

  • Использование RSI для определения направления тренда просто и эффективно
  • Сигналы подтверждения сделки в сочетании с брин-бест, чтобы избежать ложных прорывов
  • Ограничение диапазона торговых дат помогает избежать рыночных рисков
  • Не устанавливайте стоп-стоп, максимально следите за трендом
  • Гибко адаптируемые параметры для различных рыночных условий

Риск и оптимизация

  • Рынок может сильно колебаться, что приведет к убыткам
  • Не установлена стоп-стоп, не удалось эффективно контролировать риск
  • Неправильная настройка параметров может привести к частым сделкам или упущенным возможностям

Направление оптимизации:

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

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2022-10-19 00:00:00
end: 2023-10-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Gidra
//2018

//@version=2
strategy(title = "Gidra's RSI or MFI Strategy v0.1", shorttitle = "Gidra's RSI or MFI v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 1)

//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, %")
src = input(close, title="source")
lengthRSI = input(14, title="RSI or MFI length")
// RSI %B
useRSI = input(true, title="use RSI or MFI")
fromyear = input(2018, defval = 2018, 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")

//MFI
upper = sum(volume * (change(src) <= 0 ? 0 : src), lengthRSI)
lower = sum(volume * (change(src) >= 0 ? 0 : src), lengthRSI)
mf = rsi(upper, lower)

//RSI
rsi = useRSI?rsi(src, lengthRSI): mf

// %B
length = input(50, minval=1, title="BB length")
mult = input(1.618, minval=0.001, maxval=50)
basis = sma(rsi, length)
dev = mult * stdev(rsi, length)
upperr = basis + dev
lowerr = basis - dev
bbr = (rsi - lowerr)/(upperr - lowerr)

plot(bbr, color=black, transp=0, linewidth=2)
// band1 = hline(1, color=white, linestyle=dashed)
// band0 = hline(0, color=white, linestyle=dashed)
// fill(band1, band0, color=teal)
hline(0.5, color=white)

//Signals
up = bbr >= 0 and bbr[1] < 0
dn = bbr <= 1 and bbr[1] > 1
//exit = ((bbr[1] < 0.5 and bbr >= 0.5) or (bbr[1] > 0.5 and bbr <= 0.5))

lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]

//Trading
if up
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn
    strategy.entry("Short", strategy.short, needshort == false ? 0 : 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()