MT4のFXTファイルが巨大になる理由が判明!
MT4を利用してトレードのバックテストを始めて一週間程度ですが、すでに大きな問題にぶつかりました。
10年以上の1分足データを利用してテストしていますが、バックテストを実施すると tester > historyフォルダに出力される fxtという拡張のファイルが尋常ではない大きさになってきました。
そのサイズなんと一通貨ペアで260Gバイトにもなりました。
そのせいでディスク容量が足りなくなり、外付けドライブに出力先を切り替えるような対応をしていました。それが↓の記事です。
ディスク容量だけの問題ではなく、処理時間も非常に長時間化する問題となっていました。
今回のその理由、解決策が判明したので共有します。
FXTファイルの巨大化の理由と解決方法
まず結論からいうと、今回利用したヒストリカルデータの加工の仕方が間違っていたことが理由です。
ヒストリカルデータは、クリック証券でダウンロードしたCSVデータを加工して利用していますが、volume情報を適当な値を設定していたことが原因になりました。
以下のデータ右端最後のものがvolumeになります。
トレードルールでは利用しないので、テキトーに一律 1234と設定していました。
ここの値が大きいとバックテストで生成されるFXTファイルが巨大になります。
解決方法
解決策は、このvolumeの値を1に設定することで対応できました。
この結果、FXTファイルのサイズは劇的に小さくなりました。
それでも7GB程度となりましたが、260GBと比べると 1/37 程度です。
必要な容量が劇的に下がったので、出力ファイルのドライブも変更する必要がなくなりました。
さらに、処理時間も以前に比べて20倍以上は改善しました。
なお、volumeを一律1に変更してインポートにより取り込んだ画面が以下のとおりです。
ご覧のように出来高が1以外の数値が入っていますが、これは理由が不明です。
この出来高を1にできれば、出力ファイルサイズおよび処理時間をもっと短縮化できるような気がします。
FXTファイルの正体について
このFXTファイルの正体は、ティックデータと言われるものだと思います。
本番環境ではリアルタイムでレートが変化しますが、その秒単位、またはミリ秒単位のレートの変化を捉えた価格データおよびそれに付随するスプレッドなどを含んだデータです。
実際にシステムトレードを行う場合にはFX会社のシステムと接続し、ティックデータが流れてきます。
それに相当するものが疑似的に作成され、保存されたものがFXTデータの正体。
インポートするヒストリカルデータのvolumeに大きな数値が入っているとティックデータがそのvolume分増幅されて生成されることにより、今回の問題が発生したと理解すると事象の説明ができます。
今回の原因が判明したおかげで、今後のMT4でのバックテストがより快適に実施できそうです。
最後に
この記事はお気に入りいただけましたでしょうか?
内容お役にたちましたらうれしく思います。
また、サポートなど応援いただけましたら幸いです。