[R-SIG-Finance] [R-sig-finance] Aggregating tick by tick timeSeries [NC]

anass.mouhsine at sgcib.com anass.mouhsine at sgcib.com
Tue Mar 25 09:47:19 CET 2008


thanks Jeff for your detailed answer.
It worked just fine.

regards,
Anass





|------------------------------                                            
|            jeff.a.ryan at gmail                                             
|            .com                                                          
|                                                                          
|            03/21/2008 16:53                                              
|                                                                          
                                                                           
                                                                           
                                                                        To 
                                               Anass                       
                                               MOUHSINE/fr/socgen at socgen   
                                                                        cc 
                                               r-sig-finance at stat.math.eth 
                                               z.ch                        
                                                                   Subject 
                                               Re: [R-SIG-Finance]         
                                               [R-sig-finance] Aggregating 
                                               tick by tick timeSeries     
                                               [C1]                        
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hi Anass,

My apologies for the delayed response, have been extra short on time
the last few weeks.

You can't get back to a timeSeries object using reclass() because
you've created an entirely new object - which is no longer of class
`xts`.  reclass() provides
class-conversion of an `xts` object only.  This should be possible in
the future though, once the period.apply family of functions are fully
incorporated into xts -- but it isn't now.

You didn't supply much data, but I think these randomly generated
numbers should provide a sufficient example of how to create a *new*
timeSeries object.

> test.xts <-
xts(matrix(c(runif(3400),floor(runif(3400,200,500))),nc=2),(as.POSIXct('2005-04-08
 10:55:16') + 1:34000))

> ep <- endpoints(test.xts,'hours')

> VWAS <-
period.apply(test.xts[,1],ep,sum)/period.apply(test.xts[,2],ep,sum)

> timeSeries(VWAS,index(test.xts)[ep[-1]])
                              TS.1
2005-04-08 10:59:59 0.001369137492
2005-04-08 11:59:59 0.001432987385
2005-04-08 12:59:59 0.001427308452
2005-04-08 13:59:59 0.001428589601
2005-04-08 14:59:59 0.001430663890
2005-04-08 15:59:59 0.001425880024
2005-04-08 16:59:59 0.001423586660
2005-04-08 17:59:59 0.001427435076
2005-04-08 18:59:59 0.001434531036
2005-04-08 19:59:59 0.001433269336
2005-04-08 20:21:56 0.001420547518
>

an alternate approach which maintains the underlying zoo structure
(this moved from quantmod, and hasn't been updated to make use of xts)
AND is 5x faster than the pure R period.apply...

> VWAS2 <-
xts:::period.sum(test.xts[,1],ep)/xts:::period.sum(test.xts[,2],ep)
> as.timeSeries(VWAS2)
                                 x
2005-04-08 10:59:59 0.001369137492
2005-04-08 11:59:59 0.001432987385
2005-04-08 12:59:59 0.001427308452
2005-04-08 13:59:59 0.001428589601
2005-04-08 14:59:59 0.001430663890
2005-04-08 15:59:59 0.001425880024
2005-04-08 16:59:59 0.001423586660
2005-04-08 17:59:59 0.001427435076
2005-04-08 18:59:59 0.001434531036
2005-04-08 19:59:59 0.001433269336
2005-04-08 20:21:56 0.001420547518

timeSeries by its nature stores all 'index' values for the date/time
as a character string, so the timeDate properties will persist if you
need those - as that is a separate conversion. (thanks to Yohan from
Rmetrics for pointing that out to me.)

As far as a more direct way to do the calculation - I don't think
there is.  I am sure there are many other ways to handle this though.

Jeff (with input from Josh)

*************************************************************************
This message and any attachments (the "message") are con...{{dropped:10}}



More information about the R-SIG-Finance mailing list