ObjectSetDouble()の使い方
MQL4 (MT4)のObjectSetDouble()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectSetDoubleの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectSetDouble
関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で、チャート上の特定のグラフィカルオブジェクトのdouble型のプロパティ値を設定するために使用されます。この関数には2つのバリエーションがあります:修飾子なしでプロパティ値を設定するバージョンと、修飾子を指定してプロパティ値を設定するバージョンです。
修飾子なしでプロパティ値を設定
bool ObjectSetDouble(
long chart_id, // チャート識別子
string object_name, // オブジェクト名
int prop_id, // プロパティ
double prop_value // 値
);
修飾子を指示してプロパティ値を設定
bool ObjectSetDouble(
long chart_id, // チャート識別子
string object_name, // オブジェクト名
int prop_id, // プロパティ
int prop_modifier, // 修飾子
double prop_value // 値
);
使用例1: オブジェクトのレベル値を設定(修飾子なし)
チャート上の”FiboExample”という名前のフィボナッチリトレースメントオブジェクトの第一レベル(OBJPROP_LEVELVALUE
)の価格を1.1000に設定する例です。
void OnStart()
{
long chartID = ChartID(); // 現在のチャートIDを取得
string objectName = "FiboExample";
int propID = OBJPROP_LEVELVALUE;
double propValue = 1.1000; // 設定する価格値
if(ObjectSetDouble(chartID, objectName, propID, propValue))
{
Print("オブジェクト '", objectName, "' のレベル値が ", propValue, " に設定されました。");
}
else
{
Print("プロパティ値の設定に失敗しました。");
}
}
使用例2: オブジェクトの特定のレベル価格を設定(修飾子あり)
“FiboExample”フィボナッチのレベル1の価格を1.1050に設定する例です(レベルは0から始まるため、prop_modifier=1
でレベル1を指定)。
void OnStart()
{
long chartID = ChartID();
string objectName = "FiboExample";
int propID = OBJPROP_LEVELVALUE;
int propModifier = 1; // レベル1
double propValue = 1.1050; // 新しい価格
if(ObjectSetDouble(chartID, objectName, propID, propModifier, propValue))
{
Print("フィボナッチオブジェクト '", objectName, "' のレベル ", propModifier, " の価格が ", propValue, " に設定されました。");
}
else
{
Print("プロパティ値の設定に失敗しました。");
}
}
注意点
- プロパティ識別子の正確性:
prop_id
には、設定したいプロパティの種類を指定します。例えば、OBJPROP_LEVELVALUE
、OBJPROP_WIDTH
、OBJPROP_COLOR
などがあります。 - 修飾子の使用: 修飾子を使用するバージョンは、特定のプロパティ(例:フィボナッチレベルの価格)に対してより細かい制御が必要な場合に便利です。
- 関数の戻り値:
ObjectSetDouble
関数は、操作が成功したかどうかをbool値で返します。プロパティの設定が失敗した場合(例えば、無効なchart_id
やobject_name
が指定された場合)、関数はfalse
を返します。この場合、GetLastError
関数を使用してエラーの原因を調査することができます。
これらの関数を使用することで、プログラム的にチャートオブジェクトのプロパティ値を動的に調整し、分析や取引戦略に応じてチャートの表示をカスタマイズすることが可能になります。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objectsetdouble
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
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 | オブジェクトのタイプを取得します。 |
コメント