Multi RSI Indikator Strategi Trading

Penulis:ChaoZhang, Tanggal: 2023-11-28 15:03:53
Tag:

img

Gambaran umum

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.

Logika Strategi

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.

Analisis Keuntungan

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.

Analisis Risiko

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.

Arahan Optimasi

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.

Ringkasan

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()

Lebih banyak