커뮤니티

역사적변동성 구하는 식에서 질문입니다

프로필 이미지
요한
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라고 주어진 지표식의 결과값과 다른 값이 나옵니다 어떻게해야 같게 나오나요?