// This pseudo-code function returns stock volatility given observed period
double getVolatility(double[] price)
{
// OBSERVATION = size of price[] plus zero position. Zero position is to calculate return on day 1
for (i = 0 ; i < OBSERVATION + 1 ; i++)
{
muy[i] = log(price[i+1]/price[i]);
meanmuy += muy[i];
}
meanmuy /= OBSERVATION;
for (i = 0 ; i < OBSERVATION ; i++)
{
summuy += (muy[i] - meanmuy)^2;
}
sigma = sqrt(1/(OBSERVATION-1) * summuy) / sqrt(TRADINGDAYSPERYEAR);
return sigma;
}
// Sample code to calculate rolling volatility using the function
for (i = 0 ; i < OBSERVATION - ROLL + 1 ; i++)
{
for (j = 0 ; j < ROLL ; j++)
{
priceSet[j] = price[j+i];
}
volatility[i] = getVolatility(priceSet);
}
Xem đầy đủ bài viết tại http://feedproxy.google.com/~r/TaiTran/~3/MTsbWeltJAw/code-for-stock-volatility.html
No comments:
Post a Comment