FXDD提供の1分足データでバックテストが途中で止まる。

昨日の雇用統計で風邪がさらに悪化しました...orz
咳が止まらず、このままでは死にそうな勢いです。^^;


それはさておき、FXDD提供の1分足データで、2005年から現在までのバックテストを行うと、いくつかの通貨ペアで2009年秋頃にテストが止まってしまう現象が知られています。テスト時の資金が尽きると止まるのは当然ですが、資金が十分に残っていても止まってしまいます


その場合、テスト後にファイル -> オフラインチャートで、チャートを選ぶ画面を開いて、テスト時に生成されたTickデータを見ると…

↑送信者(From)は正しい日付なのに、To の日付がおかしくなっています。


この現象がどのタイミングで起きるか?は、実は、tester\history 以下に出来上がる Tickデータのファイルサイズが 2GB を超えると発生します。

KB(キロバイト)表記では、 2*1024*1024 = 2,097,152 KB を超えるとダメです。上図では、AUDCADとEURUSDが止まり、USDCAD はギリギリ止まらずに行けてました。この問題を 簡単に回避する方法としては、テスト期間を調節して 2GB の壁を越えないようにする方法があります。( 以前説明した、MT4 自体のメモリ利用可能量を 3GB以上にする手法では、この問題を回避できません..)



ただ、それ以前に FXDD 提供のデータには怪しい点があり、注意が必要です。例えば、AUDCAD の2009.10.15 14:16 の出来高(TickVolume)を見ると 346 が記録されています。

↑1分間に346回も Tick が更新された???
昨日の雇用統計のEURUSD でも1分当たり 78回(FXDD)〜156回(FxPro)が最大なので、どうしても疑いを持ちたくなります..。(これはもちろん、業者依存の話で、より上流のプラットフォームなら在り得る数値かも知れません。なので、絶対おかしい..とは断定できません。ただ、他の時期と明らかに桁数が違うのです ^^;)


FXDD提供データの信憑性の話しは、j-tradeさんのブログや他にも在ったと思う...(過去に書いていらっしゃった人はコメントで教えて下さればリンクします..) のですが、とにかく、ある時期の出来高は非常に怪しいのです..。



1分間にそんなに出来高があると、バックテストで生成するTickの動きは、下図の赤線で示した範囲になります。

↑たった1pipだけの上下動のくり返しが頻繁に起きているのが分かります...。
そして、ほとんどのEAにとっては、この動きは無駄になります。( 例えば、1分足での価格の確定を待つEAや、その足での高値安値を見るEAでは、その途中で何回上下動があっても約定には関係ないのです..)



…ということは、この無駄な Tick を減らせば バックテストも最適化も時間短縮できる(?!)と、誰しも思うところですが、そのやり方は、次の機会に説明したいと思います。