ObjectName()の使い方
MQL4 (MT4)のObjectName()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectNameの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectName
関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で、指定されたインデックスに基づいてチャート上のオブジェクトの名前を取得するために使用されます。この関数は、チャート上に存在する全てのオブジェクトを列挙する際や、特定のオブジェクトに対して操作を行う前に、そのオブジェクトの名前を特定するために便利です。
ObjectName関数の基本形式
string ObjectName(
int index // オブジェクトのインデックス
);
index
: オブジェクトリスト内のオブジェクトのインデックスです。インデックスは0から始まります。
使用例:チャート上の全オブジェクトの名前を表示
以下の例では、現在のチャート上に存在する全てのオブジェクトの名前を取得して表示します。
void OnStart()
{
int totalObjects = ObjectsTotal(); // チャート上のオブジェクト総数を取得
Print("チャート上のオブジェクト総数: ", totalObjects);
// 全てのオブジェクトの名前を列挙
for(int i = 0; i < totalObjects; i++)
{
string objectName = ObjectName(i); // オブジェクトの名前を取得
Print("オブジェクト #", i, ": ", objectName);
}
}
注意点
- オブジェクトのインデックスと総数:
ObjectsTotal
関数を使用してチャート上のオブジェクト総数を取得し、その数に基づいてObjectName
関数をループ内で呼び出します。オブジェクトのインデックスは動的に変化する可能性があるため、オブジェクトを削除または追加する操作を行った後は、インデックスが変更されることに注意してください。 - オブジェクトの操作:
ObjectName
関数で取得したオブジェクト名を使用して、ObjectDelete
、ObjectGet
、ObjectSet
などの関数を通じて、特定のオブジェクトに対する操作を行うことができます。 - オブジェクト名の一意性: MT4では同じ名前のオブジェクトを複数持つことができないため、
ObjectName
関数で取得した名前はチャート上で一意です。
ObjectName
関数を使用することで、プログラム的にチャート上のオブジェクトを管理するための基盤が提供され、インジケータやEAの開発において高度なカスタマイズや操作が可能になります。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objectname
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
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 | オブジェクトのタイプを取得します。 |
コメント