MT5 への移行はすべきか?

背景


MT4でEA開発をするようになってから早数年が経ちましたが、
今思えば、常に何かしらの環境面の不満がありました。

その不満を解消するための整備作業に時間を割いては
ロジックを書くことに集中できていないなぁ・・・
と思いつつも環境整備にも時間を割いていました。

  • ヒストリカルデータの品質が悪い
    TickStory購入してデータ入手すればいいや
  • フォワードテストが標準でできない
    →自作スクリプトでなんとかしよう。
  • 本家のエディタだとソースコード書きづらい
    →GitHubに IntelliJのMQL用プラグイン出てる!
    検証環境への自動デプロイもいけそう!
  • バックテストにかかる時間が長い
    → terminalをcpuコア分だけ並列起動して、結果を集約するためのデータベース作る!
  • データベース建てたのはいいけど、全体像が把握しづらい
    Tableau でレポート作ってOptimize結果を全体俯瞰する!!
  • どうせならTableau上でみたOptimize結果からバックテスト起動できないか?
    でもレポート上のパラメータ渡せないし・・・
    UiPath 経由でTableauレポート上の値を拾って URLアクションでスクリプト起動!!!
    1クリックで指定パラメータのバックテストが実行できるぜ!!!

みたいな、よく分からない方向へ迷走し、その対応に満足感を感じては
売買ロジックを書いていないことに後から気づく始末です。。

MT5移行に躊躇する理由


私にとっては

  • 日本の証券会社ではMT4しか選択肢がない
  • MT4とMT5ではプログラム言語の互換性がなく、再作成が必要になる

の2点です。

 

でも、MT5には魅力的な機能もある


バックテストが超速い(マルチコア、クラウドネットワークが利用できる)

→個人的には、これが非常に大きな魅力です。
チューニングしても実行速度が遅めのEAだと開発ライフサイクルが停滞してしまう。(OODAループが回らない)
すぐ検証して、問題箇所を修正したり、次の新しいアイデアの実装に入りたい。

MT4だとシングルコアしか使用できず、仮に複数terminal並列実行したとしても、
あくまで時間足や通貨ペアを分けるイメージになるので、特定バックテストの終了までのリードタイムは縮まりません。

 

移行上の課題は?


MT5側のシグナルをMT4側で受ける方法もある

ファイルベースでのシグナルの受渡しなど、多少泥臭い方法でもよければ
対応手段がありそうです。近い内に検証する予定です。

MT4→MT5移行用のライブラリや手順に関する情報が結構揃っていた

MQL5.com には関数の新旧対応表があり、大枠はコピペでも移行ができそう。
試しに1本移行したところ、細部調整が必要だったものの想定したほど時間はかからなかったので
意外といけそうな感じです。

 

結論


色々悩んだ結果、「そろそろMT5やってみようかな?」と思えるようになったので、
MT4 / MT5 関連の情報のまとめをしながら不定期にブログを更新していきたいと思います。

スポンサーリンク
おすすめの記事