
Strategi pengumpulan RSI berganda adalah strategi yang menggunakan pelbagai indeks kekuatan relatif (RSI) untuk perdagangan semasa memilih saham. Strategi ini menggunakan RSI yang berbeza 1, 2, 3, 4, dan 5 kitaran pada masa yang sama, menghasilkan isyarat beli apabila mana-mana RSI berada di bawah had yang ditetapkan, menghasilkan isyarat jual apabila semua RSI berada di atas had masing-masing, untuk mencapai kemasukan dan keluar saham yang tepat pada masanya.
Logik teras strategi ini adalah untuk mengesan 1, 2, 3, 4, dan 5 RSI pada masa yang sama dari pelbagai kitaran, termasuk RSI 4 kitaran, 7 kitaran, 14 kitaran, 21 kitaran dan 28 kitaran. Kelima-lima RSI ini masing-masing menetapkan had yang berbeza, dan selagi mana-mana RSI berada di bawah had yang sesuai, isyarat beli akan dihasilkan.
Sebagai contoh, penanda RSI 4 kitaran ditetapkan pada 15 dan memberi isyarat beli apabila RSI 4 kitaran di bawah 15. Strategi ini juga akan mengesan sama ada penanda RSI kitaran lain juga berada di bawah nilai terhad yang sesuai, dan jika ya, ia akan memberi isyarat beli.
Apabila kesemua 5 indikator RSI berada di atas nilai had masing-masing, maka akan dihasilkan isyarat jual, yang akan menghasilkan keuntungan. Dengan demikian, dengan menggabungkan isyarat dari pelbagai indikator kitaran, anda dapat meningkatkan ketepatan Entries.
Strategi ini menggunakan 5 indikator RSI yang berbeza pada masa yang sama, menghasilkan isyarat beli apabila mana-mana RSI berada di bawah nilai terhad. Ini dapat meningkatkan kebolehpercayaan isyarat dan mengelakkan isyarat salah yang disebabkan oleh satu indikator.
Penggunaan RSI 1, 2, 3, 4, dan 5 kitaran dapat menyesuaikan diri dengan turun naik saham dalam kitaran yang berbeza. Sebagai contoh, 28 kitaran RSI sesuai untuk perdagangan panjang, 4 kitaran RSI sesuai untuk perdagangan pendek. Ini memastikan bahawa strategi dapat berfungsi dengan baik dalam pelbagai keadaan pasaran.
Penamaan pembolehubah dan struktur kod strategi sangat jelas, proses pengiraan untuk pelbagai petunjuk dan isyarat adalah jelas. Ini menjadikan strategi mudah difahami, diubah dan dioptimumkan. Ini adalah kelebihan yang sangat penting dalam strategi kuantitatif.
Strategi ini bergantung kepada penjanaan isyarat overbought dan oversold, yang akan mengurangkan keberkesanannya dalam keadaan trend yang naik atau turun secara bersendirian. Ini adalah masalah yang umum dalam strategi yang menggunakan indikator pembalikan.
Strategi mengandungi banyak parameter dan parameter, yang menyebabkan pengoptimuman parameter menjadi sangat sukar. Kombinasi parameter yang tidak munasabah boleh mengurangkan keberkesanan strategi secara besar-besaran. Ini memerlukan penggunaan alat pengoptimuman untuk mencari parameter terbaik.
Oleh kerana menggunakan lebih banyak indikator kitaran, pertukaran strategi mungkin lebih kerap, yang membawa kepada kos dagangan yang lebih tinggi dan risiko slippage.
Anda boleh menyertai MA atau BOLL sebagai penunjuk trend, untuk mengelakkan diskaun dalam keadaan unilateral. Sebagai contoh, anda hanya boleh masuk jika penunjuk trend juga bersetuju untuk berbalik.
Cuba kurangkan jumlah penunjuk RSI yang digunakan, mengurangkan kesukaran mengoptimumkan parameter. Eksperimen menunjukkan bahawa 2-3 kombinasi penunjuk dapat mencapai hasil yang baik.
Menggunakan kaedah seperti pengoptimuman langkah panjang, pengoptimuman rawak, dan lain-lain, mencari julat dan kombinasi terbaik untuk setiap parameter RSI untuk memaksimumkan prestasi strategi.
Strategi pengumpulan pelbagai indikator RSI dengan menggunakan signal RSI pelbagai kitaran, meningkatkan ketepatan entries, mewujudkan perdagangan masa saham. Ia mempunyai kelebihan untuk menggunakan pelbagai indikator, tetapi juga ada masalah kegagalan satu arah, kesukaran untuk mengoptimumkan. Dengan menambahkan indikator trend, mengurangkan jumlah indikator, mengoptimumkan parameter, dan lain-lain, strategi Robustness dapat ditingkatkan lagi.
/*backtest
start: 2022-12-26 00:00:00
end: 2024-01-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Symphony v1.0", shorttitle = "Symphony 1.0", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 20)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
usersi1 = input(true, defval = true, title = "Use RSI 1")
rsiperiod1 = input(4, defval = 4, minval = 2, maxval = 100, title = "RSI 1 Period")
rsilimit1 = input(15, defval = 15, minval = 2, maxval = 50, title = "RSI 1 Limit")
usersi2 = input(true, defval = true, title = "Use RSI 2")
rsiperiod2 = input(7, defval = 7, minval = 2, maxval = 100, title = "RSI 2 Period")
rsilimit2 = input(20, defval = 20, minval = 2, maxval = 50, title = "RSI 2 Limit")
usersi3 = input(true, defval = true, title = "Use RSI 3")
rsiperiod3 = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI 3 Period")
rsilimit3 = input(25, defval = 25, minval = 2, maxval = 50, title = "RSI 3 Limit")
usersi4 = input(true, defval = true, title = "Use RSI 4")
rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period")
rsilimit4 = input(30, defval = 30, minval = 2, maxval = 50, title = "RSI 4 Limit")
usersi5 = input(true, defval = true, title = "Use RSI 5")
rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period")
rsilimit5 = input(35, defval = 35, minval = 2, maxval = 50, title = "RSI 5 Limit")
cf = input(false, defval = false, title = "Use color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, 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")
//RSI
rsi1 = rsi(close, rsiperiod1)
rsi2 = rsi(close, rsiperiod2)
rsi3 = rsi(close, rsiperiod3)
rsi4 = rsi(close, rsiperiod4)
rsi5 = rsi(close, rsiperiod5)
//Signals
up1 = rsi1 < rsilimit1 and usersi1
up2 = rsi2 < rsilimit2 and usersi2
up3 = rsi3 < rsilimit3 and usersi3
up4 = rsi4 < rsilimit4 and usersi4
up5 = rsi5 < rsilimit5 and usersi5
up = up1 or up2 or up3 or up4 or up5
exit = rsi1 > rsilimit1 and rsi2 > rsilimit2 and rsi3 > rsilimit3 and rsi4 > rsilimit4 and rsi5 > rsilimit5
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1]
//Background
col = up ? lime : na
bgcolor(col, transp = 0)
//Trading
if up and (close < open or cf == false)
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)
if exit
strategy.close_all()