
Strategi respon rata-rata RSI dua arah adalah strategi pelacakan tren yang menggunakan indikator RSI dari dua periode waktu yang berbeda untuk mengidentifikasi kondisi overbought dan oversold. Strategi ini bertujuan untuk mendapatkan keuntungan dengan melakukan lebih banyak setelah oversold dan mengambil lebih sedikit setelah oversold. Strategi ini menggunakan rata-rata bergerak asynchronous yang halus, indikator RSI, dan filter warna posisi terbuka untuk mengidentifikasi peluang perdagangan.
Strategi ini menggunakan dua indikator RSI dengan periode yang berbeda untuk memblokir satu pada grafik 5 menit dan satu pada grafik 1 jam. Untuk indikator RSI, level oversold diidentifikasi di bawah 30 dan level overbought di atas 70.
Ini akan melacak nilai RSI untuk mencari RSI yang berputar di zona oversold atau zona overbought, yang menunjukkan ekspansi oversold atau oversold.
Selain itu, ia menggunakan smoothed asymmetric moving average, memeriksa garis K merah atau hijau untuk periode tertentu sebelum memasuki perdagangan untuk mengkonfirmasi arah tren. Penyaringan warna posisi membantu menghindari sinyal palsu.
Strategi ini akan melakukan overbought setelah oversold, shorting setelah overbought, dan kembali ke level rata-rata ketika kondisi RSI dan moving average terpenuhi.
Pada akhir hari, tutup posisi Anda untuk menghindari penutupan malam.
Strategi respon rata-rata RSI dua arah menggunakan metode reguler untuk memperkuat dinamika perdagangan. Dengan kombinasi dua kerangka waktu, indikator overbought dan oversold, analisis pola K-line, dan filter posisi terbuka, tujuannya adalah untuk mengidentifikasi peluang untuk mendapatkan probabilitas tinggi dari perlambatan rata-rata. Manajemen risiko yang ketat dan kontrol posisi yang bijaksana membantu untuk mengendalikan penarikan balik sambil mendapatkan keuntungan.
/*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()