Reference

書式1:ref (DATA ARRAY, PERIODS, DEFAULT VALUE)

データ配列の1つ前もしくは1つ後を参照します。ユーザーがチャートに読み込まれた最初のバー(最左)の計算で0(ゼロ)以外を使用する場合、DEFAULT VALUEのパラメータの使用が必要となります。0(ゼロ)を使用する場合は下記の様にDEFAULT VALUEは必要ありません。

公式:_Reference:=Ref(C,−1);

Reference

DL:Reference

書式2:ref (DATA ARRAY, PERIODS)

PERIODSが負数の場合はN期間前を参照します。そのため、式ref(Close, −12)は12期間前の終値を返します。また、12期間Price Rate of Change(Pointsで)はClose−ref(Close,−12)とも書けます。その他にも関数ref()では例えばRelative Strength Index(RSI)インディケーターの計算されたデータ配列の前回の値を返すこともできます。式ref(RSI(14),−12)は14期間RSIの値の12期間前を返します。

計算する必要のないデータ配列(例えばraw price data: Close, Open, High, Low, haClose, haOpen, haHigh, and haLow)を使用しref()で次の値を出すことは可能ですが、計算する必要のあるデータ配列(RSIインディケーター等)ではref()を使用できません。そのため、式ref(RSI(14),+12)は使用できず、必ずNULLを返します。

しかし、価格を使用したデータ配列の場合、ref(RSI(14),+12)と同じ機能を働かせ結果を出せるように再コード化することができます。まず初めにraw price dataを使用し、ref()を計算し、N期間後を参照させます。

例:{通常の RSI Code}
rsi_r:= (Close−ref(Close,−1));
rsi_rs:= Wilders(if(rsi_r>0,rsi_r,0),tpr) / Wilders(if(rsi_r<0,Abs(rsi_r),0),tpr);
RSIndex:= 100−(100/(1+rsi_rs));

{チャートウィンドウ内でRSIを左にN期間移動することを可能にした再構成されたコード}
prc:= ref(Close,+12);
rsi_r:= (prc−ref(prc,−1));
rsi_rs:= Wilders(if(rsi_r>0,rsi_r,0),tpr) / Wilders(if(rsi_r<0,Abs(rsi_r),0),tpr);
RSIndex:= 100−(100/(1+rsi_rs));

新しいコードはref(RSIndex,+12)と同じ意味を持ちます。(VT1.7.6以降では機能します。)