2017年8月20日日曜日

OnTick()の怪

ブログの更新が全くできていません。
EAの開発も・・・
メッセージの返信できていませんでしたごめんなさい。

さて、いまEAの構想が2個ほどあります。
人生一度キリ型EA AMSER2(仮称)と死ぬまでこつこつMOPIFD(仮称)です。

いろいろと試験をしている中での発見です。
バックテストとフォワードテストはなぜずれるか、フォワードテストでも環境によってなぜ違いが出るかです。

おおきな原因の一つに気が付きました。
昔はバックテストは人工ティックだから現実と違うのが原因と考えていましたが、
フォワードテストとバックテストのティック回数はかなり似ています。
もちろん、ティックすべての相関性までは見ていませんが1分足の中で始値、高値、安値、終値のなかでの動作ですので回数のインパクトはあります。

OnTick()はティックが動くたびに動作します。
しかし、OnTick()が動いている間に次のティック動作があった時に重複動作しません。

つまり、OnTick()の内部処理を高速化しないと次々とティックを失うという事です。
PC,VPSのスペックが低い場合、通信のに時間がかかる場合も同様にティックが失われます。

バックテストは100%ティックを失いません。

ここが一つ大きな差の原因なのですね。


2 件のコメント:

  1. こんにちは。
    ブログ興味深く読ませていただいております。
    MT4のティックに関してはカウントツールを使って調べるとブローカーごとの差がかなりありますね。
    これが同じEAを走らせていても結果が異なる原因の一つのようです。
    バックテストに関しても一般的には1分足から作成した疑似ティックになるのでティック単位で動く
    EAだとリアルと結果が全く異なることになります。

    バックテストに関しては有料ツールになりますが、TickDataSuiteというものを私は使っています。
    https://eareview.net/
    従来は再現できなかったスリッページやリアルタイムスプレッドの変化も取り入れた形でのバックテストが
    可能でティック単位で動作を制御しているEAに関しても正確なテストが可能です。
    2週間の試用が可能なので良かったら使ってみて下さい。

    返信削除
    返信
    1. こんにちは
      ティックについては同じMT4で二個チャートをだして両方でカウントしても
      違う結果が出ることがあります(汗)

      なかなか難しいですね。

      TickDataSuite 面白そうですね。
      お金があったらスリッページたんきゅうしてみたいですねw

      削除