Suppose I have the following zoo object:
prices.zoo <- read.zoo(data.frame(tm = c(as.POSIXct('2000-05-10 07:50:00'), as.POSIXct('2000-05-10 08:55:00'), as.POSIXct('2000-05-10 09:00:00'), as.POSIXct('2000-05-10 09:10:00'), as.POSIXct('2000-05-10 09:20:00'), as.POSIXct('2000-05-10 09:55:00'), as.POSIXct('2000-05-10 11:35:00')), px = c(10,20,30,40,50,60,70)))
> prices.zoo
2000-05-10 07:50:00 2000-05-10 08:55:00 2000-05-10 09:00:00 2000-05-10 09:10:00 2000-05-10 09:20:00 2000-05-10 09:55:00
10 20 30 40 50 60
2000-05-10 11:35:00
70
How can I calculate sd(px), i.e. historical vol, EVERY 5 MIN using a rolling window of 1-HOUR?
NOTE: I would prefer a base-R implementation using zoo or data.frame