Take the 2-minute tour ×
Quantitative Finance Stack Exchange is a question and answer site for finance professionals and academics. It's 100% free, no registration required.

In calculating realized/historical vol for fx spot, my samples/fixings are currently every minute. I need to be able to calculate and plot historical/realized vol on demand from spot prices. Accordingly I store 1-minute fx spot data (on the minute, every minute) for the currency pairs I need. Below is some Javascript-ish pseudo code:

// Looping over the timeseries
LR = Math.log(currentPrice / oldPrice);
... sum up etc ...
vol = 100 * Math.sqrt( ( annualisation/noPoints ) * sumLogReturnsSquared ) 

I'm pretending that there are 260 trading days (annualisation) in the year and given that this is intra-day stuff, the number of points obviously gets increased accordingly based on the fixing frequency (noPoints).

So far so good. However, I want to turn the application into something a little more real-time, without storing historical data every second in my application.

I want to continue to keep my fixings at every minute on the minute, but want to show changes to the realized vol every second. My approach would be to use my fixings as normal to calculate all but the last log return. Then, I would calculate a last and final log return for the window. This last and final log could be calculated after only 17 seconds (instead of 60). Accordingly, I was thinking of using some special weighting by elapsed that reduces its overall contribution to the sum of the Log Returns Squared.

This way I can update realized vol every second, without storing more than minutely data.

Does this approach make sense? If so, how would you weight the last log return?

share|improve this question
No comments/answers? –  jtromans Dec 12 '13 at 9:49

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.