Strategi Dagangan Kuantitatif Berdasarkan Stock RSI dan MFI

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

img

Ringkasan

Strategi ini menggabungkan indikator RSI Stochastic dan MFI untuk mengenal pasti keadaan overbought dan oversold dan membuat keputusan membeli dan menjual.

Prinsip Strategi

Indikator RSI Stochastic menggabungkan kelebihan Osilator Stochastic (KDJ) dan Indeks Kekuatan Relatif (RSI). Ia mula-mula mengira nilai RSI dalam jangka masa melalui RSI, dan kemudian menggunakan kaedah Stochastic untuk mengira nilai K dan D Stochastics dari array RSI ini untuk menentukan sama ada RSI terlalu beli atau terlalu dijual.

Indeks Aliran Wang (MFI) menilai hubungan bekalan-permintaan pasaran dan keadaan terlalu banyak beli / terlalu banyak jual berdasarkan perubahan dalam jumlah dan harga. Indikator ini percaya bahawa harga yang meningkat mencerminkan kekuatan bullish yang lebih kuat daripada kekuatan bearish. Apabila turun naik meningkat, kekuatan bullish lebih kuat daripada kekuatan bearish, jadi peningkatan perolehan mengisytiharkan kenaikan harga.

Strategi ini menetapkan tahap overbought dan oversold untuk Stochastic RSI dan MFI. Apabila garisan K penunjuk Stochastic RSI melintasi garisan oversold ke atas atau penunjuk MFI melintasi garisan oversold ke atas, isyarat beli dihasilkan. Apabila garisan K penunjuk Stochastic RSI melintasi garisan overbought ke bawah atau penunjuk MFI melintasi garisan overbought ke bawah, isyarat jual dihasilkan.

Kelebihan Strategi

Strategi menggabungkan indikator RSI Stochastic dan MFI ini dapat mengenal pasti keadaan overbought / oversold di pasaran dengan lebih dipercayai dan mengelakkan menghasilkan isyarat yang salah.

Pertama, penunjuk RSI Stochastic itu sendiri mempunyai kebolehpercayaan dan kepekaan yang lebih tinggi, dan dapat menilai keadaan overbought / oversold dengan lebih tepat daripada Osilator Stochastic biasa.

Kedua, penunjuk MFI menilai keadaan overbought/oversold dari perspektif perubahan dalam jumlah dan harga, menyediakan rujukan dari dimensi lain untuk mengelakkan kesilapan yang disebabkan oleh penilaian dari satu perspektif.

Akhirnya, Stochastic RSI dan penunjuk MFI saling melengkapi. Stochastic RSI lebih memberi tumpuan kepada perubahan harga untuk menentukan keadaan pasaran, sementara MFI lebih memberi tumpuan kepada perubahan dalam jumlah dan perolehan. Menggunakan kedua-duanya dalam kombinasi membolehkan menilai keadaan pasaran dari perspektif yang lebih komprehensif dan membuat keputusan perdagangan yang lebih tepat dan boleh dipercayai.

Risiko Strategi

Risiko utama strategi ini termasuk:

  1. Risiko penunjuk menghasilkan isyarat yang salah. Walaupun penunjuk RSI Stochastic dan MFI mempunyai kebolehpercayaan yang tinggi, mereka masih boleh menghasilkan isyarat beli / jual yang salah dalam persekitaran pasaran tertentu, yang mengakibatkan kerugian perdagangan.

  2. Risiko tetapan parameter yang tidak betul untuk penunjuk overbought / oversold. Tetapan parameter penunjuk RSI Stochastic dan MFI mempunyai pengaruh yang besar terhadap isyarat perdagangan. Jika parameter ditetapkan dengan tidak betul, ia akan melemahkan utiliti penunjuk.

  3. Risiko isyarat ketinggalan dari penunjuk. Indikator RSI Stochastic dan MFI kurang lebih mempunyai sedikit ketinggalan, yang mungkin terlepas masa beli / jual yang terbaik.

  4. Risiko penyatuan semasa tempoh kosong: Jika pasaran menyatu secara sampingan semasa tempoh kosong apabila penunjuk tidak mengeluarkan sebarang isyarat, ia akan membawa kepada beberapa kos peluang.

Penyelesaian kepada risiko yang sepadan termasuk: menyesuaikan parameter penunjuk, menetapkan stop loss, mengurangkan saiz kedudukan, menggabungkan penunjuk lain, dll.

Arah Pengoptimuman Strategi

Strategi ini boleh dioptimumkan dalam aspek berikut:

  1. Memasukkan penunjuk momentum. Tambah syarat penghakiman berdasarkan isyarat penunjuk momentum di atas isyarat RSI Stochastic dan penunjuk MFI untuk mengelakkan perdagangan semasa tempoh penyatuan. Sebagai contoh, menambah kriteria pecah untuk harga / jumlah penutupan.

  2. Tambah mekanisme stop loss. Untuk pegangan jangka panjang, tambah stop loss bergerak. Untuk perdagangan jangka pendek, tetapkan titik stop loss untuk mengawal kerugian tunggal.

  3. Mengoptimumkan tetapan parameter. Sesuaikan parameter Stochastic RSI dan MFI seperti panjang, kedudukan baris overbought / oversold dll, supaya tetapan parameter lebih sesuai dengan keadaan pasaran.

  4. Sesuaikan strategi secara dinamik mengikut keadaan pasaran. Mengenal pasti pasaran trend dan konsolidasi, jalankan strategi trend-mengikuti semasa pasaran trend dan melumpuhkan strategi semasa pasaran konsolidasi untuk mengelakkan perdagangan yang tidak perlu.

  5. Menggabungkan algoritma pembelajaran mesin untuk mengoptimumkan secara automatik. Menggunakan algoritma pembelajaran penguat untuk menyesuaikan parameter dan peraturan secara dinamik berdasarkan hasil backtest untuk mencapai pengoptimuman automatik 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 lanjut