ObjectGetShiftByValue()の使い方
MQL4 (MT4)のObjectGetShiftByValue()の使い方をChatGPTに確認しました。
賢いですね。きちんとした回答を詳しくもらえました。
使用GPTs:EA Creator
MT4 MQL4のObjectGetShiftByValueの使い方を実装例を交えて教えて下さい。補足で気を付ける点なども教えて下さい。
使い方
ObjectGetShiftByValue
関数は、MetaTrader 4 (MT4) プラットフォームのMQL4言語で、指定された価格におけるチャート上の特定のオブジェクトのバーポジション(時間軸上の位置)を取得するために使用されます。この関数は、価格レベルがオブジェクトにどのように対応しているかを知りたい場合に便利です。
ObjectGetShiftByValue関数の使用法
この関数は、指定された価格レベルに対応するチャート上の特定のオブジェクトの時間軸(バーのインデックス)上の位置を取得します。特に、トレンドラインや水平線などの価格に依存するオブジェクトにおいて、指定された価格がそのオブジェクトにどのように対応しているかを知りたい場合に使用します。
int ObjectGetShiftByValue(
string object_name, // オブジェクト名
double value // 価格
);
object_name
: バーポジションを取得したいオブジェクトの名前です。value
: 対応するバーポジションを知りたい価格レベルです。
使用例: 水平線オブジェクトにおける特定の価格レベルのバーポジションを取得
以下の例では、”MyHorizontalLine”という名前の水平線オブジェクトに対して、指定された価格レベル1.1500
におけるバーポジションを取得し、それを出力します。
void OnStart()
{
string objectName = "MyHorizontalLine"; // 水平線オブジェクトの名前
double priceLevel = 1.1500; // 取得したい価格レベル
// 指定価格における水平線のバーポジションを取得
int shift = ObjectGetShiftByValue(objectName, priceLevel);
if(shift != -1)
{
Print("価格 ", priceLevel, " における '", objectName, "' のバーポジション: ", shift);
}
else
{
Print("指定された価格に対応するバーポジションが見つかりませんでした。");
}
}
注意点
- オブジェクトの種類: この関数は、価格レベルに依存するオブジェクト(例えば、水平線、トレンドラインなど)に対してのみ意味があります。価格レベルが関係ないオブジェクト(テキストオブジェクトなど)には使用できません。
- 戻り値の解釈: 関数が
-1
を返した場合、指定された価格に対応するバーポジションが見つからなかったことを意味します。これは、価格がオブジェクトの範囲外であるか、その他の理由で計算できない場合に発生します。 - オブジェクトの存在: 指定されたオブジェクト名がチャート上に存在し、正しい名前が使用されていることを確認してください。存在しないオブジェクト名が指定された場合、関数は有効なバーポジションを返すことができません。
ObjectGetShiftByValue
関数を使用することで、特定の価格レベルにおけるオブジェクトの位置をプログラム的に把握し、分析や戦略の決定に役立てることが可能です。
MQL4リファレンス
正式な仕様は”MQL4 Reference“をご確認下さい。上記内容を確認しておくとより分かりやすいかと思います。
リンク:https://docs.mql4.com/objects/objectgetshiftbyvalue
他のオブジェクト関数の利用方法
以下のそれぞれのリンク先で確認していますので、ご参照ください。
関数名 | 概要 |
---|---|
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 | オブジェクトのタイプを取得します。 |
コメント