オブジェクトの時間から価格を取得 ObjectGetValueByShift 関数

関数

オブジェクト関数

ObjectGetValueByShift 関数

 この関数は、指定したバーのインデックス値からオブジェクト中の価格を取得します。
 バーのインデックス値とは、最新のバーのインデックス値を 0として、一つ前は 1、二つ前は 2と順次番号をつけられた値になります。ですので時間の経過と共にバーが作成されていくので、バーが作成される都度インデックス値は変わっていきます。

 価格は、一次方程式を使用してチャート上の X軸(時間軸)と Y軸(価格軸)座標によって計算されます。そのため、この関数を使用できるオブジェクトは、トレンドラインおよび同様のオブジェクトのみに適用されます。 

データ型と構成・戻り値

double ObjectGetValueByShift(①,②);

 戻り値は、指定したバーインデックス値から対応するオブジェクト中の価格を返します。
 発生するエラーについては、GetLastError関数で取得することが出来ます。

引数 [4]

 ObjectGetValueByShift関数は 2個の引数で構成されます。


引数名データ型単位初期値説明
object_namestringチャート上に描画されているオブジェクト名を指定します。
valueintバーのインデックス値。

使用例

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();
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果 

タイトルとURLをコピーしました