
Strategi ini adalah strategi perdagangan garis pendek berdasarkan indikator yang agak kuat ((RSI)). Ia menggunakan indikator RSI untuk mengenal pasti jarak overbought dan oversold, dan digabungkan dengan entiti K-line untuk menyaring isyarat palsu, melakukan operasi beli dan jual pada titik-titik perubahan. Strategi ini bertujuan untuk menangkap peluang rebound selepas keadaan overbought dan oversold yang melampau.
Pertama, kira RSI, pilih harga penutupan sebagai sumber data pengiraan, dengan kitaran 7 hari. Kemudian, set garis overbought menjadi 30 dan jarak oversold menjadi 70. Apabila RSI melintasi garis 30 di atas, ia menghasilkan isyarat beli, dan apabila ia melintasi garis 70 di bawah, ia menghasilkan isyarat jual.
Untuk menyaring isyarat palsu, entiti K line perlu dibesarkan sebanyak 1-3 kali ganda daripada biasa untuk mencetuskan isyarat perdagangan. Di sini, RSI 1-5 K line berturut-turut berada dalam julat overbought dan oversold untuk mengesahkan isyarat, entiti dibesarkan sebanyak 4 kali ganda.
Apabila RSI menghasilkan isyarat beli apabila 5 baris K berturut-turut di bawah 30, jika kemudian K berturut-turut di bawah, entiti dibesarkan lebih dari 4 kali, operasi beli dilaksanakan. Apabila RSI menghasilkan isyarat jual apabila 5 baris K berturut-turut di atas 70, jika kemudian K berturut-turut di bawah, entiti dibesarkan lebih dari 4 kali, operasi jual dilaksanakan.
Untuk mengunci keuntungan, hentikan pegangan apabila entiti 2 kali ganda besar apabila arah pegangan sama dengan arah garis K semasa.
Indeks RSI lebih baik untuk mengenal pasti keadaan overbought dan oversold. Apabila saham berada di kawasan overbought dan oversold, terdapat kemungkinan besar untuk kembali dalam jangka pendek, dan kawasan oversold sering menandakan pergerakan rebound yang akan datang.
Terdapat lebih banyak isyarat palsu yang mungkin berlaku apabila perdagangan RSI semata-mata. Strategi ini memasukkan entiti K-baris yang diperbesar sebagai syarat penapis dan memasukkan kedudukan ketika entiti K-baris yang diperbesar muncul pada malam sebelum titik balik, untuk mengelakkan isyarat palsu yang disesatkan oleh pasaran yang bergolak.
Memerlukan RSI untuk mengesahkan 1-5 garis K yang berterusan dalam kawasan overbought dan oversold, untuk mengelakkan salah faham oleh garis K yang tidak aktif secara individu, meningkatkan kebolehpercayaan isyarat.
Peningkatan ganda entiti boleh disesuaikan mengikut jenis yang berbeza, untuk jenis yang besar dan turun, syarat boleh dikurangkan dengan sewajarnya, dan untuk jenis yang bergelombang dan perlahan, syarat boleh diketatkan dengan sewajarnya, boleh disesuaikan dengan jenis perdagangan mereka sendiri.
Tetapan parameter strategi ini mempunyai batasan tertentu, parameter yang berbeza untuk pelbagai jenis dan tempoh yang berbeza perlu disesuaikan. Jika satu tetapan parameter digunakan secara tetap, ia boleh menyebabkan masalah overfitting.
Indeks RSI sendiri mempunyai keterlambatan tertentu, digabungkan dengan pembesaran entiti sebagai syarat penapisan juga akan keluar dari kedudukan lebih awal. Oleh itu, ketepatan pengenalan titik jual beli biasanya tidak akan sangat tinggi.
Dalam keadaan goyah, RSI mungkin sering mencetuskan isyarat beli dan jual yang menyebabkan tempoh memegang terlalu lama. Apabila ini diperlukan untuk menyesuaikan parameter atau menangguhkan operasi strategi.
Strategi ini adalah strategi perdagangan garis pendek yang memerlukan strategi pemegang kedudukan yang sesuai, seperti kaedah penghapusan garis rata-rata, hentikan kerugian, dan lain-lain, untuk mengunci keuntungan dan mengawal risiko.
Anda boleh menguji kombinasi parameter RSI yang berbeza, seperti kitaran, overbought dan oversold, dan parameter penapisan entiti K-line, dan mengoptimumkan parameter untuk menyesuaikan diri dengan varieti yang berbeza.
Anda boleh menetapkan hentian bergerak atau peratusan hentian untuk mengunci keuntungan, anda juga boleh menetapkan titik hentian berdasarkan nilai ATR, atau anda boleh berhenti dalam kombinasi dengan saluran Donchain.
Anda boleh memasukkan syarat penapisan dari penunjuk lain seperti MACD, KDJ, dan lain-lain untuk mengelakkan isyarat yang salah apabila tidak berkesan. Anda juga boleh menggunakan penunjuk kadar turun naik untuk mengenal pasti isyarat pembalikan dalam trend.
Menggunakan garis rata untuk menilai arah trend, hanya mempertimbangkan isyarat perdagangan apabila arah trend selaras, anda boleh memilih strategi berhenti ketika keadaan goyah. Anda juga boleh menggabungkan isyarat penapis indikator trend yang kuat.
Strategi pembalikan RSI secara keseluruhannya adalah strategi perdagangan garis pendek yang tipikal, dengan kelebihan dan risiko tertentu. Kelebihan utama adalah dapat menangkap rebound selepas overbought dan oversold, dan risiko utamanya adalah ketepatan angka keyakinan yang tidak tinggi dan terlalu lama memegang kedudukan di bawah keadaan yang bergolak.
/*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