Prev

書式:Prev

書式:Prev()

書式:prev (DATA ARRAY)

Prevは式より前回のバーの計算に振り返ることができます。Prevは定数PrevもしくはPrev()としてもしくは関数Prev(DATA ARRAY)として使用できます。使用する際はPREV, PREV(0),及びPREV(DATA ARRAY)の特性を知っておく必要があります。

Prev及びPrev()は現在の計算している変数の前回のバーでの計算を返します。また、前回のデータが定義されていないもしくはない場合はNULLを返します。この関数の出力はref(DATA ARRAY,−1)と同じ結果を出します。

Prev(DATA ARRAY)は現在の計算している変数の前回のバーでの計算を返します。また、前回のデータが定義されていないもしくはない場合はデータ配列の値を返します。

注意:複雑な計算内のPrev, Prev(), およびPrev(DATA ARRAY)の使用はインディケーターの計算を大きく遅らせることがあります。そのため、使用を避けることを推奨します。

例:On Balance Volumeインディケーターの計算で定数PREVを使用した式
_OBV:= (If(C>Ref(C,−1), 1, If(C<Ref(C,−1), −1, 0)) * VOLUME) + PREV;

On Balance VolumeインディケーターはPREVを使用せずにcum(DATA ARRAY)の関数を使用しても下記のように計算できます。
FactorOBV:= If(C>Ref(C,−1), 1, If(C<Ref(C,−1), −1, 0)) * VOLUME;
_OBV:= cum(FactorOBV);

下記の式では(High + Low + Close)を3で割り、そして1つ前のバーで計算された((High + Low + Close) / 3)の値と加算します。
OUT:= ((High + Low + Close) / 3) + PREV(0);

次の例ではPrev, Prev()とPrev(NULL)の類推点を説明します。ただしこの例では主にNULLの特徴を取り上げています。Prev 及びPrev()がの値がない場合は、NULL(空値)を返します、そのためNULLが返された場合はその後の演算は意味を持ちません。掛け算や加算等の算術演算でもどこかの時点でNULLが返された場合は、結果はすべてNULLになります。

下記の例をご確認ください。
OUT:= ((High + Low + Close) / 3) + PREV;
OUT:= ((High + Low + Close) / 3) + PREV();

上記の式を最初のバーで使用した場合、OUT {チャートに読み込まれた最初のバーで}:= ((High + Low + Close) / 3) + NULL {=NULL};
また次もOUT:= NULL + NULL {=NULL};となり、インディケーターがあっても、すべての値がNULLになります。そのため、値はチャート上には表示されません。

VTトレーダー関数一覧に戻る