ObjectType()の使い方
MQL4 (MT4)のObjectType()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectTypeの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectType関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で使用され、チャート上の特定のオブジェクトのタイプを識別するために使用されます。この関数は、オブジェクトがどの種類のグラフィカルオブジェクト(例えば、ライン、テキストラベル、フィボナッチリトレースメントなど)であるかを判定する際に役立ちます。
ObjectType関数の使用法
int ObjectType(
string object_name // オブジェクト名
);
object_name: タイプを取得したいオブジェクトの名前です。
使用例: オブジェクトのタイプを識別
以下の例では、”MyObject”という名前のオブジェクトのタイプを取得し、そのタイプに応じたメッセージをコンソールに出力します。
void OnStart()
{
string objectName = "MyObject"; // オブジェクトの名前
int objectType = ObjectType(objectName); // オブジェクトのタイプを取得
switch(objectType)
{
case OBJ_HLINE:
Print("オブジェクト '", objectName, "' は水平線です。");
break;
case OBJ_VLINE:
Print("オブジェクト '", objectName, "' は垂直線です。");
break;
case OBJ_TREND:
Print("オブジェクト '", objectName, "' はトレンドラインです。");
break;
// 他のオブジェクトタイプに対するケースも追加可能
default:
Print("オブジェクト '", objectName, "' のタイプは特定できませんでした。");
break;
}
}
注意点
- オブジェクトの存在:
ObjectType関数を使用する前に、指定された名前のオブジェクトがチャート上に実際に存在していることを確認してください。存在しないオブジェクト名が指定された場合、関数は-1を返す可能性があります。 - オブジェクトタイプの識別:
ObjectType関数が返す値は、OBJ_HLINE、OBJ_VLINE、OBJ_TRENDなど、MQL4に定義されているオブジェクトタイプの列挙値のいずれかです。取得した値を使用して、オブジェクトの種類に応じた適切な処理を行うことができます。 - エラーハンドリング: 不明なオブジェクト名が指定された場合や、その他の理由でオブジェクトタイプが取得できない場合、適切なエラーハンドリングを行うことが重要です。
ObjectType関数を使用することで、プログラム的にチャート上のオブジェクトの種類を判別し、オブジェクトに対して種類に応じた操作を行うことが可能になります。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objecttype
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
| 関数名 | 概要 |
|---|---|
| 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 | オブジェクトのタイプを取得します。 |

と使用例-120x68.jpg)

コメント