MQL4ソースを簡単にMQL5ソースへ変換するMQL5コンバーターβ版が登場!これでMT4のEAやインジケーターがMT5で使えるようになったら超便利!

fx−on
Sponchia / Pixabay

MQL5コンバーターとは

ゴゴジャンのMQL5コンバーターの説明をする前に一般的なMQL5コンバータの説明をしておきましょう

一般的にMQL5コンバーターとは、主にMetaTrader 4(MT4)で使用されるMQL4言語で書かれた自動売買プログラム(Expert Advisor, EA)やカスタムインジケータを、MetaTrader 5(MT5)で利用できるMQL5言語に変換するツールのことを指します。

MetaTrader 4とMetaTrader 5は、世界中のトレーダーによって広く使われている取引プラットフォームです。MT4はMQL4言語、MT5はMQL5言語をそれぞれサポートしており、MQL5はMQL4よりも高度な性能や機能、拡張性を持っています。しかし、残念なことにこれら2つの言語は完全に互換性があるわけではないため、MQL5コンバーターを利用して変換することが必要なのです。

MQL5コンバーターの主な機能は以下の通りです。

  • 互換性の確保: MQL5コンバーターは、変換されたコードがMT5プラットフォームで適切に動作するように、互換性の問題を解決します。
  • MQL4コードをMQL5コードに変換: MQL5コンバーターを使用することで、MT4で動作するEAやカスタムインジケータのコードを、MT5で動作する形式に変換することができます。

ただし、MQL5コンバーターを利用しても、すべてのEAやインジケータが完全に問題なく変換されるわけではありません。一部の機能やコード構造には手動での修正が必要となる場合があります。したがって、MQL5コンバーターを利用した上で、変換後のコードを確認し、必要に応じて修正や最適化を行うことが重要です。

ゴゴジャンからMQL5コンバーターβ版リリース

先ほどメールをチェックしていたら「MQL5コンバータ β版がリリースされました!」という驚きの内容のメールが来ていました。

MT5(メタトレーダー5)なんてほとんど使っている人がいなさそうなだけにこのようなツールが登場したことにちょっとびっくりしています。

MQL5コンバーター

MQLコンバーターの使い方は簡単

MQL5コンバーターの使い方は非常に簡単です。

MetaEditorを開き、MQL4ソースコードコピーします。

コピーしたソースコードを「MQL4ソースファイル」のテキストボックスにペーストして「コンバート」ボタンをクリックするだけです。

たったこれだけの操作で自動的にMQL5ソースに変換してくれます。

「コンバート」ボタンをクリックしたら、「MQL5」ボタンと「include」ファイルボタンを押してファイルをダウンロードします。

converter.mq5は「Experts」フォルダに、MQL5Converter.zipは解凍後に「include」フォルダにコピーします。MT5を再起動するか、ナビゲータウィンドウ内の「エキスパートアドバイザ(EA)」を右クリックして「更新」をクリックすればコンパイル完了です。

includeフォルダをコピーしないとコンパイル時にエラーが出るので先にコピーしておきましょう。

β版ということなのでまだ不具合もありそうですが、簡単な操作でMT5用のEAやインジケーターが作れる時代もすぐそこまできているのかもしれませんね。

MT4のEAやインジケーターのソースコードを持っている人は試しに変換してみましょう(^^)

日本のMT4を導入しているFX会社でも年内に2社MT5を導入するという噂もあるようなので今後はMT5にも力を入れていきたいですね。


2018年12月6日現在ではまだ国内でメタトレーダー5を採用するという情報が入ってきていませんね。期待していただけに残念・・・


2020年1月25日現在、既に2つの取引会社がMT5に参入しています。

OANDA JAPAN

アヴァトレード・ジャパン

現時点では上記の2社だけですが、メタクォーツ社が積極的にMT5への移行を推進しているので、今後も増えていく可能性が高いのではないかと思います。期待大ですね!

MQL4からMQL5への移植するガイド

mql5.comにはMQL4からMQL5への移植というタイトルでmql4で書かれたプログラムmql5に移植するためのガイドが掲載されています。

これは、MetaTrader 4 (MQL4)用に書かれたインジケータやトレード戦略をMetaTrader 5 (MQL5)に移植するためのガイドです。主な内容は以下の通りです。

  1. MQL4とMQL5では、チャート期間の定数や定数の宣言方法が異なるため、それらを変換する必要がある。
  2. MQL4の前もって定義された変数をMQL5で使うには、対応する関数を使う必要がある。
  3. アカウント情報、配列操作、チェック、クライアント端末、共通関数、変換関数、カスタムインジケータ、日時関数、ファイル操作、グローバル変数、数学関数、オブジェクト操作、文字列操作、テクニカル指標、時系列アクセス、チャート操作など、様々な分野の関数についてMQL4とMQL5の対応関係が説明されている。
  4. トレーディング関数については、MQL5で概念が大きく変わったため、単純な変換では意味がない。
  5. 言語間の変換では機能性と操作性が低下するため、このガイドは類似関数のクイック検索に使うのが良い。

上記を念頭に置いて簡単なガイドとして使用するのが良いと思います。

MQL4からMQL5への移植 – MQL5記事

MQL5コンバーターを使わずにEAつくーるWeb版でMT5EAを作成する

MQL5コンバータを使用するためにはMQL4のソースコードが必要になります。MQL5に変換したいEAのソースコードを持っていればそのまま変換すればいいだけの話です。

しかし、市販のEAやフリーで配布されているEAはソースコードを提供しているケースはそれほど多くはありません。ex4形式のファイルで配布されている場合がほとんどです。

こうなったらMQL5コンバーターなど使わずに一からEAを自作した方が話が早いかもしれません。

幸いなことに2022年3月のアップデートでEAつくーるWeb版がMT5に対応しました。

EAのロジックがわかってさえいればEAつくーるWeb版でEAを作成することは難しい作業ではありません。

テクニカルを使用したEAならたいていのロジックは入力できますし、オプション機能も充実しています。

ちょっと試したいロジックがある時にもEAつくーるなら身構えることなく気軽に作成してバックテストをすることが出来る点も魅力です。

EAつくーるWeb版は、WindowsだけでなくMacでも使えるブラウザで使用することができるEA作成ツールです。 EAつくーるをリニューアルし、MT4はもちろんのこと、MT5も作成できるようになりました。マウス操作だけで専門知識がなくても短時間でEAを作成することができます。

EAつくーるWeb版の使い方や実際に作成する方法などを記事にしてありますのでぜひご覧ください。

MQL4とMQL5の対照表

項目MQL4MQL5備考
プログラム構造単一ファイル複数ファイル可能MQL5ではクラスとライブラリの使用が推奨
関数名OrderSend()OrderSend()とTradeクラスMQL5では取引操作にTradeクラスを使用
チャートオブジェクトObjectCreate()ObjectCreate()MQL5では新しいオブジェクトタイプが追加
時間関数TimeCurrent()TimeCurrent()、TimeTradeServer()MQL5では取引サーバー時間を取得可能
指標バッファSetIndexBuffer()SetIndexBuffer()MQL5では追加パラメータが必要
カスタム指標init()、start()OnInit()、OnCalculate()MQL5では計算ロジックが変更
エキスパートアドバイザーinit()、start()、deinit()OnInit()、OnTick()、OnDeinit()MQL5では新しいイベント処理関数
配列ArrayCopyRates()CopyRates()MQL5では新しいデータ構造とコピー関数
文字列操作StringConcatenate()StringConcatenate()、StringFormat()MQL5では文字列操作が強化
デバッグPrint()Print()、PrintFormat()MQL5ではより高度なデバッグ機能
include文#include#includeMQL5では相対パスと絶対パスが使用可能

注意: これは主要な違いの一部です。実際の変換作業では、さらに詳細な違いや新機能に注意が必要です。

コメント

  1. 匿名 より:

    秘密にしたいソースコードを誰が運営しているかもわからないWebサービスに投げろって?
    無理でしょ。
    根本的に何かを間違ってる。

    ローカル環境で動作するスクリプトなりプログラムなりで配布すべき。

  2. UECHAN より:

    OANDA japan が2020年1月からMT5を導入とプレス発表しました。現時点(2019/12/24)でDEMOはMT5が使えます。
    https://www.oanda.jp/info/647

タイトルとURLをコピーしました