Это торговая стратегия, которая идентифицирует колеблющиеся рынки с использованием индикатора RSI и захватывает возможности для обратного тренда во время колебаний рынка.
Стратегия основывается на следующих принципах:
В частности, стратегия использует двойной период RSI, чтобы судить о том, вошли ли цены в 30-70 предварительно установленный диапазон колебаний. Она также требует, чтобы тело свечи пробилось через 1/4 или 1/2 MA перед созданием торговых сигналов. Такими двойными условными проверками ложные сигналы могут быть эффективно отфильтрованы, чтобы обеспечить вход на рынок только тогда, когда происходит реальная колебания.
Стратегия демонстрирует следующие существенные преимущества:
Необходимо также знать о некоторых рисках:
Для контроля рисков рекомендуется корректировать комбинации параметров, проверку торговли в режиме реального времени и механизмы остановки потерь.
Есть возможности для дальнейшей оптимизации:
С помощью таких методов, как мультииндикаторная интеграция, адаптивная настройка параметров и торговля алгоритмами, стабильность стратегии и рентабельность могут быть подняты на новый уровень.
Стратегия быстрого колебания 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