커뮤니티
역사적변동성 구하는 식에서 질문입니다
2006-10-20 19:15:21
1350
글번호 11086
Historical Volatility 라는 이름으로 제공되는 지표와 HisVol 이라는 사용자함수, 그리고 StdDevS 라는 사용자 함수를 사용하여 역사적변동성을 계산하는 지표식을 적어봤습니다.
input : Length(20),ANNUAL(365);
var :SumSqr(0), Avgv(0), Counter(0),StdDevS1(0),Hvol(0);
If Length > 0 Then Begin
Avgv = ma(LOG(Close/Close[1]),Length);
SumSqr = 0;
For Counter = 0 To Length - 1 Begin
SumSqr = SumSqr + (LOG(Close[Counter]/Close[Counter+1])- AvgV) * (LOG(Close[Counter]/Close[Counter+1])- AvgV);
End;
If SumSqr > 0 OR Length - 1 > 0 Then
StdDevS1= SqRt(SumSqr / (Length - 1));
End
Else
StdDevS1= 0;
HVol=100*StdDevS1*Sqrt(ANNUAL/1);
plot1(HVol);
그런데 이렇게하면 Historical Volatility라고 주어진 지표식의 결과값과 다른 값이 나옵니다 어떻게해야 같게 나오나요?
답변 1
예스스탁 예스스탁 답변
2006-10-23 09:44:48
안녕하세요
예스스탁입니다.
현재 내장함수로 제공되는 std와 stddevs는 계산식이 다름으로 편차가 생길수 있습니다.
아래의 std식을 참고하시기 바랍니다.
Input : Price(NumericSeries), Length(NumericSimple);
Var : SumSqrt(0), Avg(0), Counter(0);
If Length != 0 Then Begin
Avg = Ma(Price, Length);
SumSqrt = 0;
For Counter = 0 To Length - 1 Begin
SumSqrt = SumSqrt + (Price[Counter] - Avg) * (Price[Counter] - Avg);
End;
Std = SquareRoot(SumSqrt / Length);
End
Else
Std = 0;
즐거운 하루되세요
> 요한 님이 쓴 글입니다.
> 제목 : 역사적변동성 구하는 식에서 질문입니다
> Historical Volatility 라는 이름으로 제공되는 지표와 HisVol 이라는 사용자함수, 그리고 StdDevS 라는 사용자 함수를 사용하여 역사적변동성을 계산하는 지표식을 적어봤습니다.
input : Length(20),ANNUAL(365);
var :SumSqr(0), Avgv(0), Counter(0),StdDevS1(0),Hvol(0);
If Length > 0 Then Begin
Avgv = ma(LOG(Close/Close[1]),Length);
SumSqr = 0;
For Counter = 0 To Length - 1 Begin
SumSqr = SumSqr + (LOG(Close[Counter]/Close[Counter+1])- AvgV) * (LOG(Close[Counter]/Close[Counter+1])- AvgV);
End;
If SumSqr > 0 OR Length - 1 > 0 Then
StdDevS1= SqRt(SumSqr / (Length - 1));
End
Else
StdDevS1= 0;
HVol=100*StdDevS1*Sqrt(ANNUAL/1);
plot1(HVol);
그런데 이렇게하면 Historical Volatility라고 주어진 지표식의 결과값과 다른 값이 나옵니다 어떻게해야 같게 나오나요?
이전글