Стратегия на основе RSI


Дата создания: 2023-11-15 16:29:25 Последнее изменение: 2023-11-15 16:29:25
Копировать: 0 Количество просмотров: 365
1
Подписаться
1166
Подписчики

Стратегия на основе RSI

Обзор

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

Подробности стратегии

Принципы

Сначала рассчитывается индикатор RSI, выбирается цена закрытия в качестве источника данных для вычисления, цикл установлен на 7 дней. Затем устанавливается линия сверхпокупа - 30 и зона сверхпродажи - 70.

Для того, чтобы отфильтровать ложные сигналы, требуется, чтобы K-линия была увеличена в 1 - 3 раза больше обычной, чтобы вызвать торговый сигнал. Здесь используется RSI 1 - 5 K-линий, которые последовательно находятся в диапазоне перекупа и перепродажи для подтверждения сигнала, а множитель увеличения объекта установлен в 4 раза.

Когда RSI 5 последовательных K-линий ниже 30 создает сигнал покупки, если затем K-линия убывает, субъект увеличивается более чем в 4 раза, выполняется операция покупки. Когда RSI 5 последовательных K-линий выше 70 создает сигнал продажи, если затем K-линия убывает, субъект увеличивается более чем в 4 раза, выполняется операция продажи.

Для блокировки прибыли, когда направление удержания позиции совпадает с направлением текущей K-линии, в случае увеличения сущности в 2 раза приостанавливается убыток.

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

  1. Поймать рывок после перепродажи

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

  1. Фильтрация объектов снижает ложные сигналы

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

  1. Подтверждение последовательной N-корневой K-линии повышает надежность

Требуется подтверждение того, что RSI постоянно находится в пределах от 1 до 5 K-линий, чтобы избежать ошибочного восприятия отдельными иноверсионными K-линиями и повысить надежность сигнала.

  1. Регулируемое увеличение множителя

Увеличение множественного числа может быть скорректировано в зависимости от разных разновидностей, для разновидностей с большими и большими падениями условия могут быть надлежащим образом ослаблены, а для разновидностей с умеренными колебаниями условия могут быть надлежащим образом ужесточены, и они могут быть свободно скорректированы в соответствии со своими торговыми разновидностями.

Риск

  1. Возможны проблемы с подключением

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

  1. Недостаточная точность идентификации точек торговли

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

  1. Некоторые эксперты считают, что в условиях кризиса долгие позиции могут быть удерживаемы.

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

  1. Необходимость корректировки стратегии удержания позиций

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

Оптимизация

  1. Тестирование различных параметров

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

  1. Добавление стратегии остановки убытков

Можно установить мобильный стоп или стоп-процент для блокировки прибыли, также можно установить стоп-стоп в соответствии с значениями ATR или в сочетании с каналом Donchain.

  1. Фильтрация в сочетании с другими показателями

Можно добавить фильтрующие условия для других индикаторов, таких как MACD, KDJ, чтобы избежать ошибочного сигнала при неэффективном прорыве. Можно также использовать индикатор волатильности для идентификации обратного сигнала в тренде.

  1. Повышение оценки тенденций

Используйте среднюю линию для определения направления тренда, учитывайте торговые сигналы только в том случае, если направление тренда совпадает, в случае шокирующей ситуации можно выбрать стратегию приостановки. Также можно комбинировать сигналы фильтрации с индикатором сильного тренда.

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

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

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

//@version=3
strategy(title = "Noro's FRSI Strategy v1.21", shorttitle = "FRSI str 1.21", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0)

//Settings
rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rb = input(1, defval = 1, minval = 1, maxval = 5, title = "RSI Bars")
sps = 0
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2038, defval = 2018, 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")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), rsiperiod)
fastdown = rma(-min(change(rsisrc), 0), rsiperiod)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
ur = fastrsi > uplimit
dr = fastrsi < dnlimit
uprsi = rb == 1 and ur ? 1 : rb == 2 and ur and ur[1] ? 1 : rb == 3 and ur and ur[1] and ur[2] ? 1 : rb == 4 and ur and ur[1] and ur[2] and ur[3] ? 1 : rb == 5 and ur and ur[1] and ur[2] and ur[3] and ur[4] ? 1 : 0
dnrsi = rb == 1 and dr ? 1 : rb == 2 and dr and dr[1] ? 1 : rb == 3 and dr and dr[1] and dr[2] ? 1 : rb == 4 and dr and dr[1] and dr[2] and dr[3] ? 1 : rb == 5 and dr and dr[1] and dr[2] and dr[3] and dr[4] ? 1 : 0

//Body
body = abs(close - open)
emabody = ema(body, 30)

//Signals
up = bar == -1 and sps == 0 and dnrsi and body > emabody / 4
dn = bar == 1 and sps == 0 and uprsi and body > emabody / 4
exit = bar == 1 and fastrsi > dnlimit and body > emabody / 2

//Trading
if up
    strategy.entry("Long", strategy.long, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00)))
    sps := 1

if time > timestamp(toyear, tomonth, today, 00, 00) or exit
    strategy.close_all()
    sps := 0