Ini adalah strategi dagangan yang mengenal pasti pasaran berayun menggunakan penunjuk RSI dan menangkap peluang pembalikan trend semasa goyangan pasaran. Strategi ini menilai sama ada harga telah memasuki zon goyangan oleh penunjuk RSI pantas dan menentukan masa kemasukan dalam kombinasi dengan badan lilin dan isyarat RSI pantas.
Strategi ini terutamanya beroperasi di atas prinsip berikut:
Secara khusus, strategi ini menggunakan RSI dua tempoh untuk menilai sama ada harga telah memasuki julat osilasi 30-70 yang telah ditetapkan sebelumnya. Ia juga memerlukan badan lilin untuk menembusi 1/4 atau 1/2 MA sebelum menghasilkan isyarat perdagangan. Dengan pemeriksaan bersyarat berganda seperti itu, isyarat palsu dapat ditapis dengan berkesan untuk memastikan memasuki pasaran hanya apabila osilasi sebenar berlaku.
Strategi ini menunjukkan kelebihan penting seperti berikut:
Terdapat juga beberapa risiko yang perlu diketahui:
Untuk mengawal risiko, penyesuaian kombinasi parameter, pengesahan dagangan langsung dan mekanisme stop loss disyorkan.
Terdapat ruang untuk pengoptimuman lanjut:
Dengan teknik seperti integrasi pelbagai penunjuk, penyesuaian parameter adaptif dan perdagangan algo, kestabilan strategi dan keuntungan dapat dinaikkan ke tahap seterusnya.
Strategi perdagangan RSI berosilasi pantas mengenal pasti turun naik harga dan menentukan masa kemasukan melalui RSI pantas dan mekanisme penapis berganda.
/*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