Стратегия торговли с быстро колеблющимися показателями RSI

Автор:Чао Чжан, Дата: 2024-01-08 11:50:38
Тэги:

img

Обзор

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

Логика стратегии

Стратегия основывается на следующих принципах:

  1. Определить колебание ценового движения с помощью быстрого RSI, определяющего, вступили ли цены в зону перекупленности/перепроданности
  2. Определить конкретное время входа с помощью прорыва тела светильника и быстрых сигналов RSI
  3. Избегайте ложных сигналов при неосциллирующих тенденциях с помощью двойных фильтров

В частности, стратегия использует двойной период RSI, чтобы судить о том, вошли ли цены в 30-70 предварительно установленный диапазон колебаний. Она также требует, чтобы тело свечи пробилось через 1/4 или 1/2 MA перед созданием торговых сигналов. Такими двойными условными проверками ложные сигналы могут быть эффективно отфильтрованы, чтобы обеспечить вход на рынок только тогда, когда происходит реальная колебания.

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

Стратегия демонстрирует следующие существенные преимущества:

  1. Индикатор быстрого RSI чувствителен к быстрому определению цен, входящих/выходящих из зоны колебаний
  2. Анализ двойных временных рамок предотвращает помехи от шума рынка
  3. Филтр свечей обеспечивает вход на реальные перевороты тренда
  4. Средняя частота торгов предотвращает чрезмерную торговлю

Анализ рисков

Необходимо также знать о некоторых рисках:

  1. Возможные упущенные возможности для изменения тенденции, приводящие к недостаточной прибыли
  2. Сигналы Whipsw могут вызывать потери
  3. Неправильные параметры влияют на эффективность стратегии

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

Руководство по оптимизации

Есть возможности для дальнейшей оптимизации:

  1. Интегрировать другие индикаторные сигналы для построения модели вероятности
  2. Добавить модуль адаптивного настроения параметров
  3. Увеличьте модуль торговли algo для более быстрого выполнения торговли

С помощью таких методов, как мультииндикаторная интеграция, адаптивная настройка параметров и торговля алгоритмами, стабильность стратегии и рентабельность могут быть подняты на новый уровень.

Заключение

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


/*backtest
start: 2023-01-07 00:00:00
end: 2024-01-07 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Noro's FRSI Strategy v1.22", shorttitle = "FRSI str 1.22", overlay = true )

//Settings
uprsiperiod = input(2, defval = 2, minval = 2, maxval = 50, title = "RSI UP Period")
dnrsiperiod = input(9, defval = 9, minval = 2, maxval = 50, title = "RSI DN 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(2018, 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), uprsiperiod)
fastdown = rma(-min(change(rsisrc), 0), dnrsiperiod)
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)
    sps := 1

if exit
    strategy.close_all()
    sps := 0
    

Больше