MQL4はMetaQuotes社が提供する外国為替証拠金取引用のプラットフォームである「MetaTrader4」の機能を拡張するためのプログラム言語です。
MetaTrader4は2005年にリリースされましたが、MQL4による拡張性の高さが投資家からの評価を集め、10年以上経つ現在でも数多くの証券会社が対応しているという、非常に息の長い取引プラットフォームとなります。
MQL4で開発出来るプログラムは大きく分けて
4つになりますが、中でも
カスタムインジケーターと
エキスパートアドバイザーが非常に多く開発されているプログラムとなります。
●カスタムインジケーター
カスタムインジケーターはチャート上に様々な情報を表示するプログラムです。
もともとMetaTrader4には
移動平均線や
ボリンジャーバンドなど一般的な
インジケーターが同梱されていますが、MQL4を使用することでこれらのインジケーターの機能を拡張したり、全く新しいオリジナルのインジケーターを開発することも可能となります。
チャートへの表示に特化していますが、
エキスパートアドバイザーのように売買を行うことは出来ません。
●エキスパートアドバイザー(EA)
エキスパートアドバイザー(EA)は指定された条件に従い自動的に売買を行うプログラムです。
売買条件は自由にプログラムで定義することが可能で、
カスタムインジケーターを売買条件として使用することも可能です。
ただし売買を目的としたプログラムのため、カスタムインジケーターほど多彩な表示を行うことは出来ません。
●スクリプト
スクリプトはチャートに設定した際に一回だけ処理を実行するプログラムです。
カスタムインジケーターや
エキスパートアドバイザーはブローカーから新しい価格を受信するたびに継続して動作するプログラムですが、スクリプトは継続しての動作は行わず、設定された際に1回動作するのみとなります。
そのため手動での取引を補助するような機能を作成することが多いです。
例えば任意のタイミングで保有中の
ポジションを全て決済する、といった内容はスクリプトとして開発することになります。
●ライブラリ
ライブラリは他のMQL4プログラムから呼ばれることを目的としたプログラムです。
例えば、よく使用する処理をまとめて1つのライブラリとして用意しておくことでコードの重複を防止し開発工数の削減に繋げるが出来ます。
ただし、注意点として、ライブラリを使用したプログラムを実行するには、MetaTrader4のデータフォルダに呼び出し元のプログラムと使用するライブラリの双方が必要であり、呼び出し元のプログラム単体での動作は不可となります。