ObjectGetValueByShift 関数
この関数は、指定したバーのインデックス値からオブジェクト中の価格を取得します。
バーのインデックス値とは、最新のバーのインデックス値を 0として、一つ前は 1、二つ前は 2と順次番号をつけられた値になります。
ですので時間の経過と共にバーが作成されていくので、バーが作成される都度インデックス値は変わっていきます。
価格は、一次方程式を使用してチャート上の X軸(時間軸)と Y軸(価格軸)座標によって計算されます。
そのため、この関数を使用できるオブジェクトは、トレンドラインおよび同様のオブジェクトのみに適用されます。
データ型と構成・戻り値
double ObjectGetValueByShift(①,②);
戻り値は、指定したバーインデックス値から対応するオブジェクト中の価格を返します。
発生するエラーについては、GetLastError関数で取得することができます。
引数 [4]
ObjectGetValueByShift関数は 2個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | object_name | string | - | - | チャート上に描画されているオブジェクト名を指定します。 |
② | value | int | - | - | バーのインデックス値。 |
使用例
ObjectGetValueByShift関数による価格の取得
ObjectCreate関数でトレンドラインを描画した後、バーのインデックス値を指定して、その位置にあるオブジェクト中の価格を取得します。今回バーのインデックス値は 5を指定しています。
コード
// ObjectGetValueByShift関数によるオブジェクト中の価格の取得
#property strict
void OnInit() {
ObjectsDeleteAll(); // オブジェクト全削除
int aa=31, bb=1; // トレンドラインの位置を設定
ObjectCreate("obj", OBJ_TREND, 0, Time[aa], Open[aa], Time[bb], Open[bb]); // トレンドライン描画
int b=5; // バーインデックス値(X軸)の指定
Print("バーインデックス値:", b);
Print("価格値(Y軸):", ObjectGetValueByShift("obj", b));
}
void OnDeinit(const int reason) {
ObjectsDeleteAll();
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)