RSI dan Strategi Dagangan Kuantitatif Berdasarkan Purata Bergerak

Penulis:ChaoZhang, Tarikh: 2023-12-01 14:21:18
Tag:

img

Ringkasan

Strategi ini dipanggil Dual Moving Average Strategy. Idea utamanya adalah untuk menjana isyarat perdagangan dengan menggunakan Indeks Kekuatan Relatif (RSI) dan petunjuk Moving Average (MA) secara serentak. Khususnya, isyarat beli dihasilkan apabila garis RSI melintasi garis MA dari atas ke bawah; isyarat jual dihasilkan apabila garis RSI melintasi garis MA dari bawah ke atas. Strategi ini agak mudah, tetapi dengan menggabungkan dua jenis petunjuk yang berbeza, ia dapat mengurangkan isyarat palsu dengan berkesan dan meningkatkan kebolehpercayaan isyarat.

Prinsip

Logik asas strategi purata bergerak berganda adalah:

  1. Mengira nilai RSI untuk mencerminkan keadaan overbought dan oversold stok
  2. Mengira nilai MA untuk menilai trend harga purata
  3. Apabila RSI jatuh dari titik tinggi dan memasuki kawasan oversold dari kawasan overbought, dan melintasi di bawah MA, isyarat beli dihasilkan
  4. Apabila RSI meningkat dari titik terendah, memasuki kawasan overbought dari kawasan oversold, dan melintasi di atas MA, isyarat jual dihasilkan.

Apabila isyarat perdagangan di atas berlaku, kami akan menarik tanda yang berkaitan pada carta untuk penilaian visual yang mudah.

Kelebihan

Kelebihan terbesar strategi purata bergerak berganda adalah bahawa ia dapat menggabungkan indikator trend dan indikator overbought / oversold dengan berkesan untuk menjadikan isyarat perdagangan lebih boleh dipercayai.

  1. Mengurangkan isyarat palsu. Gabungan RSI dan MA boleh mengesahkan isyarat antara satu sama lain dan mengelakkan isyarat palsu yang dihasilkan oleh satu penunjuk.

  2. Meningkatkan kadar kemenangan. Berbanding dengan satu strategi RSI atau MA, strategi purata bergerak berganda boleh mendapatkan peluang yang lebih menguntungkan.

  3. Kebolehsesuaian yang kuat. Strategi ini hanya menggunakan dua parameter, mudah dikendalikan, kos rendah, dan menyesuaikan diri dengan persekitaran pasaran yang berbeza.

  4. Mudah untuk mengoptimumkan. Dengan menyesuaikan parameter kitaran RSI dan MA, ia mudah untuk mengoptimumkan dan menyesuaikan diri dengan lebih banyak jenis.

Risiko

Walaupun banyak kelebihan strategi purata bergerak berganda, risiko tidak dapat dielakkan sepenuhnya dalam aplikasi sebenar.

  1. MA menggunakan harga purata sejarah dan mungkin ketinggalan dengan perubahan harga terkini.

  2. RSI mungkin mengalami pecah palsu, mengakibatkan isyarat yang salah.

  3. Tidak dapat menyesuaikan diri dengan pasaran yang berubah dengan pantas, cenderung untuk menghentikan kerugian.

  4. Tetapan parameter yang tidak betul juga boleh mempengaruhi prestasi strategi.

Sebagai tindak balas, kami terutamanya menjalankan kawalan risiko dari aspek berikut:

  1. Menggunakan MA adaptif untuk menyesuaikan parameter kitaran berdasarkan perubahan harga terkini.

  2. Meningkatkan mekanisme stop loss untuk mengawal kerugian tunggal.

  3. Mengoptimumkan parameter untuk memilih kombinasi parameter terbaik untuk ujian.

  4. Mengambil langkah stop loss untuk mengunci keuntungan separa dan mengurangkan risiko.

Arahan pengoptimuman

Untuk isu-isu yang berpotensi dengan strategi purata bergerak berganda, kami mempertimbangkan pengoptimuman dari dimensi berikut:

  1. Gunakan MA adaptif dan bukannya MA biasa untuk menangkap perubahan trend harga dengan lebih cepat.

  2. Meningkatkan pengesahan penunjuk jumlah untuk mengelakkan pecah palsu. Sebagai contoh, hanya membeli apabila harga penutupan dan jumlah dagangan meningkat bersama-sama.

  3. Menggabungkan penunjuk lain untuk menapis isyarat yang tidak sah.

  4. Mengoptimumkan julat tetapan parameter untuk mencari kombinasi parameter optimum. Backtesting boleh mencari julat parameter keuntungan tertinggi untuk strategi.

  5. Menggunakan teknik pembelajaran mesin untuk pengoptimuman parameter adaptif.

Melalui pengoptimuman di atas, ia dijangka dapat meningkatkan prestasi langsung strategi purata bergerak berganda.

Ringkasan

Strategi purata bergerak berganda mengintegrasikan kelebihan penunjuk RSI dan MA. Melalui kerjasama kedua-dua, isyarat perdagangan yang lebih tepat dan boleh dipercayai dapat dihasilkan. Berbanding dengan strategi penunjuk teknikal tunggal, strategi purata bergerak berganda mempunyai ketepatan isyarat yang lebih tinggi, lebih sedikit isyarat palsu, pengoptimuman mudah dan kelebihan lain. Tetapi risiko kesalahan operasi tidak dapat dielakkan sepenuhnya. Kami juga telah mencadangkan beberapa langkah kawalan risiko tertentu. Di samping itu, terdapat dimensi yang boleh dioptimumkan lebih lanjut untuk strategi ini. Dengan menggabungkan penunjuk adaptif, penunjuk pengesahan tambahan lain, pengoptimuman parameter dan cara lain, diharapkan dapat meningkatkan lagi kadar pulangan strategi. Secara umum, strategi ini menyediakan penyelesaian analisis teknikal yang mudah dan praktikal untuk perdagangan kuantitatif.


/*backtest
start: 2023-10-31 00:00:00
end: 2023-11-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="RSI + MA", shorttitle="RSI + MA")
reverseTrade = input(false, title = "Use Reverse Trade?")
lengthRSI = input(14, minval=1, title="RSI Length")
sourceRSI = input(close, "RSI Source", type = input.source)

showMA = input(true, title="Show MA")
lengthMA = input(9, minval=1, title="MA Length")
offsetMA = input(title="MA Offset", type=input.integer, defval=0, minval=-500, maxval=500)

up = rma(max(change(sourceRSI), 0), lengthRSI)
down = rma(-min(change(sourceRSI), 0), lengthRSI)

rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
ma = sma(rsi, lengthMA)

plot(showMA ? ma : na, "MA", color=color.blue, linewidth=2, style=0, offset=offsetMA)
plot(rsi, "RSI", color=#9915FF, linewidth=1, style=0)

band1 = hline(70, "Upper Band", color=#C0C0C0, linestyle=2, linewidth=1)
band0 = hline(30, "Lower Band", color=#C0C0C0, linestyle=2, linewidth=1)
fill(band1, band0, color=color.new(#9915FF,95), title="Background")

buy = reverseTrade ? rsi[1] < ma[1] and rsi > ma : rsi[1] > ma[1] and rsi < ma
sell = reverseTrade ? rsi[1] > ma[1] and rsi < ma : rsi[1] < ma[1] and rsi > ma

strategy.entry("Buy", true, when = buy)
strategy.entry("Sell", false, when = sell)

Lebih lanjut