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)なんてほとんど使っている人がいなさそうなだけにこのようなツールが登場したことにちょっとびっくりしています。
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に参入しています。
現時点では上記の2社だけですが、メタクォーツ社が積極的にMT5への移行を推進しているので、今後も増えていく可能性が高いのではないかと思います。期待大ですね!
MQL4からMQL5への移植するガイド
mql5.comにはMQL4からMQL5への移植というタイトルでmql4で書かれたプログラムmql5に移植するためのガイドが掲載されています。
これは、MetaTrader 4 (MQL4)用に書かれたインジケータやトレード戦略をMetaTrader 5 (MQL5)に移植するためのガイドです。主な内容は以下の通りです。
- MQL4とMQL5では、チャート期間の定数や定数の宣言方法が異なるため、それらを変換する必要がある。
- MQL4の前もって定義された変数をMQL5で使うには、対応する関数を使う必要がある。
- アカウント情報、配列操作、チェック、クライアント端末、共通関数、変換関数、カスタムインジケータ、日時関数、ファイル操作、グローバル変数、数学関数、オブジェクト操作、文字列操作、テクニカル指標、時系列アクセス、チャート操作など、様々な分野の関数について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の対照表
項目 | MQL4 | MQL5 | 備考 |
---|---|---|---|
プログラム構造 | 単一ファイル | 複数ファイル可能 | 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 | #include | MQL5では相対パスと絶対パスが使用可能 |
注意: これは主要な違いの一部です。実際の変換作業では、さらに詳細な違いや新機能に注意が必要です。
コメント
秘密にしたいソースコードを誰が運営しているかもわからないWebサービスに投げろって?
無理でしょ。
根本的に何かを間違ってる。
ローカル環境で動作するスクリプトなりプログラムなりで配布すべき。
OANDA japan が2020年1月からMT5を導入とプレス発表しました。現時点(2019/12/24)でDEMOはMT5が使えます。
https://www.oanda.jp/info/647