本書アップデート情報

このセクションでは、MQL4の組み込み関数の書式の見方とプログラム中での書き方について説明しています。C言語と同じく、関数の引数戻り値など用語の確認です。

以前のビルドではメタエディターのヘルプメニューに「MQL4.community」がありましたが、現在のビルドでは削除されています。

なので、組み込み関数の一覧は、メタエディターのヘルプメニューの「MQL4 リファレンス」から参照する形になっています。

image.png

なお、これと同じ内容は、MQL4 Referenceのウェブサイトから見ることができます。

関連するMT5情報

組み込み関数の一般的な書式の見方や使い方についてMQL4とMQL5とで大きな違いはありません。サンプルプログラムex7_scr.mq4も、拡張子を「mq5」に変えるだけでコンパイル・実行できます。

MQL4とMQL5とで大きな違いがあるのは組み込み関数の種類です。MQL4にしかない組み込み関数、MQL5にしかない組み込み関数があったり、同じ組み込み関数だとしても使い方が違ったりするところです。

詳しくは次の「トレード関数の使い方」で説明します。

ここでは、「2-3 チャート上のデータの表示(定義済み変数)」の定義済み変数の代わりになる組み込み関数を紹介します。

現在の売買価格(Bid, Ask)

MQL4のBidAskをMQL5で取得する方法はいくつかあります。ここでは、ひとつの関数の戻り値として取得できる方法を紹介します。

利用する組み込み関数は「SymbolInfoDouble()」です。この関数は2つ引数を取ります。最初の引数シンボル名(FXだと通貨ペア名)を指定し、2番目の引数取得したいプロパティを指定し、戻り値として取得します。

最初の引数は、挿入するチャート上のシンボル名なので「_Symbol」を指定します。

2番目の引数は、Bidの値を取得したい場合、「SYMBOL_BID」を、Askを取得したい場合、「SYMBOL_ASK」を指定します。

サンプルプログラムex2_scr.mq4の「Bid」と「Ask」の部分をそれぞれ「SymbolInfoDouble(_Symbol,SYMBOL_BID)」「SymbolInfoDouble(_Symbol,SYMBOL_ASK)」に置き換えると、MT5で実行できるプログラムとなります。

void OnStart()
{
   Print("売値=", SymbolInfoDouble(_Symbol,SYMBOL_BID), " 買値=", SymbolInfoDouble(_Symbol,SYMBOL_ASK));
}

四本値の配列(Open[], High[], Low[], Close[])

MQL4では、過去の4本値を配列の形で取得できますが、MQL5ではそのような定義済み配列がないため、組み込み関数を使うことになります。