MT5版のEAがようやく完成し、2018/11/1から本番運用開始しました。
最初はMT4と同じようにrawAPIで作成しようと考えていたのですが、標準ライブラリを調べていくうちに「こっち使ってみるか」と思い標準ライブラリで作成しました。
(標準ライブラリを使うと、若干JForexに似た感じの構成で作ることができます)
標準ライブラリで作成する際に困った点がいくつか・・・
- オブジェクト指向で作成されており、ライブラリの中身をよく解析する必要がある
- ドキュメントがMQL5.comにしかない
ブログ等の野良ドキュメントはほとんどありませんでした(日本語)。ただしMQL5ドキュメントは殆ど日本語対応してるので、そうそう困ることはありませんでした。 - 最適化時にOnTesterで独自結果を集計するのに苦労した
MT5はバックテストを複数ノード(時には海の向こう)で実行するので、MT4と考え方が全く異なっておりすごく苦労しました。 - 標準ライブラリの思想と異なることを実装しようとしたら、かなり大変
- 例1:異なる時間足で独立したロジック
- 例2:複数通貨の同時運用
- 例3:オンライン中でのパラメータ更新
例1は諦めて全ロジック並列・同格で動かすことにしました。
例2は無理やり実装しても重くなってtickを取りこぼすと本末転倒なので、素直に別window(スレッド)で動かすことにしました。
例3はdummytopには必須機能でrawAPIならパラメータをそのまま変更するだけなのですが、オブジェクト生成して使いまわしているので、それの解析にすごく時間がかかりました・・・。”元ソースは修正せずにクラス継承だけで実現する”思想だと無理だったので、少しソースをいじって実現しました。
最終的には現時点で満足できるデキになったので、これからは新取引ロジックの実装、資金管理ロジックの改善等、取引の中身に関する改善を行っていく予定です。
PS
(ほぼ)同じロジックで少し前に稼働させてたMT4版がかなりの成果を出しています。
MT5版が楽しみです( ̄ー ̄)ニヤリ
目標勝率60%なのですが、結構大変ですねw