Dual RSI Mean Reversion Strategy adalah strategi yang mengidentifikasi kondisi overbought dan oversold menggunakan dua indikator RSI pada jangka waktu yang berbeda. Strategi ini bertujuan untuk memanfaatkan reversi rata-rata dengan pergi lama setelah kondisi oversold dan pergi pendek setelah kondisi overbought. Strategi ini menggunakan lilin Heikin-Ashi, indikator RSI dan filter warna terbuka untuk mengidentifikasi peluang perdagangan.
Strategi ini menggunakan dua indikator RSI dengan periode yang berbeda - satu pada grafik 5 menit dan satu pada grafik 1 jam. Untuk indikator RSI, tingkat oversold diidentifikasi di bawah 30 dan tingkat overbought di atas 70.
Ini melacak nilai RSI dan mencari situasi di mana RSI telah di bawah 30 atau di atas 70 untuk sejumlah batang yang ditentukan, menunjukkan kondisi oversold atau overbought yang diperpanjang.
Selain itu, ia menggunakan lilin Heikin-Ashi dan memeriksa sejumlah lilin hijau atau merah yang ditentukan untuk mengkonfirmasi arah tren sebelum memasuki perdagangan.
Ketika kedua kondisi RSI dan Heikin-Ashi sejajar, strategi akan pergi panjang setelah kondisi oversold atau pergi pendek setelah kondisi overbought, bertaruh pada reversi ke rata-rata.
Posisi ditutup pada akhir setiap hari untuk menghindari perdagangan semalam.
Strategi Reversi Rata-rata RSI Ganda mengambil pendekatan berbasis aturan untuk momentum perdagangan. Dengan menggabungkan dua kerangka waktu, indikator overbought/oversold, analisis candlestick dan filter entri, itu bertujuan untuk mengidentifikasi pengaturan reversi rata-rata probabilitas tinggi. Manajemen risiko yang ketat dan ukuran posisi yang bijaksana membantu menyeimbangkan keuntungan dengan mengelola penarikan. Optimasi lebih lanjut dan pengujian ketahanan akan membantu menyebarkannya dengan sukses di berbagai pasar.
/*backtest start: 2023-09-01 00:00:00 end: 2023-09-30 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Gidra //2018 //@version=2 strategy(title = "Gidra's Vchain Strategy v0.1", shorttitle = "Gidra's Vchain Strategy v0.1", overlay = false, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100) //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, %") rsiperiod = input(14, defval = 14, minval = 2, maxval = 100, title = "RSI period") rsilimit = input(30, defval = 30, minval = 1, maxval = 50, title = "RSI limit") rsibars = input(3, defval = 3, minval = 1, maxval = 20, title = "RSI signals") useocf = input(true, defval = true, title = "Use Open Color Filter") openbars = input(2, defval = 2, minval = 1, maxval = 20, title = "Open Color, Bars") showrsi = input(true, defval = true, title = "Show indicator RSI") fromyear = input(2018, defval = 2018, 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") //Heikin Ashi Open/Close Price o=open c=close h=high l=low haclose = (o+h+l+c)/4 haopen = na(haopen[1]) ? (o + c)/2 : (haopen[1] + haclose[1]) / 2 hahigh = max (h, max(haopen,haclose)) halow = min (l, min(haopen,haclose)) col=haopen>haclose ? red : lime plotcandle(haopen, hahigh, halow, haclose, title="heikin", color=col) //RSI uprsi = rma(max(change(close), 0), rsiperiod) dnrsi = rma(-min(change(close), 0), rsiperiod) rsi = dnrsi == 0 ? 100 : uprsi == 0 ? 0 : 100 - (100 / (1 + uprsi / dnrsi)) uplimit = 100 - rsilimit dnlimit = rsilimit rsidn = rsi < dnlimit ? 1 : 0 rsiup = rsi > uplimit ? 1 : 0 //RSI condition rsidnok = highest(rsidn, rsibars) == 1? 1 : 0 rsiupok = highest(rsiup, rsibars) == 1? 1 : 0 //Color Filter bar = haclose > haopen ? 1 : haclose < haopen ? -1 : 0 gbar = bar == 1 ? 1 : 0 rbar = bar == -1 ? 1 : 0 openrbarok = sma(gbar, openbars) == 1 or useocf == false opengbarok = sma(rbar, openbars) == 1 or useocf == false //Signals up = openrbarok and rsidnok dn = opengbarok and rsiupok lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 : lot[1] //Indicator RSI colbg = showrsi == false ? na : rsi > uplimit ? red : rsi < dnlimit ? lime : na bgcolor(colbg, transp = 20) //Trading if up strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if dn strategy.entry("Short", strategy.short, needshort == false ? 0 : 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()