Dukascopyを離れてから、”MT4にするしかないのかな?”と考えたこともありました。
以前Tickstoryについて書きましたが、今では「少しくらい違っていてもいいんじゃない?」って感じで随分おおらかな考え方になりました。
そこでMT4のバックテストにおけるtickについて、少し調べてみました。(作るとしたら、tick sensitive なスキャEAになるので)
測定方法:EAのOnTick()内で、起動毎にファイルに1行出力し、最後に行数を確認する。
データに関しては、Tickstoryで入手したtickを使用する(2日分)
MT4 のレポートタブ | EAが処理したtick数 | tick再現率 | ||
モデルティック数 | モデリング品質 | |||
ビュジアルモード(標準) | 130,807 | n/a | 68,638 | 52.5% |
非ビジュアルモード | 130,807 | n/a | 68,638 | 52.5% |
非ビジュアルモード(遅延)(※1) | 130,807 | n/a | 68,638 | 52.5% |
※1)比較用にOnTick() 内で 100ms の sleep を実行した遅延パターン
測定期間中に実際の tick数は数えていません(ゴメンナサイ)
私自身がMT4に詳しくないので間違っているかもしれませんが・・・
わかったこと
- MT4のモデルティック数と、実際にEAが処理したtick数は大きく異なる(52.5%)
品質が n/a なのと関係があるのかは特定できず。 - MT4のOnTick()は処理中の場合は次のtickを捨てるが、バックテスト中はtickは破棄されない
ただし、デフォルトで約半分のtickは破棄されているが・・・
以上により、そもそもオリジナルtickデータを保有していないこと、他社tickデータを使用した場合にもtick再現性が著しく低いこと、を考慮するとMT4はtick sensitiveなEAの作成(バックテスト)には向かない。と言えるのではないでしょうか。
実運用ではOKかもしれませんが、バックテストがNGだと色々と余計な工数がかかりそうですね。
というわけで、TradeLinkの口座開設が通ったので、引っ越す間もなくJForexに復帰できそうです(笑