Strategi perdagangan kuantitatif berdasarkan penyaringan Kalman dan regresi rata-rata


Tanggal Pembuatan: 2023-12-29 17:23:14 Akhirnya memodifikasi: 2023-12-29 17:23:14
menyalin: 0 Jumlah klik: 846
1
fokus pada
1621
Pengikut

Strategi perdagangan kuantitatif berdasarkan penyaringan Kalman dan regresi rata-rata

Ringkasan

Strategi ini menggunakan ide-ide dari Gelombang Kalman dan Regression Mean, untuk menangkap fluktuasi jangka pendek yang tidak normal dalam harga saham, dan memungkinkan perdagangan yang diarahkan pada saham. Strategi ini pertama-tama membangun model rasio harga saham terhadap indeks pasar, kemudian menggunakan teknik Gelombang Kalman untuk memprediksi dan memanipulasi rasio. Strategi ini menghasilkan perdagangan ketika rasio menyimpang dari tingkat normal.

Prinsip Strategi

Inti dari strategi ini adalah membangun model rasio harga saham sendiri terhadap harga indeks pasar. Rasio ini dapat mencerminkan tingkat harga saham individu terhadap pasar secara keseluruhan. Ketika rasio tinggi, dianggap bahwa saham tersebut overvalued, menghasilkan sinyal jual; Ketika rasio rendah, dianggap bahwa saham tersebut undervalued, menghasilkan sinyal beli.

Strategi ini menggunakan algoritma Kerman Wave untuk melakukan smoothing filter pada sinyal rasio. Kerman Wave akan membebani nilai observasi rasio yang sebenarnya dengan nilai prediksi, memperbarui prediksi rasio secara real-time, dan menghitung Kerman Wave yang halus.

Selain itu, strategi ini juga mempertimbangkan faktor volume transaksi. Hanya ketika volume transaksi lebih besar, sinyal perdagangan yang sebenarnya dihasilkan, yang dapat mencegah beberapa perdagangan yang salah.

Analisis Keunggulan Strategi

Keuntungan terbesar dari strategi ini adalah penggunaan algoritma Gelombang Karman untuk perbandingan harga yang lebih halus dan lebih efektif. Berbanding dengan model Regression Mean Simple, Gelombang Karman dapat mencerminkan perubahan harga yang lebih baik, terutama ketika terjadi fluktuasi harga yang kuat.

Kedua, penggabungan volume transaksi juga meningkatkan kepraktisan strategi. Filter volume transaksi yang masuk akal membantu menghindari beberapa sinyal yang salah dan mengurangi biaya transaksi yang tidak perlu.

Secara keseluruhan, strategi ini berhasil menggabungkan beberapa teknik seperti Kerman Wave, Regression Mean Value, dan Volume Analysis untuk menghasilkan strategi perdagangan kuantitatif yang cukup kuat.

Analisis Risiko Strategi

Meskipun strategi ini cukup baik secara teori dan teknis, masih ada beberapa risiko potensial yang perlu diperhatikan dalam penerapan praktis.

Pertama adalah risiko model. Beberapa parameter penting dalam model Kerman filter, seperti perbedaan noise proses, perbedaan noise pengamatan, dan lain-lain, perlu diestimasi berdasarkan data historis. Jika perkiraan tidak akurat atau perubahan besar dalam lingkungan pasar, akan menyebabkan bias dalam perkiraan model.

Kedua adalah risiko biaya slip. Perdagangan yang sering menghasilkan lebih banyak biaya slip, yang akan mengurangi keuntungan strategi. Pengoptimalan parameter dan penyaringan volume perdagangan dapat mengurangi transaksi yang tidak perlu hingga batas tertentu.

Akhirnya, ada risiko sistematis pasar tertentu yang mengikuti indeks pasar sebagai acuan. Ketika seluruh pasar mengalami fluktuasi yang sangat besar, rasio harga saham individu terhadap pasar juga akan terjadi. Saat ini strategi akan menghasilkan sinyal yang salah. Kita dapat mempertimbangkan untuk memilih indeks yang lebih stabil sebagai acuan.

Arah optimasi strategi

Strategi ini juga memiliki ruang untuk optimalisasi lebih lanjut:

  1. Menggunakan model pembelajaran mendalam yang lebih kompleks untuk menyesuaikan dan memprediksi rasio harga. Ini dapat meningkatkan akurasi dan robustnya model.

  2. Optimalkan aturan penyaringan volume transaksi, untuk memungkinkan pengaturan nilai ambang volume transaksi yang lebih dinamis dan cerdas. Hal ini dapat mengurangi probabilitas kesalahan transaksi.

  3. Uji berbagai indeks pasar sebagai acuan strategi, pilih indeks yang lebih kecil dan lebih stabil. Ini dapat mengurangi dampak risiko sistematis pasar.

  4. Bergabung dengan analisis fundamental saham, hindari perdagangan saham yang memiliki fundamental yang jelas memburuk. Ini dapat menyaring yang lebih baik kualitasnya.

  5. Menggunakan data intraday frekuensi tinggi untuk strategi pengembalian dan pengoptimalan, yang dapat meningkatkan kinerja strategi secara langsung.

Meringkaskan

Strategi ini berhasil menggunakan model Gelombang Kalman untuk menangkap fluktuasi jangka pendek yang tidak normal dalam harga saham. Pada saat yang sama, pengenalan sinyal volume perdagangan juga meningkatkan kepraktisan strategi. Meskipun masih ada beberapa risiko model dan risiko pasar, ini adalah strategi perdagangan kuantitatif yang sangat menjanjikan.

Kode Sumber Strategi
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
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/
// © xXM3GAXx

//@version=5
strategy("My strategy", overlay=true)

//SPY or QQQ
context = request.security("BTC_USDT:swap", timeframe.period, input(close))
//our stock
particular = input(close)

//ratio
src = ta.roc(particular, 1) / math.abs(ta.roc(context, 1))

//kalman calculation
Sharpness = input.float(1.0)
K = input.float(1.0)


greencolor =  color.lime
redcolor =  color.red

velocity = 0.0
kfilt = 0.0

Distance = src - nz(kfilt[1], src)
Error = nz(kfilt[1], src) + Distance * math.sqrt(Sharpness*K/ 100)
velocity := nz(velocity[1], 0) + Distance*K / 100
kfilt := Error + velocity

//2 std devs up and down
upper = kfilt[1] + 2 * ta.stdev(kfilt, input(20))
lower = kfilt[1] - 2 * ta.stdev(kfilt, input(20))

//plotting for visuals
plot(kfilt, color=velocity > 0 ? greencolor : redcolor, linewidth = 2)
plot(upper)
plot(lower)
//plot(ta.ema(ta.roc(particular, 1)/ta.roc(context, 1), 5), color = #00ffff, linewidth=2)

//volume data
vol = volume
volema = ta.ema(volume, 10)

//buy when ratio too low
longCondition = kfilt<=lower and vol>=volema
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

//sell when ratio too high
shortCondition = kfilt>=upper and vol>=volema
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)