On the contrary, you show amazingly close agreement, especially since you scale up using calendar days rather than trading days: The difference is less than 1.9 %, what is insignificant for volatility data. The difference can be the result of different data source or interpretation.
1. You have too microscopic a view of volatility. Volatility is only useful as a general direction indicator. 2. The best one can hope for is to detect a general trend and for certain stocks at certain times an increase in volatility suggesting that the price bottom might be near. It doesn't work nearly as well for peaks. However, sometimes the increase in volatility coincides with a peak or the price bottom or a trading range coincides with a low in volatility. 3. Forex on occasion works well in determining bottoms and occasionally peaks. However, just when you think you nailed it goes out of whack again. 4. In general you get best results by using small volatility periods (10 or less) rather than the 30 and more periods often used. 5. The best use is when comparing volatilities of two stocks or financial instruments. 6. You should normalize the volatility with the sqr. root of (N2/N1) where N1 and N2 are trading days not calendar days. 7. Below some comparisons between calendar and trading day Volatilities. Title = EncodeColor(4)+ _DEFAULT_NAME()+"; "+EncodeColor(1) + StrFormat("{{NAME}} - {{INTERVAL}}; {{DATE}}; O=%g, H=%g, L=%g, C=%g (%.1f%%) {{VALUES}}", O, H, L, C, SelectedValue( ROC( C, 1 ) ) ); HistVolPer=Param("HistVolPer",10,2,100,1); HistVol= StDev(log(C/Ref(C,-1)),HistVolPer)*sqrt(365); Plot(HistVol,"Hist.Volatility("+WriteVal(HistVolPer,1.0)+"), calendar days",1,5);//calendar days HistVol2= StDev(log(C/Ref(C,-1)),HistVolPer)*sqrt(252); Plot(HistVol2,"Hist.Volatility("+WriteVal(HistVolPer,1.0)+"), trading days",colorGreen,5);// trading days Plot(C,"C",1,32768|64); From: amibroker@yahoogroups.com [mailto:amibro...@yahoogroups.com] On Behalf Of Potato Soup Sent: Friday, November 13, 2009 9:27 PM To: amibroker@yahoogroups.com Subject: [amibroker] Trying to plot historical volatility with AFL I'm trying to plot the 30 day historical volatility of the S&P 500, using the following AFL on a daily chart with around 2 years of end of day prices for the S&P 500: Plot(StDev(Close, 30),"Historical Volatility", colorOrange,styleLine); However when I look at the values, they appear to be a bit off to what I see when I look online here: http://www.ivolatility.com/options.j?ticker=SPX:CBOE <http://www.ivolatility.com/options.j?ticker=SPX:CBOE&R=1&period=12&chart=2& vct> &R=1&period=12&chart=2&vct= For today they have 18.99, where as my chart shows 19.348. All my other values going back further don't match their chart either. Any ideas, are they calculating it differently than just a simple standard deviation? No virus found in this incoming message. Checked by AVG - www.avg.com Version: 8.5.425 / Virus Database: 270.14.63/2500 - Release Date: 11/13/09 07:54:00