ObjectGet()の使い方
MQL4 (MT4)のObjectGet()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectGetの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectGet
関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で、チャート上の特定のオブジェクトのプロパティ値を取得するために使用されます。この関数は主に数値型のプロパティ(例えば、オブジェクトの位置やサイズなど)を取得する際に役立ちます。
ObjectGet関数の使用法
double ObjectGet(
string object_name, // オブジェクト名
int index // プロパティのインデックス
);
object_name
: プロパティ値を取得したいオブジェクトの名前です。index
: 取得したいプロパティのインデックスです。このインデックスは、オブジェクトの種類によって異なり、例えばOBJPROP_X1
(オブジェクトの開始位置のX座標)、OBJPROP_Y1
(開始位置のY座標)などがあります。
使用例: オブジェクトの位置を取得
以下の例では、”MyLine”という名前のラインオブジェクトの開始位置(X1とY1)を取得し、それをコンソールに出力します。
void OnStart()
{
// オブジェクト名
string objectName = "MyLine";
// X1の位置を取得
double x1 = ObjectGet(objectName, OBJPROP_X1);
// Y1の位置を取得
double y1 = ObjectGet(objectName, OBJPROP_Y1);
// 位置を出力
Print("オブジェクト '", objectName, "' の開始位置: X1 = ", x1, ", Y1 = ", y1);
}
注意点
- オブジェクトの存在:
ObjectGet
関数を使用する前に、指定された名前のオブジェクトがチャート上に実際に存在していることを確認してください。存在しないオブジェクト名が指定された場合、この関数はエラーコードを返す可能性があります。 - インデックスの正確性: 取得したいプロパティに適切なインデックスを使用していることを確認してください。インデックスは、取得したいプロパティの種類によって異なります。
- 戻り値の確認:
ObjectGet
関数は、プロパティ値をdouble
型で返します。この関数から得られる値が期待する範囲内であるか確認し、必要に応じてエラーハンドリングを行ってください。
ObjectGet
関数を使用することで、プログラム的にチャート上のオブジェクトのプロパティ値を取得し、それに基づいてさらなる処理を行うことが可能です。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objectget
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
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 | オブジェクトのタイプを取得します。 |
コメント