WindowOnDroppedでインジケーター挿入されたチャートのウィンドウ番号を取得する

MetaTrader 4
GogoJungle
2019/08/02 18:46
1541

MT4のチャートはローソク足などが表示されるメインウィンドウと、RSIやMACDなどのオシレーター系のインジケーターなどが表示されるサブウィンドウがあります。
これらの各画面にはウィンドウ番号が割り振られています。
メインウィンドウは必ず1つしかないので、ウィンドウ番号は0で固定です。
サブウィンドウは複数表示される場合があるので、1から順に連番で数値が割り振られます。
サブウィンドウはユーザーの操作によって幾つになるか分からないため、サブウィンドウに表示するインジケーターではどのウィンドウに表示されるかが分かりません。

EA、インジケーター、スクリプトが挿入されたウィンドウの番号を取得するにはWindowOnDropped関数が用意されています。

int  WindowOnDropped();

WindowOnDroppedを使用すると現在のプログラムが挿入されているウィンドウ番号を返します。
0であればメインウィンドウ、0以外の数字であればサブウィンドウに挿入されています。

ウィンドウ番号が分かれば、例えばObjectsDeleteAll関数を利用してインジケーターが挿入されているサブウィンドウのオブジェクトだけを削除するなどが可能です。

void OnDeinit(const int reason){
   ObjectsDeleteAll(0, WindowOnDropped());
}

コメント

関連トピックス

検索結果がありません。

ノーコードで誰でも簡単EA開発!MQL言語学習にも使える! | GogoJungle

注目トピックス

検索結果がありません。