Ini adalah strategi perdagangan jangka pendek berdasarkan penunjuk Indeks Kekuatan Relatif (RSI). Ia menggunakan RSI untuk mengenal pasti tahap overbought dan oversold dan menggabungkan penapisan lilin untuk mengelakkan isyarat palsu, memasuki kedudukan panjang dan pendek pada titik pembalikan. Strategi ini bertujuan untuk menangkap peluang pembalikan purata selepas keadaan overbought atau oversold yang melampau.
Pertama, penunjuk RSI dikira berdasarkan harga penutupan dengan tempoh yang ditetapkan kepada 7. Tahap overbought ditetapkan pada 70 dan tahap oversold ditetapkan pada 30. Isyarat beli dihasilkan apabila RSI melintasi di atas 30 dan isyarat jual dihasilkan apabila RSI melintasi di bawah 70.
Untuk menapis isyarat palsu, saiz badan candlestick perlu berkembang menjadi 1-3 kali daripada julat normal apabila isyarat perdagangan dicetuskan.
Apabila RSI kekal di bawah 30 untuk 5 bar berturut-turut, isyarat panjang dihasilkan. Jika lilin seterusnya menunjukkan badan menaik berkembang lebih daripada 4 kali, kedudukan panjang akan dilaksanakan. Apabila RSI kekal di atas 70 untuk 5 bar berturut-turut, isyarat pendek dihasilkan. Jika lilin seterusnya menunjukkan badan menaik berkembang lebih daripada 4 kali, kedudukan pendek akan dilaksanakan.
Untuk mengunci keuntungan, kedudukan akan ditutup apabila arah lilin semasa adalah konsisten dengan arah kedudukan dan badan berkembang 2 kali.
RSI adalah baik dalam mengenal pasti keadaan overbought dan oversold. Apabila saham mencapai tahap yang melampau, terdapat kemungkinan tinggi penarikan balik, dan tahap yang melampau sering menyiratkan pembalikan yang akan datang. Strategi ini dapat menangkap peluang tersebut pada titik perubahan.
Perdagangan semata-mata berdasarkan isyarat RSI boleh mengakibatkan banyak isyarat palsu. Strategi ini menggabungkan pengembangan badan candlestick sebagai penapis, memasuki kedudukan apabila badan yang diperbesar muncul di sekitar titik pembalikan, mengelakkan whipsaws dari pasaran huru-hara.
Menghendaki 1-5 bar RSI berturut-turut di zon overbought atau oversold bertindak sebagai pengesahan, mengelakkan isyarat palsu dari bar yang aneh dan meningkatkan kebolehpercayaan isyarat.
Pengganda pengembangan badan boleh diselaraskan untuk produk yang berbeza. Untuk stok dengan perubahan besar, kriteria boleh santai, sementara untuk stok dengan julat yang sempit, ia boleh diperketat. Ini membolehkan penyesuaian fleksibel untuk produk perdagangan yang berbeza.
Tetapan parameter mempunyai beberapa batasan yang melekat. Produk dan tempoh masa yang berbeza mungkin memerlukan penyesuaian parameter. Menggunakan tetapan tetap boleh membawa kepada masalah terlalu banyak.
RSI sendiri mempunyai beberapa sifat yang tertinggal. digabungkan dengan pengembangan badan keluar kedudukan lebih awal. jadi ketepatan menangkap bahagian bawah atau atas yang tepat biasanya tidak sangat tinggi.
Dalam pasaran yang berkisar, RSI boleh mencetuskan isyarat beli dan jual yang kerap, mengakibatkan tempoh tahan yang panjang. Parameter harus diselaraskan atau strategi harus dihentikan sementara dalam kes sedemikian.
Sebagai strategi perdagangan jangka pendek, strategi ukuran kedudukan yang betul harus digabungkan, seperti memindahkan stop loss, mengambil keuntungan, dan lain-lain, untuk mengunci keuntungan dan mengawal risiko.
Kombinasi parameter RSI yang berbeza boleh diuji, seperti tempoh, tahap overbought / oversold, dan penapis candlestick, untuk mencari parameter yang dioptimumkan untuk produk yang berbeza.
Pergerakan atau peratusan stop loss boleh ditambah untuk mengunci keuntungan. atau menetapkan stop loss berdasarkan nilai ATR atau saluran Donchain dan lain-lain.
Keadaan berdasarkan MACD, KDJ dan penunjuk lain boleh ditambah untuk mengelakkan isyarat yang salah daripada pecah yang tidak sah.
Menggunakan purata bergerak untuk mengukur bias trend. Hanya mempertimbangkan isyarat perdagangan yang sejajar dengan trend. Strategi boleh dihentikan semasa pasaran terikat julat. Penunjuk kekuatan trend juga boleh digunakan sebagai penapis.
Ringkasnya, strategi pembalikan RSI ini adalah strategi perdagangan jangka pendek biasa dengan kelebihan dan kekurangannya sendiri. Kelebihan utamanya terletak pada menangkap penarikan balik selepas melampau sementara risiko utama berasal dari ketepatan isyarat yang rendah dan tempoh penahan yang panjang dalam julat. Kita boleh meningkatkan strategi dengan menyesuaikan parameter, menambah penapis, mengoptimumkan berhenti, dll, untuk menyesuaikan diri dengan lebih banyak produk dan keadaan pasaran, dan mencapai hasil yang lebih stabil.
/*backtest start: 2022-11-08 00:00:00 end: 2023-11-14 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy(title = "Noro's FRSI Strategy v1.21", shorttitle = "FRSI str 1.21", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_type = strategy.commission.percent, commission_value = 0.0) //Settings rsiperiod = input(7, defval = 7, minval = 2, maxval = 50, title = "RSI 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(2038, 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), rsiperiod) fastdown = rma(-min(change(rsisrc), 0), rsiperiod) 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, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 00, 00))) sps := 1 if time > timestamp(toyear, tomonth, today, 00, 00) or exit strategy.close_all() sps := 0