MetaQuotes Language 5 (MQL5) は、金融取引を自動化するテクニカル指標、売買ロボットやユーティリティアプリケーションを開発するために設計された高レベル言語です。MQL5 は MetaQuotes Software Corp. によって独自の取引プラットフォームのために開発されました。その言語構文は、オブジェクト指向プログラミング(OOP)スタイルでアプリケーションを開発するプログラマを可能にし、C ++ に非常に近いものです。
MQL5 言語に加えて、取引プラットフォームパッケージには、テンプレート、スニペット、デバッグ、プロファイリングや自動補完ツールといった高度なコード作成ツールを持つ MetaEditor IDE や、ファイルのバージョン管理を可能にする内蔵された MQL5 Storage を含みます。
言語サポートは、大規模な無償のコードベースと大量の記事を持つMQL5.community ウェブサイトで提供されます。これらの記事は、ニューラルネットワーク、統計や分析、高頻度取引、裁定、テスト、及び取引ストラテジーの最適化、取引の自動化ロボットの使用、などの現代的な取引の全ての側面をカバーしています。
トレーダーとMQL5 プログラム開発者は、フォーラム上で通信し、フリーランスサービスを使用してアプリケーションを注文及び開発し、自動取引アプリケーションの市場で保護されたプログラムを売買出来ます。
MQL5 言語は専門的な取引関数と事前定義されたイベントハンドラを提供し、プログラマが、特定の取引ルールに従って取引プロセスを制御するエキスパートアドバイザー(EAs)を開発するのを支援します。EAs に加えて、MQL5 は、カスタムテクニカル指標、スクリプト及びライブラリの開発を可能にします。
この MQL5 言語リファレンスは、関数、演算、予約語及び他の言語の構造のカテゴリに分かれています。このリファレンスには、取引ストラテジー、制御パネル、カスタムグラフィックスを展開し、ファイルアクセスを可能にするために使用される標準ライブラリクラスの記述も含まれます。
更に、コードベースには様々な数学的な問題を解決するために使用出来るALGLIB数値解析ライブラリを含まれます。
MQL5 アプリケーションの種類
MQL5 プログラムは、実装する取引オートメーションタスクに基づいて、4つの専門的な種類に分類されます。
- エキスパートアドバイザー は、特定のチャートにリンクされる自動取引システム( MTS )です。 エキスパートアドバイザーは、適切な取引ストラテジー要素の実行を有効にする事前定義されたイベントを処理するたのイベントハンドラを持っています。プログラム初期化と初期化解除イベント、新規ティックイベント、タイマーイベント、板情報の変更イベント、チャートとカスタムイベントがその例です。
実装ルールに基づいた売買シグナルの計算に加えて、エキスパートアドバイザーは自動売買を実行して、取引サーバに直接送信することが出来ます。エキスパートアドバイザーは、<Terminal_Directory>\MQL5\Experts に格納されています。 - カスタム指標は、標準的な指標に加えてユーザが開発した技術的な指標で、取引プラットフォームに統合されています。カスタム指標も標準的な指標も、自動売買は出来ず、出来るのは分析関数を実装することだけです。カスタム指標は計算のために他の指標の値を利用することができ、エキスパートアドバイザーから呼び出すことが出来ます。
カスタム指標は<Terminal_Directory>\MQL5\Indicators に格納されます。 - スクリプトは、アクションを1回実行するためのプログラムです。エキスパートアドバイザーとは異なり、スクリプトはトリガ、初期化と初期化解除以外のイベントを処理しません。スクリプトコードには OnStart 処理関数が必要です。
スクリプトは<Terminal_DIrectory>\MQL5\Scripts に格納されています。
- サービスは、指標、エキスパートアドバイザー、スクリプトと違って、チャートから独立して動作できます。スクリプトと同様に、サービスはトリガー以外のイベントを処理しません。サービスを起動するには、そのコードにOnStartハンドラ関数を含める必要があります。サービスはStart以外のイベントを受け付けませんが、EventChartCustomを使用してチャートにカスタムイベントを送信できます。サービスは<Terminal_Directory>\MQL5\Servicesに格納されます。
- ライブラリはカスタム関数のセットです。ライブラリは、一般的に使用されるカスタムプログラムアルゴリズムの保存及び配布を意図しています。
ライブラリは <Terminal_Directory>\MQL5\Librariesに格納されています。 - インクルードファイルはカスタムプログラムの最も頻繁に使用されるブロックのソーステキストです。このようなファイルは、コンパイル段階で、エキスパートアドバイザー、スクリプト、カスタム指標及びライブラリのソーステキストに含むことが出来ます。インクルードファイルの使用は、負担を発生するライブラリ関数の呼び出しより好ましいです。
インクルードファイルは、元のファイルと同じディレクトリに格納することが出来ます。この場合 #include ディレクティブが二重引用符と使用されます。別のオプションは、インクルードファイルを <Terminal_Directory>\MQL5\Include に格納することです。この場合 #include は角括弧と使用されるべきです。
Originally posted 2019-07-26 17:31:33.