ObjectDelete()の使い方
MQL4 (MT4)のObjectDelete()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectDeleteの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectDelete関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で、チャートから特定のグラフィカルオブジェクトを削除するために使用されます。この関数は、特定のオブジェクト名をパラメータとして受け取り、そのオブジェクトがチャートから削除されるようにします。これにより、動的にチャートの表示を更新したり、不要になったオブジェクトをクリーンアップしたりすることができます。
ObjectDelete関数の基本形式
bool ObjectDelete(
string name // 削除するオブジェクトの名前
);
name: 削除するオブジェクトの名前です。
使用例:指定したオブジェクトを削除
以下の例では、チャートから”ExampleLine”という名前のオブジェクト(この場合はライン)を削除する方法を示します。
void OnStart()
{
string objectName = "ExampleLine"; // 削除するオブジェクトの名前
// オブジェクトを削除
if(ObjectDelete(objectName))
{
Print("オブジェクト ", objectName, " が削除されました。");
}
else
{
Print("オブジェクト ", objectName, " の削除に失敗しました。エラー: ", GetLastError());
}
}
注意点
- オブジェクトの存在確認: オブジェクトを削除する前に、
ObjectFind関数を使用してオブジェクトがチャート上に存在するかどうかを確認することが推奨されます。ただし、ObjectDelete関数自体は存在しないオブジェクト名が指定された場合にfalseを返すため、必ずしも必須ではありません。 - エラーハンドリング:
ObjectDelete関数がfalseを返した場合、GetLastError関数を呼び出してエラーコードを取得し、削除に失敗した原因を特定することが重要です。 - 複数オブジェクトの削除: 複数のオブジェクトを一括で削除する場合は、
ObjectsDeleteAll関数を使用することも検討してください。この関数は、特定のウィンドウや特定の種類のオブジェクトを指定して削除することができます。
ObjectDelete関数を適切に使用することで、EAやカスタムインジケータ内で動的にチャートオブジェクトを管理し、ユーザーに必要な情報のみを表示することが可能になります。これにより、チャートの見通しを良くし、分析や取引判断をサポートするための環境を整えることができます。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objectdelete
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
| 関数名 | 概要 |
|---|---|
| ObjectCreate | チャート上に新しいオブジェクトを作成します。 |
| ObjectName | 指定されたインデックスにあるオブジェクトの名前を取得します。 |
| ObjectDelete | チャートから指定された名前のオブジェクトを削除します。 |
| ObjectsDeleteAll | 特定のウィンドウ、またはすべてのウィンドウからオブジェクトを削除します。 |
| ObjectFind | 指定された名前のオブジェクトが存在するウィンドウのインデックスを返します。 |
| ObjectGetTimeByValue | 指定された価格に対応する時間をオブジェクトから取得します。 |
| ObjectGetValueByTime | 指定された時間に対応する価格をオブジェクトから取得します。 |
| ObjectMove | 指定されたオブジェクトを新しい位置に移動します。 |
| ObjectsTotal | チャート上のオブジェクトの総数を返します。 |
| ObjectGetDouble | 指定されたオブジェクトのプロパティ値(double型)を取得します。 |
| ObjectGetInteger | 指定されたオブジェクトのプロパティ値(整数型)を取得します。 |
| ObjectGetString | 指定されたオブジェクトのプロパティ値(文字列型)を取得します。 |
| ObjectSetDouble | 指定されたオブジェクトのプロパティ値(double型)を設定します。 |
| ObjectSetInteger | 指定されたオブジェクトのプロパティ値(整数型)を設定します。 |
| ObjectSetString | 指定されたオブジェクトのプロパティ値(文字列型)を設定します。 |
| TextSetFont | テキストオブジェクトのフォント名、サイズ、スタイル、重さを設定します。 |
| TextOut | チャートに直接テキストを描画します。 |
| TextGetSize | 指定されたテキストのサイズを取得します。 |
| ObjectDescription | オブジェクトの説明を取得します。 |
| ObjectGet | オブジェクトのプロパティを取得します。 |
| ObjectGetFiboDescription | フィボナッチオブジェクトのレベル説明を取得します。 |
| ObjectGetShiftByValue | 指定された価格に対応するオブジェクトのシフトを取得します。 |
| ObjectGetValueByShift | 指定されたシフトに対応するオブジェクトの価格を取得します。 |
| ObjectSet | オブジェクトの特定のプロパティを設定します。 |
| ObjectSetFiboDescription | フィボナッチオブジェクトのレベル説明を設定します。 |
| ObjectSetText | オブジェクトにテキストを設定します。 |
| ObjectType | オブジェクトのタイプを取得します。 |



コメント