Strategi pemulihan rata-rata pergerakan RSI dua arah


Tanggal Pembuatan: 2023-10-23 15:46:33 Akhirnya memodifikasi: 2023-10-23 15:46:33
menyalin: 0 Jumlah klik: 671
1
fokus pada
1617
Pengikut

Strategi pemulihan rata-rata pergerakan RSI dua arah

Ringkasan

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.

Logika Strategi

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.

Analisis Keunggulan

  • Menggunakan Multiple Time Frame untuk Mengidentifikasi Overbought dan Oversold
  • Filter kebisingan dari rata-rata bergerak yang tidak sejajar dan identifikasi arah tren
  • Filter warna untuk menghindari sinyal palsu
  • Memadukan dua indikator berdasarkan aturan eksplisit untuk membuka dan menutup posisi
  • Risiko Pengendalian Posisi Padat Harian

Analisis risiko

  • Jika tren yang kuat berlanjut, RSI mungkin akan bergoyang setelah sinyal overbought dan oversold.
  • Celah pasar dapat memicu stop loss
  • Pergerakan rata-rata yang tidak seimbang dapat menunda pembukaan posisi sehingga tidak terjadi pergerakan
  • Keuntungan yang bisa didapatkan dengan meninggalkan posisi overnight sebelum akhir hari

Arah optimasi

  • Tambahkan filter tambahan seperti volume transaksi atau volatilitas untuk mengkonfirmasi sinyal
  • Optimalkan siklus RSI dan parameter level overbought dan oversold
  • Pertimbangkan kontrol posisi dinamis berdasarkan volatilitas
  • Uji Stop Loss dan Keluar dari Stop Loss, Bukan Hemat Hutang Sebelum Akhir Hari
  • Uji efek pada varietas yang berbeda dan menyesuaikan parameter

Meringkaskan

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.

Kode Sumber Strategi
/*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()