MQLInfoInteger関数の働き・役割
MQLInfoInteger関数は、MQL5環境に関する整数型の情報を取得するために使用されます。この関数を使うことで、MQL5プログラムの実行に関するさまざまな情報を取得することができます。例えば、エラーコードや取引サーバーに関する情報などを取得する際に利用されます。
MQLInfoInteger関数の引数について
MQLInfoInteger関数の引数構成は以下の通りです。
long MQLInfoInteger(
ENUM_MQL_INFO_INTEGER property_id // プロパティの識別子
);
引数の詳細
- property_id: 取得するプロパティの識別子を指定します。ENUM_MQL_INFO_INTEGERの値の一つを指定します。
ENUM_MQL_INFO_INTEGERの主な識別子
- MQL_TESTER: テストモードの情報を取得します。テストモードとは、ストラテジーテスターでエキスパートアドバイザーやインジケータを検証する際に使用されるモードです。この情報を取得することで、現在の実行がリアルタイムの取引環境ではなく、テスト環境で行われているかどうかを確認できます。
- MQL_OPTIMIZATION: 最適化モードの情報を取得します。最適化モードとは、複数のパラメータセットを試行して最良のパフォーマンスを探すプロセスです。この情報を取得することで、現在の実行が最適化の一部であるかどうかを確認できます。
- MQL_LICENSE_TYPE: ライセンスタイプを取得します。ライセンスタイプとは、現在のMQL5プログラムがどのライセンスで実行されているかを示します。例えば、デモ版、フルライセンス版、サブスクリプション版などです。この情報を取得することで、プログラムのライセンス状態を確認できます。
※ENUM_MQL_INFO_INTEGERのその他の識別子については↓の記事をご参照ください。
MQLInfoInteger関数の戻り値について
MQLInfoInteger関数は、指定されたプロパティの整数型情報を返します。例えば、MQL_CODEPAGEを指定すると、使用されるコードページの番号が返されます。その他のプロパティ識別子についても、それぞれに対応する整数値が返されます。プロパティの指定が正しくない場合や情報が取得できない場合には0が返されます。
MQLInfoInteger関数を使ったサンプルコード
以下は、MQLInfoInteger関数を使用してコードページとテストモードの情報を取得するサンプルコードです。
// スクリプトの開始時に自動的に呼び出される関数
void OnStart()
{
// コードページを取得
long codepage = MQLInfoInteger(MQL_CODEPAGE);
// テストモード情報を取得
long is_tester = MQLInfoInteger(MQL_TESTER);
// エキスパートログにコードページとテストモード情報を出力
Print("コードページ: ", codepage);
Print("テストモード: ", is_tester ? "はい" : "いいえ");
}
サンプルコードの解説
- OnStart関数は、スクリプトの実行が開始されたときに自動的に呼び出される関数です。
- long型の変数codepageはMQLInfoInteger関数を使用して、現在使用されているコードページの番号を取得します。
- long型の変数is_testerはMQLInfoInteger関数を使用して、現在の実行モードがテストモードであるかどうかを取得します。
- Print関数は、エキスパートログに文字列を出力するために使用されます。ここでは、コードページとテストモードの情報を出力しています。