Strategi perdagangan kuantitatif berdasarkan StochRSI


Tarikh penciptaan: 2023-12-07 16:05:17 Akhirnya diubah suai: 2023-12-07 16:05:17
Salin: 0 Bilangan klik: 627
1
fokus pada
1619
Pengikut

Strategi perdagangan kuantitatif berdasarkan StochRSI

Gambaran keseluruhan

Strategi ini dibangunkan berdasarkan petunjuk StochRSI. Strategi ini digunakan terutamanya untuk menilai keadaan overbought dan oversold, digabungkan dengan penapis RSI untuk memfilter beberapa isyarat palsu, melakukan kosong apabila indikator StochRSI menunjukkan kawasan oversold dan melakukan lebih banyak apabila menunjukkan kawasan oversold, untuk mencapai keuntungan.

Prinsip Strategi

Strategi ini digunakan terutamanya untuk menentukan kawasan jual beli di pasaran. Indeks StochRSI terdiri daripada garis K dan garis D, di mana garis K mencerminkan kedudukan nilai RSI semasa dalam julat harga RSI dalam tempoh baru-baru ini, dan garis D adalah purata bergerak garis K. Apabila K melintasi garis D, ia adalah kawasan jual beli, yang boleh dilakukan lebih banyak; apabila K melintasi garis D, ia adalah kawasan jual beli, yang boleh dilakukan dengan kosong.

Khususnya, strategi pertama mengira nilai RSI dengan panjang 14, dan kemudian menggunakan indikator StochRSI pada indikator RSI. Panjang parameter penyetempatan indikator StochRSI adalah 14, garis K untuk kitaran lancar adalah 3, dan garis D adalah 3. Apabila K melintasi kawasan oversold yang ditetapkan oleh pengguna di atas garis, lakukan lebih banyak. Apabila K melintasi kawasan oversold yang ditetapkan oleh pengguna di bawah garis, lakukan kosong.

Di samping itu, strategi juga menetapkan parameter berhenti dan berhenti. Parameter berhenti secara default adalah 10000; berhenti ditetapkan sebagai stop trailing kurva berdasarkan parameter, dengan titik trailing 300 secara default, dan penyingkiran adalah 0.

Analisis kelebihan

  1. Menggunakan StochRSI untuk menentukan kawasan overbought dan oversold lebih dipercayai daripada RSI tunggal
  2. Gabungan dengan isyarat penapis RSI untuk mengelakkan penembusan palsu
  3. Tetapkan kawalan risiko mekanisme hentikan kerosakan

Analisis risiko

  1. StochRSI mungkin mempunyai isyarat palsu
  2. Anda perlu menetapkan parameter overbought dan oversold dengan munasabah, jika tidak, anda akan melakukan kesalahan.
  3. Stop loss yang terlalu kecil mudah disekat, dan stop loss yang terlalu besar mungkin memberi keuntungan yang terhad

Untuk menghadapi risiko di atas, anda boleh menetapkan kitaran parameter yang lebih lama atau mempertimbangkan untuk menggunakannya dengan kombinasi indikator lain untuk memfilter isyarat, menyesuaikan parameter overbought dan oversold untuk pasaran yang berbeza, dan menguji parameter stop loss yang berbeza.

Arah pengoptimuman

  1. Ia boleh dipertimbangkan untuk digunakan dengan kombinasi lain seperti MACD, Brinline dan lain-lain untuk menyaring isyarat palsu
  2. Seting kitaran parameter yang berbeza boleh diuji untuk menyesuaikan diri dengan lebih banyak keadaan pasaran
  3. Anda boleh mengoptimumkan titik henti rugi, menguji berkali-kali dalam pengukuran semula untuk mencari parameter yang optimum

ringkaskan

Strategi ini berdasarkan kepada petunjuk StochRSI untuk menentukan kawasan overbought dan oversold. Berbanding dengan satu-satunya petunjuk RSI, StochRSI menggabungkan pemikiran KDJ untuk menentukan titik perubahan dengan lebih tepat.

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