MQL言語で開発できること
MQL言語で開発できることは大きく分けて以下の3つになります。
- カスタムインジケーター
- EA(エキスパートアドバイザー)
- スクリプト
その中でもカスタムインジケーターとEA(エキスパートアドバイザー)が非常に多く開発されています。
カスタムインジケーター
カスタムインジケーターとは毎ティック実行されるプログラムです。
カスタムインジケーターはトレード機能を持たないことが特徴的です。
計算した値をチャートにグラフィカルに表示するために使用します。
EA(エキスパートアドバイザー)
EA(エキスパートアドバイザー)は毎ティック実行されるプログラムです。
カスタムインジケータとは異なりトレード機能を有します。
主にトレードを実行するために使用するプログラムです。
スクリプト(Script)
スクリプト(Script)は、1回のみ実行されるプログラムです。
スクリプトはトレード機能を有します。基本的に1度だけ処理を実行したい場合に使用します。
例えば、複数のポジションを一括で決済したりなどの操作の自動化を行うために利用します。
それぞれのプログラムの比較
それぞれのプログラムの比較してみました。
カスタムインジケーター | EA | スクリプト | |
プログラムの実行期間 | 長期 | 長期 | 1回 |
トレードの機能 | × | ◯ | ◯ |
オブジェクトによる ライン等の表示 | ◯ | ◯ | ◯ |
バッファによる ライン等の表示 | ◯ | × | × |
1つのチャートで 複数同時使用 | ◯ | × | × |
他のプログラムから実行 | × | × | × |
カスタムインジケータ/EA/スクリプトで使える関数の違い
カスタムインジケータ/EA/スクリプトで使える関数の違いをご紹介します。
関数とは以下の記事に詳しく記載しています。
- EAまたはスクリプト
- インジケーター
とでは使用できる関数が異なります。
EAまたはスクリプトが使用不可な関数
EAまたはスクリプトが使用不可な関数は以下のとおりです。
IndicatorBuffers()
IndicatorCounted ()
IndicatorDigits()
IndicatorShortName()
SetIndexArrow()
SetIndexBuffer()
SetIndexDrawBegin()
SetIndexEmptyValue()
SetIndexLabel()
SetIndexShift()
SetIndexStyle()
SetLevelStyle()
SetLevelValue()
インジケータが使用不可な関数
インジケータが使用不可な関数は以下のとおりです。
OrderSend()
OrderClose()
OrderCloseBy()
OrderDelete()
OrderModify()
まとめ
今回はMQLプログラミングで作れるシステムについて紹介しました。
それぞれどのような特徴や機能があり自分自身が何を作りたいのかをしっかりと整理できるようにしましょう。
カスタムインジケータ:毎ティック実行されるプログラム。トレード(注文)機能を持たない。計算した値をチャートにグラフィカルに表示するために使用する。
EA(エキスパートアドバイザー):毎ティック実行されるプログラム。トレード(注文)機能を有する。主にトレードを実行するために使用する。
スクリプト(Script):1回のみ実行されるプログラム。トレード(注文)機能を有する。1度だけ処理を実行したい場合に使用する。
コメント