Strategi perdagangan multi RSI mengidentifikasi peluang perdagangan dengan menggabungkan beberapa indikator RSI untuk melacak tren. Strategi ini secara fleksibel menggunakan 1-5 indikator RSI dan menentukan waktu masuk dan keluar sesuai dengan nilai indikator.
Strategi ini memungkinkan untuk memilih 1-5 indikator RSI melalui parameter input. Setiap indikator RSI dapat dikonfigurasi secara independen dengan nilai periode dan batas. Ketika RSI jatuh di bawah nilai batas, sinyal beli dipicu. Kekuatan sinyal ditentukan oleh periode indikator RSI yang dipicu, dengan periode yang lebih tinggi berarti sinyal yang lebih kuat. Ketika RSI naik kembali di atas batas, sinyal posisi dekat dipicu. Strategi ini juga memberikan fleksibilitas untuk menggunakan filter warna dan membatasi jam perdagangan.
Keuntungan terbesar dari strategi ini adalah kemampuan untuk menilai beberapa kerangka waktu menggunakan berbagai RSI, menilai baik tren dan peluang pembalikan dari dimensi panjang dan pendek untuk meningkatkan keakuratan. Selain itu, konfigurasi fleksibel dari setiap indikator RSI sangat memperluas kemampuan beradaptasi di berbagai pasar.
Risiko utama adalah sinyal yang saling bertentangan ketika menggabungkan beberapa penilaian RSI. Misalnya, RSI yang lebih pendek menghasilkan pembelian sementara RSI yang lebih lama masih oversold. Seseorang harus mengandalkan pengalaman untuk menentukan sinyal mana yang lebih utama. Juga, RSI rentan terhadap whipsaws yang membutuhkan validasi menggunakan indikator lain atau akun besar.
Strategi ini dapat mempertimbangkan menambahkan indikator penolong tren seperti moving average atau Bollinger band untuk memvalidasi sinyal RSI dan meningkatkan akurasi. Selain itu, algoritma pembelajaran mesin tertentu juga dapat dieksplorasi, menggunakan multi-faktor scoring untuk secara otomatis menentukan keandalan sinyal. Untuk pengendalian risiko, kerugian mengambang atau garis stop drawdown maksimum dapat diimplementasikan untuk tujuan stop loss.
Secara keseluruhan, strategi perdagangan multi RSI sangat inovatif. Fleksibilitas kombinasi indikator dan parameter membuatnya dapat beradaptasi dengan pasar yang berkembang. Perbaikan lebih lanjut dapat dicapai dengan menggabungkan algoritma pembelajaran mesin dan lebih banyak langkah pengendalian risiko mengingat desain modularnya.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-27 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Symphony Strategy v1.1", shorttitle = "Symphony str 1.1", 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(20, defval = 20, 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(25, defval = 25, 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(30, defval = 30, minval = 2, maxval = 50, title = "RSI 3 Limit") usersi4 = input(false, defval = false, title = "Use RSI 4") rsiperiod4 = input(21, defval = 21, minval = 2, maxval = 100, title = "RSI 4 Period") rsilimit4 = input(35, defval = 35, minval = 2, maxval = 50, title = "RSI 4 Limit") usersi5 = input(false, defval = false, title = "Use RSI 5") rsiperiod5 = input(28, defval = 28, minval = 2, maxval = 100, title = "RSI 5 Period") rsilimit5 = input(40, defval = 40, 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 str = up5 ? 5 : up4 ? 4 : up3 ? 3 : up2 ? 2 : up1 ? 1 : str[1] up = up1 or up2 or up3 or up4 or up5 exit = (rsi1 > rsilimit1 and str == 1) or (rsi2 > rsilimit2 and str == 2) or (rsi3 > rsilimit3 and str == 3) or (rsi4 > rsilimit4 and str == 4) or (rsi5 > rsilimit5 and str == 5) 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, lot, 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()