MQLプログラム実行設定を取得するための定数:Integer型
MQLプログラムの設定の定数:Integer型は、MQLプログラムに設定されている状態を取得するときに使用します。
主に、MQLInfoInteger関数で使用されます。
それぞれ、MQLInfoInteger関数の property_id引数の入力値として使用されます。
またMQLInfoInteger関数は、入力する値によって、返り値の型が異なります。
MQLプログラム実行設定を取得するための定数:Integer型(ENUM_MQL_INFO_INTEGER)
| 定数 | 返り値の型 | 説明 |
| MQL_CODEPAGE | CP_ | プログラムから出力されたコードページ |
| MQL_PROGRAM_TYPE | ENUM_PROGRAM_TYPE | プログラムの種類 |
| MQL_DLLS_ALLOWED | bool | DLLの許可 |
| MQL_TRADE_ALLOWED | bool | トレードの許可 |
| MQL_SIGNALS_ALLOWED | bool | シグナルの許可 |
| MQL_DEBUG | bool | デバッグモード |
| MQL_PROFILER | bool | プロファイラモード |
| MQL_TESTER | bool | テストモード |
| MQL_OPTIMIZATION | bool | 最適化モード |
| MQL_VISUAL_MODE | bool | ビジュアルモード |
| MQL_FRAME_MODE | bool | フレームモード |
| MQL_LICENSE_TYPE | ENUM_LICENSE_TYPE | ライセンスタイプ |
MQLプログラム実行設定を取得するための定数:Integer型の使い方
主に、MQLInfoInteger関数で使用されます。
それぞれ、MQLInfoInteger関数の property_id引数の入力値として使用されます。
例えば、以下のように使用します。
//MQLInfoInteger関数
//DLLの許可設定を取得
bool mqlInfoInteger = MQLInfoInteger( MQL_DLLS_ALLOWED );
返り値の型は 入力する定数によって変わります。
サンプルプログラム
以下は、ENUM_MQL_INFO_INTEGERの各定数を使ってMQLプログラムの実行設定情報を取得し、エキスパートログに出力するサンプルプログラムです。
//+------------------------------------------------------------------+
//| ENUM_MQL_INFO_INTEGER サンプルプログラム |
//+------------------------------------------------------------------+
void OnStart()
{
// コードページを取得
int codePage = (int)MQLInfoInteger(MQL_CODEPAGE);
Print("コードページ: ", codePage);
// プログラムの種類を取得
ENUM_PROGRAM_TYPE programType = (ENUM_PROGRAM_TYPE)MQLInfoInteger(MQL_PROGRAM_TYPE);
string programTypeStr = "";
switch(programType)
{
case PROGRAM_SCRIPT: programTypeStr = "スクリプト"; break;
case PROGRAM_EXPERT: programTypeStr = "エキスパートアドバイザー"; break;
case PROGRAM_INDICATOR: programTypeStr = "インジケーター"; break;
default: programTypeStr = "不明"; break;
}
Print("プログラムの種類: ", programTypeStr);
// DLLの許可設定を取得
bool dllsAllowed = (bool)MQLInfoInteger(MQL_DLLS_ALLOWED);
Print("DLLの許可: ", dllsAllowed ? "許可" : "不許可");
// トレードの許可設定を取得
bool tradeAllowed = (bool)MQLInfoInteger(MQL_TRADE_ALLOWED);
Print("トレードの許可: ", tradeAllowed ? "許可" : "不許可");
// シグナルの許可設定を取得
bool signalsAllowed = (bool)MQLInfoInteger(MQL_SIGNALS_ALLOWED);
Print("シグナルの許可: ", signalsAllowed ? "許可" : "不許可");
// デバッグモードかどうかを取得
bool isDebug = (bool)MQLInfoInteger(MQL_DEBUG);
Print("デバッグモード: ", isDebug ? "ON" : "OFF");
// プロファイラモードかどうかを取得
bool isProfiler = (bool)MQLInfoInteger(MQL_PROFILER);
Print("プロファイラモード: ", isProfiler ? "ON" : "OFF");
// テストモードかどうかを取得
bool isTester = (bool)MQLInfoInteger(MQL_TESTER);
Print("テストモード: ", isTester ? "ON" : "OFF");
// 最適化モードかどうかを取得
bool isOptimization = (bool)MQLInfoInteger(MQL_OPTIMIZATION);
Print("最適化モード: ", isOptimization ? "ON" : "OFF");
// ビジュアルモードかどうかを取得
bool isVisualMode = (bool)MQLInfoInteger(MQL_VISUAL_MODE);
Print("ビジュアルモード: ", isVisualMode ? "ON" : "OFF");
// フレームモードかどうかを取得
bool isFrameMode = (bool)MQLInfoInteger(MQL_FRAME_MODE);
Print("フレームモード: ", isFrameMode ? "ON" : "OFF");
// ライセンスタイプを取得
ENUM_LICENSE_TYPE licenseType = (ENUM_LICENSE_TYPE)MQLInfoInteger(MQL_LICENSE_TYPE);
string licenseTypeStr = "";
switch(licenseType)
{
case LICENSE_FREE: licenseTypeStr = "フリー"; break;
case LICENSE_DEMO: licenseTypeStr = "デモ"; break;
case LICENSE_FULL: licenseTypeStr = "フル"; break;
case LICENSE_TIME: licenseTypeStr = "期限付き"; break;
default: licenseTypeStr = "不明"; break;
}
Print("ライセンスタイプ: ", licenseTypeStr);
}このサンプルプログラムでは、ENUM_MQL_INFO_INTEGERに含まれる全ての定数を使い、MQLInfoInteger関数でそれぞれの値を取得しています。
返り値の型が定数によって異なるため、適切な型にキャストして使用している点がポイントです。
【補足】MQLプログラム実行設定を取得するための定数:Integer型の列挙型(ENUM_MQL_INFO_INTEGER)
MQLプログラム実行設定を取得するための定数:Integer型は、ENUM_MQL_INFO_INTEGERという列挙型に含まれています。
列挙型は、定数群をひとまとめにしたものです。
以下のように使います。
ENUM_MQL_INFO_INTEGER mqlInfoInteger = MQL_DLLS_ALLOWED;上記のようにプログラムすると、mqlInfoInteger変数に MQL_DLLS_ALLOWEDの数値が代入されます。





