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

関数

オブジェクト関数

ObjectGetTimeByValue 関数

この関数は、チャート上の指定した「オブジェクト」で描画した中の指定した価格(Y軸)の、時間(X軸)を取得します。

また、この関数はENUM_OBJECT 列挙値の中にある次の「オブジェクト」のみで使うことができます。

定数説明
2OBJ_TREND トレンドライン
3OBJ_TRENDBYANGLE 角度別トレンドライン
4OBJ_REGRESSION 線形回帰
5OBJ_CHANNEL 等距離チャネル
6OBJ_STDDEVCHANNEL 標準偏差チャネル
7OBJ_GANNLINE ギャンライン

 

データ型と構成・戻り値

datetime ObjectGetTimeByValue(①,②,③,④);

戻り値は、指定した「オブジェクト」の中で指定した価格の時間を返します。

引数 [4]

ObjectGetTimeByValue関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
chart_idlongチャートIDを指定します。現在のチャートIDは「0」を指定するか、ChartID関数を使うことで取得できます。
object_namestringチャート上に描画されているオブジェクト名を指定します。
valuedouble価格値。
line_idint0行識別子。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。

使用例

ObjectGetTimeByValue関数による時間の取得

ObjectCreate関数でトレンドラインを描画して、そのトレンドライン中の価格値を Bid値として指定、その時の時間を取得します。

コード

// ObjectGetTimeByValue関数による時間の取得
#property strict

void OnInit() {

ObjectsDeleteAll(); // オブジェクト全削除

int aa=22, bb=5;    // トレンドラインの位置を設定

ObjectCreate("obj", OBJ_TREND, 0, Time[aa], Close[aa], Time[bb], Close[bb]); // トレンドライン描画

double b=Bid;       // 価格値(Y軸)の指定
Print("取得日時(X軸):", ObjectGetTimeByValue( 0, "obj", b));
Print("価格値 (Y軸):", b);
}

void OnDeinit(const int reason) {
   ObjectsDeleteAll();
}

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

結果 

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