MT5で色々と試してきたのですが、最終的に断念してメインをJForexに戻すことにしました(;^ω^)
一番の原因は、「MT5の標準ライブラリを使って構築してきたのだが、やりたいことが標準ライブラリだと困難」だったことです。
やりたいことというのは、”オンライン中にバンバンパラメータを変更する”ことですが、標準ライブラリではそれが困難でした。
対策として考えられるのは以下の通り。
- 標準ライブラリに手を入れて実現可能にする
- MT5でゼロから再構築する
- JForexでゼロから再構築する
1.の標準ライブラリに手を入れる方針でずっと頑張ってきたのですが、クラス継承だけだとどうにもならず、元クラスの修正量がかなり多くなるため、今後の標準ライブラリのアップデート(もしあればですが)も考慮して断念しました。
(完全な独自クラスとしてフォーク(コピー)することも考えましたが、そこまで標準ライブラリにこだわらなくてもいいとの考えと、想定外の動きをした時にいちいち調べるのが苦痛になってきたためです)
2.はMT4と同じ工数を考えれば十分ありなのですが、今回開発の過程でMT5のバックテストに不都合な点がいくつかあったため、採用を見送りました。
3.はMT5の良いところをいくつか捨てることになりますが、それ以外の点では特に問題は発生しないため、結局3案に決定しました。
★MT5バックテストの不都合な点
- 前日分のティックデータが準備できるのが遅い
日替わり+30分だとまだデータができていませんでした。また特にエラーとなるわけでもないので、最初にそれに気づくまでかなり苦労しました・・・ - EAが重いと結果が変わる
MT5の特徴として”処理が重いとティックを飛ばす”という機能があります。
実運用時にはあまり気にならないとは思うのですが、バックテストでもティック飛ばしが発生しているようで、エントリに関係ない部分の修正でもバックテストの結果が異なることが度々発生して原因究明までにさんざん苦労しました_| ̄|○
(ログ上だと8秒分くらいずれているので、かなりの差でした)
※)BT毎に結果が変わるという不安定さではなく、コンパイルによって結果が変わるという意味です。
★MT5の良いところ
- myfxbookやMQL.comのサービスによる取引履歴の解析は、非常に役に立つ有用なものだと思います。
このサービスがJForexにはないのが非常に残念です。 - EAの最適化機能が優れている
BT自体はJForexと変わりないのですが、最適化のレポート機能に関してはMT5が上だと思います。
(JForexに戻った際には、TesterClientを1から自作することになるので大変です・・・)
一応念のためDukascopy Japanのサポートに「JForexが終了する予定はない」との確認はしました。
(どれだけ効力があるか疑問ですがw)
もともとの希望だった海外口座は、JForexでのストラテジーが完成したらブリッジ作ろうと考えています。(MT5版EAもまだ完成までには至っていません)
もしJForexが廃止になったら、その時に考えることにしましたw