
MQL4MQL5 オブジェクト
ObjectFind()
- できること
- オブジェクトがあるか探し、あるウィンドウ番号を返す
- 対応
- MQL4・MQL5
ObjectFind() とは
名前を指定してオブジェクトを探し、見つかればそのオブジェクトがあるウィンドウの番号を返す関数です。「まだなければ作る」の判定に使います。
ObjectFind() の書式と引数
int ObjectFind(long chart_id, string name)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
chart_id | long | 必須 | チャートの ID。今のチャートなら 0。 |
name | string | 必須 | オブジェクトの名前。 |
戻り値
見つかればウィンドウの番号(メインチャートは 0)、なければ負の値。
ObjectFind() の使い方(コード例)
MQL4・MQL5 共通
if(ObjectFind(0, "MyEA_Label") < 0)
{
ObjectCreate(0, "MyEA_Label", OBJ_LABEL, 0, 0, 0);
ObjectSetInteger(0, "MyEA_Label", OBJPROP_XDISTANCE, 10);
ObjectSetInteger(0, "MyEA_Label", OBJPROP_YDISTANCE, 20);
}
ObjectSetString(0, "MyEA_Label", OBJPROP_TEXT, "稼働中");OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
ObjectFind() の注意点
- メインチャートにあると 0 が返るので、「あるかどうか」は >= 0 で判定します(if(ObjectFind(…)) だと 0 のとき「ない」と判定されてしまいます)。
MQL4 と MQL5 の違い
MQL4 には ObjectFind(名前) という古い書き方もあります。












