Strategi perdagangan kuantitatif berdasarkan Stock RSI dan MFI

Penulis:ChaoZhang, Tanggal: 2024-01-29 10:11:14
Tag:

img

Gambaran umum

Strategi ini menggabungkan indikator Stochastic RSI dan MFI untuk mengidentifikasi kondisi overbought dan oversold dan membuat keputusan beli dan jual.

Prinsip Strategi

Indikator Stochastic RSI menggabungkan keuntungan dari Stochastic Oscillator (KDJ) dan Relative Strength Index (RSI). Pertama menghitung nilai RSI selama periode waktu melalui RSI, dan kemudian menerapkan metode Stochastic untuk menghitung nilai Stochastic K dan D dari array RSI ini untuk menentukan apakah RSI terlalu banyak dibeli atau terlalu banyak dijual.

Indeks Aliran Uang (MFI) menilai hubungan penawaran-permintaan pasar dan kondisi overbought/oversold berdasarkan perubahan volume dan harga. Indikator ini percaya bahwa kenaikan harga mencerminkan kekuatan bullish yang lebih kuat daripada kekuatan bearish. Ketika volatilitas meningkat, kekuatan bullish lebih kuat daripada kekuatan bearish, sehingga peningkatan omset menandakan kenaikan harga.

Strategi ini menetapkan tingkat overbought dan oversold untuk Stochastic RSI dan MFI. Ketika garis K dari indikator Stochastic RSI melintasi garis oversold ke atas atau indikator MFI melintasi garis oversold ke atas, sinyal beli dihasilkan. Ketika garis K dari indikator Stochastic RSI melintasi garis overbought ke bawah atau indikator MFI melintasi garis overbought ke bawah, sinyal jual dihasilkan.

Keuntungan dari Strategi

Strategi ini menggabungkan indikator RSI Stochastic dan MFI dapat lebih dapat diandalkan mengidentifikasi kondisi overbought/oversold di pasar dan menghindari menghasilkan sinyal yang salah.

Pertama, indikator Stochastic RSI itu sendiri memiliki keandalan dan sensitivitas yang lebih tinggi, dan dapat menilai kondisi overbought/oversold lebih akurat daripada Stochastic Oscillator biasa.

Kedua, indikator MFI menilai kondisi overbought/oversold dari perspektif perubahan volume dan harga, memberikan referensi dari dimensi lain untuk menghindari kesalahan yang disebabkan oleh penilaian dari satu perspektif.

Akhirnya, indikator RSI Stochastic dan MFI saling melengkapi. RSI Stochastic lebih berfokus pada perubahan harga untuk menentukan kondisi pasar, sedangkan MFI lebih fokus pada perubahan volume dan omset. Menggunakan keduanya dalam kombinasi memungkinkan menilai kondisi pasar dari perspektif yang lebih komprehensif dan membuat keputusan perdagangan yang lebih akurat dan dapat diandalkan.

Risiko dari Strategi

Risiko utama dari strategi ini meliputi:

  1. Risiko indikator menghasilkan sinyal yang salah: Meskipun indikator RSI Stochastic dan MFI keduanya memiliki keandalan yang tinggi, mereka masih dapat menghasilkan sinyal beli / jual yang salah di lingkungan pasar tertentu, yang mengakibatkan kerugian perdagangan.

  2. Risiko pengaturan parameter yang tidak benar untuk indikator overbought/oversold. Pengaturan parameter indikator RSI Stochastic dan MFI memiliki pengaruh besar pada sinyal perdagangan. Jika parameter ditetapkan dengan tidak benar, itu akan melemahkan utilitas indikator.

  3. Risiko sinyal keterlambatan dari indikator. Indikator RSI dan MFI stokastis kurang lebih memiliki beberapa keterlambatan, yang mungkin kehilangan waktu pembelian / penjualan terbaik.

  4. Risiko konsolidasi selama periode kosong. Jika pasar mengkonsolidasikan secara lateral selama periode kosong ketika indikator tidak mengeluarkan sinyal, itu akan menyebabkan beberapa biaya peluang.

Solusi untuk risiko yang sesuai meliputi: penyesuaian parameter indikator, pengaturan stop loss, pengurangan ukuran posisi, penggabungan indikator lain, dll.

Arah Optimalisasi Strategi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Tambahkan indikator momentum. Tambahkan kondisi penilaian berdasarkan sinyal indikator momentum di atas sinyal indikator RSI Stochastic dan MFI untuk menghindari perdagangan selama periode konsolidasi. Misalnya, menambahkan kriteria break-out untuk harga tutup / volume.

  2. Tambahkan mekanisme stop loss. Untuk kepemilikan jangka panjang, tambahkan stop loss bergerak. Untuk perdagangan jangka pendek, tetapkan titik stop loss untuk mengontrol kerugian tunggal.

  3. Mengoptimalkan pengaturan parameter. Menyesuaikan parameter dari Stochastic RSI dan MFI seperti panjang, posisi garis overbought / oversold dll, sehingga pengaturan parameter lebih sesuai dengan kondisi pasar.

  4. Mengidentifikasi tren dan konsolidasi pasar, menjalankan tren mengikuti strategi selama tren pasar dan menonaktifkan strategi selama konsolidasi pasar untuk menghindari perdagangan yang tidak perlu.

  5. Mengintegrasikan algoritma pembelajaran mesin untuk mengoptimalkan secara otomatis Menggunakan algoritma pembelajaran penguatan untuk menyesuaikan parameter dan aturan secara dinamis berdasarkan hasil backtest untuk mencapai optimasi otomatis strategi.


/*backtest
start: 2023-01-22 00:00:00
end: 2024-01-28 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © carterac

//@version=5
strategy("MFI and Stoch RSI Bot", overlay=true)

// Stochastic RSI settings
length = input(14, title="Stochastic RSI Length")
smoothK = input(3, title="Stochastic RSI K")
smoothD = input(3, title="Stochastic RSI D")

// Stochastic RSI overbought and oversold levels
stochRSIOverbought = input(70, title="Stochastic RSI Overbought Level")
stochRSIOversold = input(20, title="Stochastic RSI Oversold Level")

// Money Flow Index (MFI) settings
mfiLength = input(14, title="MFI Length")
mfiOverbought = input(70, title="MFI Overbought Level")
mfiOversold = input(20, title="MFI Oversold Level")

// Calculate RSI
rsiValue = ta.rsi(close, 11)

// Calculate Stochastic RSI
rsiHigh = ta.highest(rsiValue, 11)
rsiLow = ta.lowest(rsiValue, 7)
k = ta.sma(100 * (rsiValue - rsiLow) / (rsiHigh - rsiLow), 3)
d = ta.sma(k, 3)

// Calculate MFI
mfiValue = ta.mfi(volume, mfiLength)

// Determine buy and sell signals
buyCondition = ta.crossover(k, stochRSIOversold) or ta.crossover(mfiValue, mfiOversold)
sellCondition = ta.crossunder(k, stochRSIOverbought) or ta.crossunder(mfiValue, mfiOverbought)

// Plotting signals
plotshape(buyCondition, location.belowbar, color=color.green, style=shape.triangleup, title="Buy Signal")
plotshape(sellCondition, location.abovebar, color=color.red, style=shape.triangledown, title="Sell Signal")

strategy.entry("Buy", strategy.long, when = buyCondition)
strategy.entry("Sell", strategy.short, when = sellCondition)


Lebih banyak