多通貨、多指標のテストをMT4で実施しようとすると、
ほぼ不可能(ファイルやMarketInfo関数、DLLなどを駆使すれば可能だが・・・)だ。
実際に作ってみたのだけど、バックテスト時間が膨大に掛かり現実的ではないと判断した。
そもそも多通貨指標(Ku-Powerなど)をバックテストで利用すると、
バックテスト終了時のチャートオープン時に大量のKu-Chartがサブウィンドウに展開される。
iCustomの呼び出し毎にサブウィンドウに追加されているとしたら、各バーごとの計算量は恐ろしいことになっているはずで、その可能性が高いと思われた。
悪あがきは色々したのだが、どうやってもバックテスト時間が長すぎるため、MT4の継続利用は断念した。
そこで円滑なトレードシステム開発のため、経験の長いJavaでバックテスト機能を開発することにした。
他市場の多指標も使えるし、多通貨の指標も使える。
インディケーターの実装も自分で行う必要があるから、勉強にもなるし、いいことづくめだ。
そもそもMQLでは難しかった単体テストの領域も
Javaであれば、Junitにより容易だ。
いったん、最低レベルの目的地点まで到達できた。
1テスト20分以上かかっていたテストが、15秒程度で完了するようになった。
作ってみて思ったのは、スクラッチであるメリットについて。
スクラッチなのだから当たり前だが、バックテスト結果の統計情報として、
様々な情報を計算して出せるため、多角的な視点から諸々の情報を俯瞰できる。
資産残高のHWMの未更新期間、シャープレシオ、平均保有期間など。
[1回]
PR