
MQL4MQL5 オブジェクト
ObjectsDeleteAll()
- できること
- オブジェクトをまとめて削除する(名前の先頭で指定も可)
- 対応
- MQL4・MQL5
ObjectsDeleteAll() とは
チャートのオブジェクトをまとめて削除する関数です。名前の先頭部分(プレフィックス)を指定すると、自分のプログラムが作ったオブジェクトだけを消せます。
ObjectsDeleteAll() の書式と引数
引数の組み合わせが違う 2 通りの書き方があります。
int ObjectsDeleteAll(long chart_id, int sub_window=-1, int type=-1)
int ObjectsDeleteAll(
long chart_id,
const string prefix,
int sub_window=-1,
int object_type=-1
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
chart_id | long | 必須 | チャートの ID。今のチャートなら 0。 |
sub_window | int | -1 | ウィンドウの番号。-1 ならすべて。 |
type | int | -1 | オブジェクトの種類。-1 ならすべて。 |
prefix | const string | 必須 | 削除するオブジェクトの名前の先頭部分。 |
object_type | int | -1 | オブジェクトの種類。-1 ならすべて。 |
戻り値
削除したオブジェクトの数。
ObjectsDeleteAll() の使い方(コード例)
MQL4・MQL5 共通
// "MyEA_" で始まるオブジェクトだけを消す
int n = ObjectsDeleteAll(0, "MyEA_");
Print(n, " 個のオブジェクトを削除");OnTick()・OnStart() などの関数の中に書いて使う例です。MetaEditor でコンパイルできることを確認済みです。
ObjectsDeleteAll() の注意点
- プレフィックスなしで呼ぶと、手で引いたラインなども消えます。自分のオブジェクトの名前には共通の先頭部分を付け、それを指定して消すのがおすすめです。












