MetaQuotes Language(MQL)とは、MetaTraderのEA(Expert Advisor)を作成できるプログラミング言語です。この記事では、MT4のMQL4を使って自動売買する取引ロボットEAを自作する方法を紹介しています。
MQL4 IDE
MetaTrader(MT4)には、アルゴリズムトレードのプログラムの実行・開発環境であるMQL4 IDEが含まれています。IDEとは、統合開発環境のことです。
MQL4 IDEには、取引アプリケーションの作成や実行、デバッグ、テストに必要なコンポーネントを備えています。MQL4 IDEは、次のコンポーネントから構成されています。
- MetaQuotes Language 4 (MQL4)
- MetaEditor
- MetaTester
MQL4
MQL4とは「MetaQuotes Language 4」の略称で、独自の取引ロボット(EA)やテクニカルインジケータ、スクリプト、関数ライブラリを作成することができるオブジェクト指向プログラミング言語です。
MQL4言語は、いくつかの機能を除いてプログラミング言語C++と非常によく似ています。C++にある次の機能は、MQL4で使えません。
- アドレス演算子
- goto文
- 無名の列挙型
- 多重継承
C++は、C言語を基としてオブジェクト指向プログラミングができるように拡張されたプログラミング言語です。残念ながら、C++はプログラミング言語の中でも難解な部類に入ります。
私は以前プログラマをしていて、業務で実際にC++を使って開発したこともありますが、プロのプログラマでもC++を理解している人は非常に少ないです。しかし、独自の取引ロボットやテクニカルインジケータを自作できるのは魅力で、興味がある方は学習してみる価値があります。
MQLでは次のプログラムを作成・利用することができます。
モジュール | 格納フォルダ |
---|---|
エキスパートアドバイザ(EA) | MQL4/Experts |
カスタムインジケータ | MQL4/Indicators |
スクリプト | MQL4/Scripts |
ライブラリ | MQL4/Libraries |
インクルードファイル | MQL4/Include |
エキスパートアドバイザ(EA)
エキスパートアドバイザ(EA)とは、特定のチャートに関連付けられた機械的取引システムです。EAは処理可能なイベント(契機)が発生したときに実行を開始します。EAは自動的に取引注文を出すことができます。
カスタムインジケータ
インジケータとは、チャートを分析して指標を表示する機能です。
あらかじめMT4には各種インジケータを提供していますが、MQLを使って独自のインジケータを作ることができます。自作したインジケータのことをカスタムインジケータといいます。
スクリプト
スクリプトとは、MT4のいくつかのアクションを一度に実行するためのプログラムです。エキスパートアドバイザとは異なり、スクリプトはstartイベントを除いてアクションを処理しません。
ライブラリ
ライブラリとは、頻繁に使用されるカスタムプログラムを配布して再利用できるようにしたプログラム部品です。ライブラリは単独では使用できませんが、EAなどから利用することができます。
インクルードファイル
インクルードファイルはプログラムで使用する定数やマクロなどを定義したファイルで、各種プログラムから参照されます。
MetaEditor
MetaEditorとは、MetaTrader 4(MT4)に内蔵された多機能のテキストエディタで、取引プログラムの作成や編集に使います。
MetaTester
MetaTesterとは、作成した取引ロボットのテストを行うツールです。
MQLの仕様は公式ドキュメントが公開されているのですが、英語で書かれています。公式技術マニュアル特有の読みにくさもあるので、市販の本を読んだ方が理解しやすいです。
この本では、いろいろな機能を使ってみる過程がストーリー仕立てで書かれているので、理解しやすいです。さらに応用的な内容を記した続編もあるので、入門→応用とステップアップしていくのもスムーズです。
コメント