【MQL4テクニック】オブジェクトを削除する方法まとめ

MQL4テクニック

チャートに表示したオブジェクトを削除するための、様々な方法をご紹介します。

指定した名前のオブジェクトを削除する

ObjectDelete()関数は、オブジェクト名を指定して削除します。

bool ObjectDelete(long chartId, string objectName);

引数の意味は以下です。

引数名詳細
chartIdチャートIDを指定します。引数を省略した場合は現在のチャートを指定します。
objectName削除したいオブジェクトの名前を指定します。
あなたのやりたいことがきっと見つかる!
MQL4テクニック 逆引き集 はこちら

全てのオブジェクトを削除する

ObjectsDeleteAll()関数を使用することで、チャートに表示されている全てのオブジェクトを削除することができます。

bool ObjectsDeleteAll(long chartId);

引数はチャートIDのみです。 省略した場合は現在のチャートを指定します。

指定した種類のオブジェクトをまとめて削除する

ObjectDeleteAll()関数はオブジェクトタイプを指定することで、「水平線を全て削除する」などの実装が可能です。

bool ObjectsDeleteAll(long chartID, int window, int objectType);

引数の意味は以下です。

引数名詳細
chartId チャートIDを指定します。引数を省略した場合は現在のチャートを指定します。
windowチャートウィンドウ番号を指定します。
0を指定:メインチャートのみ
指定なし:全ウィンドウ
objectTypeオブジェクトタイプを指定します。
オブジェクトタイプの確認はこちらから。

使用例

ObjectsDeleteAll(0, EMPTY, OBJ_TREND);//トレンドラインを全て削除
ObjectsDeleteAll(0, 0, OBJ_HLINE);//メインチャートに表示されている水平線を全て削除

接頭語を指定してまとめて削除する

ObjectsDeleteAll()関数は、接頭語を指定することも可能です。

指定した名前から始まるオブジェクトを全て削除します。

bool ObjectsDeleteAll(long chartId, string prefix);

引数の意味は以下です。

引数名詳細
chartId チャートIDを指定します。
prefix接頭語を指定します。

使用例

ObjectsDeleteAll(0, "OBJ");//OBJから始まる名前のオブジェクトを全て削除
ObjectsDeleteAll(0, "OBJ", EMPTY, OBJ_TREND);//OBJから始まる名前のトレンドラインを全て削除
POINT

こちらの記事で悩みが解決されない場合は、
MQL4 User Community に参加してお気軽にご質問ください。

MQL4初心者の方や開発に行き詰った方の悩みを、 様々なソフトウェアやツールを開発してきた経験豊富なエンジニアたちが解決いたします。