MQL5InfoInteger
関数の引数に MQL5_PROGRAM_TYPE
を指定すると、その関数の呼び出し元がスクリプトなのか、EA なのか、インジケーターなのかを調べることができます。
// 実行中のプログラムが「スクリプト」かどうかを調べます
bool isCalledFromScript() {
return MQL5InfoInteger(MQL5_PROGRAM_TYPE) == PROGRAM_SCRIPT;
}
// 実行中のプログラムが「EA」かどうかを調べます
bool isCalledFromEa() {
return MQL5InfoInteger(MQL5_PROGRAM_TYPE) == PROGRAM_EXPERT;
}
// 実行中のプログラムが「インジケーター」かどうかを調べます
bool isCalledFromIndicator() {
return MQL5InfoInteger(MQL5_PROGRAM_TYPE) == PROGRAM_INDICATOR;
}
関連記事
- MetaTrader/MQL: シンボルのスプレッド情報を取得する (SymbolInfoInteger)
- MetaTrader/MQL: インジケーターの実装例 - Momentum(モメンタム)
- MetaTrader/MQL: カスタムインジケーターに水平線を表示する (IndicatorSet*)
- MetaTrader/MQL: インジケーターの実装例 - WMA(加重移動平均)
- MetaTrader/MQL: カスタムインジケーターで使用できるイベント
- MetaTrader/MQL: チャートの足(バー)の数を取得する (Bars)
- MetaTrader/MQL: #property strict で安全な EA を作る