Strategi ini adalah strategi perdagangan yang menggunakan indikator RSI untuk mengenal pasti keadaan goyah dan menangkap peluang untuk membalikkan trend semasa goyah. Strategi ini menggunakan indikator RSI yang cepat untuk menentukan sama ada harga memasuki kawasan goyah dan menggabungkan entiti K-line dan isyarat polygonal RSI yang cepat untuk menentukan masa masuk.
Strategi ini adalah berdasarkan kepada prinsip-prinsip berikut:
Khususnya, strategi menggunakan RSI dua kitaran untuk menentukan sama ada harga memasuki 30-70 kawasan gegaran yang ditetapkan. Pada masa yang sama, entiti K-baris memerlukan 1⁄4 atau 1⁄2 daripada garis rata-rata untuk menghasilkan isyarat perdagangan. Dengan cara ini, penilaian dua syarat dapat menyaring isyarat palsu dari keadaan gegaran dengan berkesan dan memastikan hanya masuk ketika gegaran benar berlaku.
Strategi ini mempunyai kelebihan yang ketara:
Strategi ini juga mempunyai risiko yang perlu diperhatikan:
Untuk mengawal risiko, disyorkan untuk menyesuaikan kombinasi parameter, mengesahkan secara langsung, dan menetapkan mekanisme hentikan kerugian.
Strategi ini masih boleh dioptimumkan lagi:
Strategi ini dijangka dapat meningkatkan kestabilan dan kadar pulangan melalui integrasi pelbagai petunjuk, penyesuaian parameter dan perdagangan algoritma.
Strategi perdagangan RSI yang cepat bergoyang, dengan indikator RSI yang cepat menangkap pergerakan harga dan mekanisme penapisan berganda untuk menentukan masa masuk, adalah strategi yang berkesan yang patut dikaji dan digunakan. Dalam praktiknya, perhatian perlu diberikan kepada risiko dan melakukan penyesuaian optimum dalam pelbagai dimensi untuk meningkatkan lagi keberkesanan strategi.
/*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