Strategi pemulihan purata bergerak RSI dua hala


Tarikh penciptaan: 2023-10-23 15:46:33 Akhirnya diubah suai: 2023-10-23 15:46:33
Salin: 0 Bilangan klik: 671
1
fokus pada
1617
Pengikut

Strategi pemulihan purata bergerak RSI dua hala

Gambaran keseluruhan

Strategi balas rata RSI dua arah adalah strategi pengesanan trend yang menggunakan dua tanda RSI dari tempoh masa yang berbeza untuk mengenal pasti keadaan overbought dan oversold. Strategi ini bertujuan untuk mendapatkan keuntungan dengan melakukan lebih banyak selepas oversold dan mengambil lebih sedikit selepas oversold. Strategi ini menggunakan rata-rata bergerak yang tidak seimbang, tanda RSI dan penapis warna untuk mengenal pasti peluang perdagangan.

Logik Strategi

Strategi ini menggunakan dua penunjuk RSI dengan kitaran yang berbeza, satu pada carta 5 minit dan satu pada carta 1 jam. Bagi penunjuk RSI, tahap oversold diiktiraf di bawah 30 dan tahap overbought di atas 70.

Ia menjejaki nilai RSI untuk mencari RSI yang berada dalam zon overbought atau oversold yang berterusan untuk tempoh tertentu, yang menunjukkan keadaan oversold atau oversold yang berkembang.

Di samping itu, ia menggunakan rata-rata bergerak asynchronous yang halus, memeriksa garis K merah atau hijau untuk tempoh tertentu sebelum memasuki perdagangan untuk mengesahkan arah trend. Penapis warna kedudukan membantu mengelakkan isyarat palsu.

Apabila kedua-dua syarat RSI dan Sliding Average dan Moving Average telah dipenuhi, strategi ini akan melakukan overbought dan overbought, dan harga pertaruhan akan kembali ke garis purata.

Pada penghujung setiap hari, anda perlu mengeluarkan wang anda untuk mengelakkan menyimpan wang anda semalaman.

Analisis kelebihan

  • Menggunakan pelbagai kerangka masa untuk mengenal pasti keadaan overbought dan oversold
  • Pelincir bunyi rata-rata bergerak yang tidak selaras dengan rata-rata bergerak, mengenal pasti arah trend
  • Penapis warna untuk mengelakkan isyarat palsu
  • Memadankan dua penunjuk mengikut peraturan pembukaan dan penutupan yang jelas
  • Risiko Kawalan Tetapan Tetap Harian

Analisis risiko

  • Jika trend yang kuat berterusan, RSI mungkin mengalami goyah selepas isyarat overbought dan oversold.
  • Jurang pasaran mungkin mencetuskan kerugian.
  • Pergerakan rata-rata bergerak yang tidak seimbang boleh menyebabkan kelewatan dalam pembukaan dan kehilangan pasaran.
  • Hasil yang mungkin diperoleh dengan melepaskan kedudukan semalaman sebelum berakhirnya hari

Arah pengoptimuman

  • Tambah penapis tambahan seperti jumlah dagangan atau kadar turun naik untuk mengesahkan isyarat
  • Optimumkan kitaran RSI dan parameter tahap overbought dan oversold
  • Pertimbangkan kawalan kedudukan dinamik berdasarkan kadar turun naik
  • Ujilah stop loss dan keluar daripada posisi kosong sebelum akhir hari
  • Uji kesannya dalam pelbagai varieti dan sesuaikan parameter

ringkaskan

Strategi tindak balas rata-rata RSI dua hala menggunakan kaedah untuk mengaturkan dinamika perdagangan. Dengan menggabungkan dua bingkai masa, indikator overbought dan oversold, analisis bentuk K-line, dan penapis bukaan, ia bertujuan untuk mengenal pasti peluang pulangan rata-rata yang berkemungkinan tinggi. Pengurusan risiko yang ketat dan kawalan kedudukan yang berhati-hati membantu untuk mengawal penarikan balik semasa mendapat keuntungan.

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