ボラティリティ計測に関して、シンプルで良い方法を発見しました。日本テクニカルアナリスト協会の2009年の記念論文集、林則行氏の論文からの引用です。特筆すべきは、誰もが考えつきそうなインディケーターですが、これまで誰も具体的に提示していなかったということです。コロンブスの卵じゃないですが、これはうまくいきそうな値打ちあるインディケーターだと思います。
陽線の場合
一日の値動き合計=|昨日の終値-当日の始値|+|始値-高値|+レンジ+|安値-終値|
陰線の場合
一日の値動き合計=|昨日の終値-当日の始値|+|始値-安値|+レンジ+|高値-終値|
ローソク足ボラティリティの定義
ボラティリティ(N日)=N日間の「一日の値動き合計」の平均÷N日間の終値の平均値×100
ちなみに、陽線の場合と陰線の場合の差は、
|始値-高値|+|安値-終値|-|始値-安値|-|高値-終値|
となり、絶対値を取ると、
= 高値-始値+終値-安値-始値+安値-高値+終値
= -始値+終値-始値+終値
=(終値-始値)×2
となり、実体の2倍となる。
参考までに、Tradestation 2000iのコードを添付しておきます。
{*******************************************************************
Description: Candle Volatility Daily
Provided By: ●●●
********************************************************************}
Inputs: Length(NumericSimple);
Vars: CloseVD(0),DailyVD(0),SumCloseVD(0),SumDailyVD(0);
If CurrentBar >= 1 AND Length <> 0 Then Begin
If CurrentBar = 1 Then Begin
If OpenD(1)<CloseD(1) then Begin
DailyVD = AbsValue(CloseD(2)-OpenD(1))+(HighD(1)-OpenD(1))+(HighD(1)-LowD(1))+(CloseD(1)-LowD(1));
End Else If OpenD(1)>CloseD(1) then Begin
DailyVD = AbsValue(CloseD(2)-OpenD(1))+(HighD(1)-CloseD(1))+(HighD(1)-LowD(1))+(OpenD(1)-LowD(1));
End Else Begin
DailyVD = AbsValue(CloseD(2)-OpenD(1))+(HighD(1)-LowD(1))*2;
End;
SumDailyVD = DailyVD;
SumCloseVD = CloseD(0);
CandleVD = SumDailyVD/SumCloseVD*100;
End Else If Date[1] < Date Then Begin
If OpenD(1)<CloseD(1) then Begin
DailyVD = AbsValue(CloseD(2)-OpenD(1))+(HighD(1)-OpenD(1))+(HighD(1)-LowD(1))+(CloseD(1)-LowD(1));
End Else If OpenD(1)>CloseD(1) then Begin
DailyVD = AbsValue(CloseD(2)-OpenD(1))+(HighD(1)-CloseD(1))+(HighD(1)-LowD(1))+(OpenD(1)-LowD(1));
End Else Begin
DailyVD = AbsValue(CloseD(2)-OpenD(1))+(HighD(1)-LowD(1))*2;
End;
SumDailyVD=0;
SumCloseVD=0;
For Value1 = 1 to Length Begin
SumDailyVD = DailyVD + SumDailyVD;
SumCloseVD = CloseD(1) + SumCloseVD;
End;
CandleVD = SumDailyVD/SumCloseVD*100;
End;
End;
コメントを残す