Il s'agit d'une stratégie de trading qui identifie les marchés oscillants à l'aide de l'indicateur RSI et capture les opportunités d'inversion de tendance pendant les oscillations du marché.
La stratégie repose principalement sur les principes suivants:
Plus précisément, la stratégie utilise un RSI à deux périodes pour juger si les prix sont entrés dans la plage d'oscillation prédéfinie de 30 à 70. Elle exige également que le corps de la bougie franchisse 1/4 ou 1/2 de la MA avant de générer des signaux de trading.
La stratégie présente les avantages suivants:
Il y a aussi des risques à prendre en compte:
Pour contrôler les risques, il est recommandé d'ajuster les combinaisons de paramètres, de vérifier les transactions en direct et de mettre en place des mécanismes de stop loss.
Il est possible d'optimiser davantage:
Grâce à des techniques telles que l'intégration multi-indicateurs, l'ajustement adaptatif des paramètres et le trading d'algo, la stabilité et la rentabilité de la stratégie peuvent être portées à un niveau supérieur.
La stratégie de trading RSI à oscillation rapide identifie les oscillations de prix et détermine le moment d'entrée via un RSI rapide et des mécanismes à double filtre.
/*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