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に詳しくないので間違っているかもしれませんが・・・

わかったこと

  1. MT4のモデルティック数と、実際にEAが処理したtick数は大きく異なる(52.5%)
    品質が n/a なのと関係があるのかは特定できず。
  2. MT4のOnTick()は処理中の場合は次のtickを捨てるが、バックテスト中はtickは破棄されない
    ただし、デフォルトで約半分のtickは破棄されているが・・・

以上により、そもそもオリジナルtickデータを保有していないこと、他社tickデータを使用した場合にもtick再現性が著しく低いこと、を考慮するとMT4はtick sensitiveなEAの作成(バックテスト)には向かない。と言えるのではないでしょうか。
実運用ではOKかもしれませんが、バックテストがNGだと色々と余計な工数がかかりそうですね。

というわけで、TradeLinkの口座開設が通ったので、引っ越す間もなくJForexに復帰できそうです(笑


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です