Strategi penjejakan arah aliran berdasarkan penapis Kalman


Tarikh penciptaan: 2024-01-25 14:12:26 Akhirnya diubah suai: 2024-01-25 14:12:26
Salin: 0 Bilangan klik: 1091
1
fokus pada
1617
Pengikut

Strategi penjejakan arah aliran berdasarkan penapis Kalman

Gambaran keseluruhan

Inti strategi ini adalah menggunakan teknik Kalman Wave untuk memperhalusi garis purata harga, menghasilkan isyarat dagangan apabila sudut purata melebihi paras tertentu dalam tempoh yang ditetapkan. Strategi ini berusaha untuk menjejaki trend garis tengah dan panjang, mengurangkan kesan kebisingan melalui teknik Kalman Wave, untuk mendapatkan isyarat trend yang lebih jelas dan boleh dipercayai.

Prinsip Strategi

Logik utama strategi ini terdiri daripada beberapa langkah:

  1. Hitung purata bergerak mudah (SMA) harga 1 minit sebagai purata purata;

  2. Karman Filter pada garis asal dan keluarkan garis rata selepas dihaluskan;

  3. Mengira sudut pemotong garisan rata selepas dihaluskan;

  4. Mendefinisikan kitaran parameter, jumlah sudut garisan dalam kitaran statistik;

  5. Isyarat beli dihasilkan apabila jumlah sudut garisan dalam kitaran lebih besar daripada 360 darjah; isyarat jual dihasilkan apabila kurang daripada 360 darjah.

Dengan reka bentuk seperti itu, apabila harga muncul dalam trend ke atas atau ke bawah, sudut garis lurus akan terakumulasi secara beransur-ansur, dan apabila terakumulasi hingga tahap tertentu menghasilkan isyarat perdagangan, dan dengan itu dapat mengesan trend garis tengah yang panjang dengan berkesan.

Di antaranya, gelombang Kalman adalah kunci kepada strategi ini. Gelombang Kalman adalah algoritma berulang yang meramalkan keadaan semasa, meramalkan bunyi proses dan mengukur nilai bunyi, dan menggunakan nilai bunyi ini untuk membetulkan ramalan keadaan sebelumnya, untuk mendapatkan anggaran keadaan yang lebih tepat dan boleh dipercayai.

Dalam strategi ini, harga SMA boleh dilihat sebagai ukuran keadaan, dipengaruhi oleh bunyi pasaran, penapis Kalman secara berulang menganggarkan trend sebenar harga, mengurangkan kesan bunyi secara besar-besaran, menjadikan operasi garisan rata-rata seterusnya lebih dipercayai, dan menghasilkan isyarat perdagangan yang lebih stabil dan tepat.

Kelebihan Strategik

Kelebihan terbesar strategi ini berbanding dengan strategi penunjuk seperti purata bergerak mudah ialah penggunaan penapis Kalman yang mengurangkan kesan bunyi, menjadikan isyarat perdagangan lebih jelas dan lebih dipercayai. Kelebihan khusus terutama ditunjukkan dalam beberapa aspek berikut:

  1. Mengurangkan isyarat palsu. Dengan menganggarkan dan menghapuskan kebisingan secara beradaptasi, penapisan Kalman secara berkesan menapis banyak isyarat palsu yang disebabkan oleh pergerakan rawak, menjadikan isyarat perdagangan yang dihasilkan lebih dipercayai.

  2. Kesan pengesanan yang lebih baik. Bentuk garis rata yang lebih lancar selepas meluruskan lebih baik mencerminkan trend garis tengah dan panjang harga, sehingga mencapai kesan pengesanan trend yang lebih baik.

  3. Tetapan parameter yang boleh disesuaikan fleksibel. Parameter yang boleh disesuaikan termasuk panjang garisan purata, parameter Gelombang Kalman dan kitaran statistik, dapat menyesuaikan diri dengan keadaan pasaran yang berbeza.

  4. Risiko boleh dikawal. Strategi ini lebih memberi tumpuan kepada trend garis tengah dan panjang daripada turun naik jangka pendek, mewujudkan keseimbangan risiko-balas yang lebih baik.

  5. Implementasi mudah dan mudah diperluaskan. Algoritma teras strategi ini lebih ringkas, mudah dilaksanakan dan diuji, dan juga menyediakan ruang untuk diperluaskan, seperti parameter pengoptimuman automatik algoritma pembelajaran mesin yang boleh diperkenalkan.

Risiko Strategik

Strategi ini juga mempunyai risiko utama:

  1. Risiko trend reversal. Strategi ini memberi tumpuan kepada trend tracking, yang menyebabkan kerugian besar sekiranya berlaku perubahan trend yang teruk.

  2. Risiko pengoptimuman parameter. Pengaturan parameter yang tidak betul boleh menyebabkan perdagangan yang kerap atau isyarat yang terlewat, yang memerlukan pengoptimuman ujian yang lengkap. Pengoptimuman automatik boleh digabungkan dengan algoritma pembelajaran mesin.

  3. Risiko overoptimisasi. Overoptimisasi pada data sejarah juga boleh menyebabkan parameter gagal, yang perlu dikawal untuk keefektifan di luar sampel.

  4. Kesukaran dalam pelaksanaan meningkatkan risiko. Pengenalan algoritma gelombang Kalman dan sudut sudut akan meningkatkan kerumitan kod dan perlu memastikan pelaksanaan yang betul.

Arah pengoptimuman strategi

Mengambil kira faktor risiko yang disebutkan di atas, strategi ini boleh dioptimumkan untuk:

  1. Memperkenalkan penutupan kerugian dan pengurusan kedudukan. Penutupan kerugian yang sesuai dapat mengawal risiko kerugian tunggal dengan berkesan; pengurusan kedudukan dinamik juga dapat menyesuaikan risiko perlindungan kedudukan mengikut keadaan pasaran.

  2. Pengoptimuman parameter automatik. Menggunakan algoritma pengoptimuman pembelajaran mesin, pengoptimuman parameter automatik dapat dicapai dan risiko pengoptimuman berlebihan dapat dielakkan.

  3. Mengintegrasikan Indikator Lain. Anda boleh mengintegrasikan beberapa indikator lain dalam strategi untuk membentuk gabungan indikator untuk meningkatkan kestabilan strategi.

  4. Peningkatan penilaian kecekapan: memperkenalkan lebih banyak penunjuk penyesuaian risiko, menilai kecekapan dan kestabilan strategi, dan menghasilkan kesimpulan yang lebih menyeluruh dan tepat.

  5. Memperluaskan pelbagai jenis. Jika hasilnya baik, pertimbangkan untuk memperluaskan ke lebih banyak jenis, mengumpul sampel yang lebih kaya dalam jangka masa sederhana dan jangka panjang, dan mengoptimumkan parameter antara jenis.

ringkaskan

Strategi ini secara keseluruhan adalah strategi trend-tracking yang lebih mudah dan praktikal. Berbanding dengan strategi purata bergerak tradisional, pengenalan algoritma gelombang Kalman adalah inovasi terbesarnya, dan juga membolehkan strategi menghasilkan isyarat perdagangan yang lebih jelas dan boleh dipercayai. Dengan pengoptimuman seterusnya, strategi ini dijangka mencapai kesan yang lebih baik.

Kod sumber strategi
/*backtest
start: 2024-01-17 00:00:00
end: 2024-01-24 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@library=math
strategy("策略360°(测试)", overlay=true)

// 定义1分钟均线
ma1 = request.security(syminfo.tickerid, "1", ta.sma(close, 1)) // 在这里使用了 math.sma() 函数
//plot(ma1, color=color.yellow, title="原始均线")

// 定义卡尔曼滤波函数,参考了[1](https://www.tradingview.com/pine-script-docs/en/v5/language/Methods.html)和[2](https://www.tradingview.com/pine-script-docs/en/v5/language/Operators.html)的代码
kalman(x, g) => 
    kf = 0.0 
    dk = x - nz(kf[1], x) // 在这里使用了 nz() 函数
    smooth = nz(kf[1], x) + dk * math.sqrt(g * 2) // 在这里使用了 math.sqrt() 函数
    velo = 0.0 
    velo := nz(velo[1], 0) + g * dk // 在这里使用了 nz() 函数
    kf := smooth + velo 
    kf 

// 定义卡尔曼滤波后的均线
ma2 = kalman(ma1, 0.01) 
plot(ma2, color=color.blue, title="卡尔曼滤波后的均线")

// 定义切线角
angle = math.todegrees(math.atan(ma2 - ma2[1])) // 在这里使用了 math.degrees() 和 math.atan() 函数

// 定义累加的切线角
cum_angle = 0.0
cum_angle := nz(cum_angle[1], 0) + angle // 在这里使用了 nz() 函数

// 定义30分钟周期
period = 30 // 您可以根据您的需要修改这个参数

// 定义周期内的切线角总和
sum_angle = 0.0
sum_angle := math.sum(angle, period) // 在这里使用了 math.sum() 函数,把周期内的切线角总和改成简单地把 5 个切线角相加

// 定义买入和卖出条件
buy = sum_angle > 360// 在这里使用了 math.radians() 函数
sell = sum_angle < -360

// 执行买入和卖出操作
strategy.entry("Long", strategy.long, when=buy)
strategy.close("Short", when=buy)
strategy.entry("Short", strategy.short, when=sell)
strategy.close("Long", when=sell)

// 绘制曲线图
plot(sum_angle, color=color.green, title="周期内的切线角总和")
plot(angle, color=color.red, title="切线角") // 这是我为您添加的代码,用于显示实时计算的切线角