변동성 식은
일정기간 주가 변동성 = 일정기간 주가 표준 편차/일정기간 주가 평균.
---------
이것 저것 찾아보고 다음과 같이 만들어보았습니다.
function volatility(stock) {
if (stock.getAdjClose()===0) return -1;
var std = 0
for (var i =0; i < 251; i++) {
var deviation = stock.getAdjClose(i) - stock.getMA(252);
std += deviation * deviation;
}
return Math.sqrt(std/251);
}
그런데 막상 돌려보니 시간 초과로 강제 종료되네요. 종목 2000개의 일년치 데이타를 모두 계산하려니 부하가 많이 걸리기 때문일까요?
여하튼 참고하시길
사소한거지만... stock.getMA(252)는 변수 i와 상관없으니 for문 밖에 있으면 계산이 조금이라도 빨라지지 않을까요... 아래처럼요 var std = 0 var ma252 = stock.getMA(252); for (var i =0; i < 251; i++) { var deviation = stock.getAdjClose(i) - ma252; std += deviation * deviation; }