
Strategi ini menggunakan tiga indikator RSI yang berbeda untuk melihat apakah pasar telah mencapai zona teratas untuk overbought dan oversold, sehingga memberikan sinyal beli dan jual.
Strategi ini menggunakan indikator RSI periode 2, periode 7 dan periode 14 secara bersamaan. Ketika tiga indikator RSI secara bersamaan menunjukkan sinyal overbought atau oversold, maka sinyal perdagangan dikeluarkan.
Secara khusus, ketika 2 siklus RSI kurang dari 10, 7 siklus RSI kurang dari 20, 14 siklus RSI kurang dari 30, pasar dianggap berada dalam keadaan oversold, mengeluarkan sinyal beli. Ketika 2 siklus RSI lebih besar dari 90, 7 siklus RSI lebih besar dari 80, 14 siklus RSI lebih besar dari 70, pasar dianggap berada dalam keadaan oversold, mengeluarkan sinyal jual.
Kode ini menggunakan parameter akurasi untuk menyaring nilai terendah dari penilaian overbought dan oversold RSI, dengan asumsi bahwa 3, nilai yang lebih kecil, penilaian overbought dan oversold akan lebih ketat. ❚strategy.long dan strategy.short digunakan untuk mengontrol apakah perdagangan di arah yang sesuai.
Setelah sinyal buy atau sell, jika harga terbalik dan melampaui harga pembukaan pada hari itu, maka posisi saat ini akan dipadamkan dan trend tracking stop loss akan dilakukan.
Dengan menggabungkan indikator RSI multi-siklus, Anda dapat lebih akurat menilai kondisi overbought dan oversold di pasar, memfilter sinyal palsu.
Dengan menggunakan parameter yang berbeda untuk menyesuaikan kondisi penilaian overbought dan oversold, strategi dapat disesuaikan dengan sensitivitas pasar.
Implementasi pelacakan stop loss pada harga open, dapat menghentikan kerugian tepat waktu, dan mengunci keuntungan.
Indeks RSI cenderung menyimpang dan tidak efektif dalam menilai perubahan tren pasar.
Pengaturan RSI harus disesuaikan dengan situasi yang berfluktuasi tinggi, jika tidak, indikator akan sering terhenti.
Triple RSI lebih jarang terjadi pada saat bersamaan, sehingga Anda mungkin akan kehilangan peluang trading yang lebih baik.
Parameter penilaian overbought dan oversold harus disesuaikan dengan baik, dan dianjurkan untuk menguji efektivitas data di berbagai pasar.
Anda dapat mempertimbangkan untuk menambahkan indikator lain untuk konfirmasi, seperti Brinline, KDJ, dan lain-lain, untuk menghindari RSI menyimpang dari.
Parameter RSI dapat dioptimalkan secara otomatis berdasarkan jenis situasi yang berbeda.
Kondisi stop loss exit lainnya, seperti stop loss ATR, dapat diuji.
Anda dapat menambahkan kondisi untuk memfilter periode transaksi untuk menghindari periode yang tidak sesuai.
Strategi ini menggunakan kombinasi indikator RSI multi-siklus untuk menilai area overbought dan oversold, dan menerapkan trend tracking stop loss. Keuntungan adalah dapat meningkatkan akurasi penilaian, stop loss tepat waktu; Kelemahannya adalah mudah kehilangan formulir, indikator RSI mudah disalahartikan.
/*backtest
start: 2023-10-25 00:00:00
end: 2023-10-28 10:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "Noro's Triple RSI Top/Bottom", shorttitle = "3RSI Top/Bottom", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
accuracy = input(3, defval = 3, minval = 1, maxval = 10, title = "accuracy")
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-2
fastup = rma(max(change(close), 0), 2)
fastdown = rma(-min(change(close), 0), 2)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))
//RSI-7
middleup = rma(max(change(close), 0), 7)
middledown = rma(-min(change(close), 0), 7)
middlersi = middledown == 0 ? 100 : middleup == 0 ? 0 : 100 - (100 / (1 + middleup / middledown))
//RSI-14
slowup = rma(max(change(close), 0), 14)
slowdown = rma(-min(change(close), 0), 14)
slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown))
//Signals
acc = 10 - accuracy
up = fastrsi < (5 + acc) and middlersi < (10 + acc * 2) and slowrsi < (15 + acc * 3)
dn = fastrsi > (95 - acc) and middlersi > (90 - acc * 2) and slowrsi > (85 - acc * 3)
exit = (strategy.position_size > 0 and close > open) or (strategy.position_size > 0 and close > open)
//Trading
if up
if strategy.position_size < 0
strategy.close_all()
strategy.entry("Bottom", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn
if strategy.position_size > 0
strategy.close_all()
strategy.entry("Top", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
strategy.close_all()