Strategi ini menggunakan tiga penunjuk RSI dengan tempoh yang berbeza untuk menentukan sama ada pasaran telah mencapai tahap terlalu banyak beli atau terlalu banyak jual, dan menghasilkan isyarat beli dan jual dengan sewajarnya.
Strategi ini menggunakan penunjuk RSI 2 tempoh, 7 tempoh, dan 14 tempoh secara serentak. Apabila ketiga-tiga penunjuk RSI menunjukkan isyarat overbought atau oversold pada masa yang sama, isyarat perdagangan dihasilkan.
Secara khusus, apabila RSI 2 tempoh di bawah 10, RSI 7 tempoh di bawah 20, dan RSI 14 tempoh di bawah 30, pasaran dianggap terlalu banyak dijual, dan isyarat beli dihasilkan.
Kod ini menggunakan parameter ketepatan untuk menyelaraskan nilai ambang overbought / oversold RSI. lalai adalah 3, dan nilai yang lebih rendah bermakna kriteria overbought / oversold yang lebih ketat.
Apabila isyarat beli atau jual dihasilkan, jika harga berbalik dan memecahkan harga pembukaan hari itu, kedudukan semasa akan ditutup untuk merealisasikan keuntungan atau mengurangkan kerugian.
Menggunakan gabungan penunjuk RSI pelbagai tempoh dapat mengenal pasti keadaan overbought / oversold dengan lebih tepat dan menapis isyarat palsu.
Penyesuaian kriteria overbought/oversold dengan parameter yang berbeza membolehkan penyesuaian kepekaan strategi berdasarkan keadaan pasaran.
Melaksanakan hentian penjejakan harga terbuka membantu mengunci keuntungan dengan tepat pada masanya.
Penunjuk RSI cenderung kepada perbezaan yang tidak berkesan dalam mengenal pasti pembalikan trend.
Untuk tempoh turun naik yang tinggi, parameter RSI perlu diselaraskan, jika tidak, ia mungkin mencetuskan berhenti terlalu kerap.
Sinyal RSI tiga kali berturut-turut jarang berlaku, yang mungkin kehilangan peluang perdagangan yang baik.
Parameter untuk kriteria overbought/oversold harus disesuaikan dan diuji di pasaran yang berbeza.
Pertimbangkan untuk menambah penunjuk lain untuk pengesahan, seperti Bollinger Bands, KDJ dll, untuk mengelakkan perbezaan RSI.
Mengoptimumkan parameter RSI secara automatik berdasarkan rejimen pasaran yang berbeza.
Uji keadaan keluar berhenti lain, seperti berhenti ATR.
Tambah penapis untuk mengelakkan perdagangan pada tempoh yang tidak sesuai.
Strategi ini mengenal pasti zon overbought / oversold menggunakan gabungan penunjuk RSI pelbagai tempoh, dan melaksanakan hentian penjejakan trend. Kelebihan termasuk meningkatkan ketepatan, hentian tepat pada masanya; Kelemahan termasuk perdagangan yang hilang, salah menilai RSI. Ujian pengoptimuman parameter disyorkan, bersama dengan menambah penunjuk pengesahan, untuk mencapai prestasi yang lebih baik.
/*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()