ObjectGetTimeByValue()の使い方
MQL4 (MT4)のObjectGetTimeByValue()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectGetTimeByValueの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectGetTimeByValue
関数は、指定された価格におけるチャート上の特定のグラフィカルオブジェクトの時間を取得するために使用されます。この関数は、価格レベルがオブジェクト(例えばトレンドラインやフィボナッチレベルなど)に交差する点の正確な時間を知りたい場合に特に有用です。
ObjectGetTimeByValue関数の形式
datetime ObjectGetTimeByValue(
long chart_id, // チャートID
string object_name,// オブジェクト名
double value, // 価格
int line_id=0 // 線識別子
);
chart_id
: オブジェクトが存在するチャートのID。object_name
: 時間を取得したいオブジェクトの名前。value
: 時間を知りたい価格レベル。line_id
: オブジェクト内の複数の線のうち、どの線に対して操作を行うかを指定します。多くのオブジェクトでは0
がデフォルト値です。
使用例:トレンドラインで指定価格に対応する時間を取得
以下の例では、”MyTrendLine”という名前のトレンドラインオブジェクトについて、価格値1.1000
に対応する時間を取得し、その時間を表示します。
void OnStart()
{
long chartID = ChartID(); // 現在のチャートIDを取得
string objectName = "MyTrendLine"; // トレンドラインオブジェクトの名前
double priceLevel = 1.1000; // 時間を取得したい価格レベル
datetime timeAtPrice = ObjectGetTimeByValue(chartID, objectName, priceLevel, 0);
if(timeAtPrice != 0)
{
// 時間を yyyy.mm.dd hh:mi 形式で表示
Print("価格 ", priceLevel, " に対応する時間: ", TimeToString(timeAtPrice, TIME_DATE|TIME_MINUTES));
}
else
{
Print("指定された価格に対応する時間が見つかりませんでした。");
}
}
注意点
- オブジェクトの存在:
ObjectGetTimeByValue
を使用する前に、指定された名前のオブジェクトがチャート上に存在し、正しいchart_id
とobject_name
が指定されていることを確認してください。 - 価格レベルの範囲: 指定された価格がオブジェクトの有効範囲内にあることを確認してください。価格がオブジェクトの範囲外である場合、関数は有効な時間を返せません。
- 返り値の確認: 関数が
0
を返した場合、指定された価格レベルに対応する時間が存在しない、または計算できないことを意味します。この場合、パラメータの値やオブジェクトの種類を再確認してください。
ObjectGetTimeByValue
関数を適切に使用することで、特定の価格レベルでのオブジェクトの時間情報を効果的に把握し、チャート分析や取引戦略の決定に役立てることができます。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objectgettimebyvalue
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
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 | オブジェクトのタイプを取得します。 |
コメント