Strategi perdagangan kuantitatif berdasarkan StochRSI


Tanggal Pembuatan: 2023-12-07 16:05:17 Akhirnya memodifikasi: 2023-12-07 16:05:17
menyalin: 0 Jumlah klik: 627
1
fokus pada
1619
Pengikut

Strategi perdagangan kuantitatif berdasarkan StochRSI

Ringkasan

Strategi ini dikembangkan berdasarkan indikator StochRSI. Strategi ini terutama menggunakan indikator StochRSI untuk menilai overbought dan oversold, digabungkan dengan indikator RSI untuk memfilter beberapa sinyal palsu, melakukan shorting ketika indikator StochRSI menunjukkan area oversold, dan melakukan overbought ketika menunjukkan area oversold, untuk mencapai keuntungan.

Prinsip Strategi

Strategi ini terutama menggunakan indikator StochRSI untuk menentukan area overbought dan oversold di pasar. Indikator StochRSI terdiri dari garis K dan garis D, di mana garis K mencerminkan posisi nilai RSI saat ini dalam kisaran harga RSI dalam periode terakhir, dan garis D adalah rata-rata bergerak dari garis K. Ketika K melewati garis D di atas zona oversold, maka dapat dilakukan overbought; Ketika K melewati garis D di bawah zona oversold, maka dapat dilakukan overbought.

Secara khusus, strategi pertama menghitung nilai indikator RSI dengan panjang 14, lalu menerapkan indikator StochRSI pada indikator RSI. Pengaturan parameter indikator StochRSI dengan panjang 14, garis siklus kelancaran K adalah 3, dan garis D adalah 3. Ketika K melewati area oversold yang ditetapkan pengguna di garis (default 1), lakukan lebih banyak; Ketika K melewati area oversold yang ditetapkan pengguna di bawah garis (default 99), lakukan kosong.

Selain itu, strategi juga mengatur parameter stop loss dan trailing stop. Parameter stop loss secara default adalah 10000; stop loss diatur sebagai stop trailing curve berdasarkan parameter, dengan trailing point default 300 dan drift 0 [2].

Analisis Keunggulan

  1. Menggunakan indikator StochRSI untuk menentukan area overbought dan oversold lebih dapat diandalkan daripada indikator RSI tunggal
  2. Kombinasi sinyal filter RSI untuk menghindari false breakout
  3. Mengatur risiko pengendalian mekanisme stop-loss

Analisis risiko

  1. StochRSI kemungkinan adanya sinyal palsu
  2. Anda perlu mengatur parameter overbought dan oversold secara masuk akal, jika tidak, Anda akan melakukan kesalahan.
  3. Stop loss yang terlalu kecil mudah diblokir, stop loss yang terlalu besar mungkin menghasilkan keuntungan yang terbatas.

Untuk risiko di atas, Anda dapat mengatur siklus parameter yang lebih lama atau mempertimbangkan untuk menggunakannya dengan kombinasi indikator lain untuk memfilter sinyal, menyesuaikan parameter overbought dan oversold untuk menyesuaikan dengan pasar yang berbeda, dan menguji parameter stop loss yang berbeda.

Arah optimasi

  1. Dapat dipertimbangkan untuk digunakan dalam kombinasi dengan indikator lain, seperti MACD, Brinline, dll, untuk memfilter sinyal palsu
  2. Setelan siklus parameter yang berbeda dapat diuji untuk lebih banyak situasi pasar
  3. Anda dapat mengoptimalkan stop loss dengan melakukan beberapa kali pengujian dalam pengukuran ulang untuk menemukan parameter optimal.

Meringkaskan

Strategi ini didasarkan pada indikator StochRSI untuk menentukan area overbought dan oversold. Dengan menggunakan ide KDJ, StochRSI dapat lebih akurat menentukan titik pivot dibandingkan dengan indikator RSI tunggal. Dengan menggunakan RSI untuk memfilter sinyal palsu dan mengatur risiko pengendalian stop loss.

Kode Sumber Strategi
/*backtest
start: 2023-11-06 00:00:00
end: 2023-12-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version= 2
strategy("STOCHRSI JURE", overlay=false)
lengthrsi = input(10)
overSold = input( 1 )
overBought = input(99)

call_trail_stop = input(300)
call_trail_offset = input(0)
call_sl = input(10000)

price = ohlc4
vrsi = rsi(price, lengthrsi)

smoothK = input(3, minval=1)
smoothD = input(3, minval=1)
lengthRSI = input(14, minval=1)
lengthStoch = input(14, minval=1)
src = input(close, title="RSI Source")

rsi1 = rsi(src, lengthRSI)
k = sma(stoch(rsi1, rsi1, rsi1, lengthStoch), smoothK)
d = sma(k, smoothD)


plot( k, color=blue, linewidth=1, title="K")
plot( d, color=red, linewidth=1, title="D")

if (crossover(k, overSold) ) 
    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND",  comment="BUY")
    strategy.exit("BUY EXIT", "BUY", trail_points=call_trail_stop, trail_offset=call_trail_offset, loss = call_sl)


if (crossunder(k, overBought) ) 
    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL")
    strategy.exit("SELL EXIT", "SELL", trail_points=call_trail_stop, trail_offset=call_trail_offset, loss = call_sl)
    

//if (  ( crossover(k,d)) and ( (vrsi<overSold) or crossover(vrsi,overSold) )  and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil) 
//    strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", oca_type=strategy.oca.cancel, comment="BUY")
//else
//    strategy.cancel(id="BUY")

//if ( ( crossunder(k,d) ) and ( (vrsi >overBought) or crossunder(vrsi,overBought) ) and   year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil ) 
//    strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", oca_type=strategy.oca.cancel, comment="SELL")
//else
//    strategy.cancel(id="SELL")