FC2ブログ

カルマンフィルタEAでバックテスト

EA作成中
05 /01 2020

カルマンフィルタ

Wikiでは「誤差のある観測値を用いて、ある動的システムの状態を推定あるいは制御するための、無限インパルス応答フィルターの一種」となっています。
はい、イミフですw

話が変わりますが、カーナビってトンネルでも今の位置を表示していますよね。なんで?!
チコチャンじゃなくても気になりませんか?
※トンネルじゃなくても、民生用GPSではそこまで精度は高くないので、基地局の位置情報を使ったりするようです。
あとは走行速度とか、コンパスとか・・・まぁどれも精度は期待できるものではありません。
これらの情報から位置を推定して表示しているようです。

「誤差のある観測値(GPS、基地局、速度、方位など)を用いて、ある動的システム(車)の状態(位置)を推定」しているのですね。
※実際のカーナビ開発をしていないので推測です。
o( ̄ー ̄;)ゞ

不正確な時系列データ(測定値は時々刻々送られてきます)から状態を推定する・・・FXに使えるかもって思いますよねー!
※鋭い方は「誤差のある観測値」(FXは誤差ってもんじゃないだろ?!)ってことに引っかかると思いますがスルーで。

そう思ってたら、MQL5.comに記事があるじゃないですか?!それもEAを作られていて右肩上がりのバックテストが載っています。
ダウンロードしてバックテストしてみるしかないですよね。

※カルマンフィルタのインジケータもMQL5.comからダウンロードできます。(見方がいまいちピンとこないですが・・・)

MT5でバックテスト


カルマンーストラテジー

記事では EURUSD でバックテストをしていたので、昨年の半年間で行ってみました。
(今年の相場では今後あまり参考になりそうもないのでw)

カルマンーバックテスト

MT5ではMT4と違い、スプレッドは指定しません。実際の値=その時々のスプレッドの変化が使われます。また実際の値動きを使用するため、データの品質は100%です。

勝率35%程度で、1割近く負けていますね。
グラフで見るとこうなります。

カルマンーバックテストグラフ

見事な右肩下がり(_ _|||)

記事では・・・2017年8月の一か月だけでバックテストしてますね。
一か月って、意味ないでしょw
上のグラフでも8月は右肩上がりになっている感じです。8月には使える?!

まぁそんなに甘くはなかったです。
ところでMT5には「フォワードテスト」がシミュレート出来るんです。

カルマンーフォワード

バックテストデータを検証できるみたいですね。
実際どういうことをしているのかわかりませんが、バックテスト最適化でのカーブフィッティング(過剰最適化)を検証する機能ということです。
※フォワードテストは指定期間の1/2、1/3、1/4期間が選択できます。上図では右側の1/3期間がフォワードテスト結果です。

このカルマンフィルタEAもパラメータ最適化しましたので、フォワードテストで過剰最適化だということがバレました。
( ̄□ ̄;)

他のフィルタ

他にも「粒子フィルタ」(パーティクルフィルタ)というのがあるのですが、MQL5.comにはインジケータもEAもありませんでした。
C++言語のソースは見つけたのでMQL5に移植すればいいのですが・・・・

敷居も高いし、カルマンフィルタがこれではねぇ
┐( ̄- ̄)┌ 

このカルマンフィルタEAに移動平均や一目均衡表の算出値を「誤差のある観測値」として入れてみる方が有効な気がします。

関連記事

コメント

非公開コメント

パペ太

パペ太は自動人形(EA)を操るという意味で、puppeteer(人形遣い)から付けました。
高収益のEAを目指して日々悩んでいます。