An embedded and charset-unspecified text was scrubbed... Name: not available URL: <https://stat.ethz.ch/pipermail/r-sig-finance/attachments/20120915/78bb123b/attachment.pl>
Aggregating tick-by-tick data to seconds
4 messages · Costas Vorlow, R. Michael Weylandt, G See +1 more
If you have a column labelled "Volume", to.period will sum it: e.g., library(xts) data(sample_matrix) s <- as.xts(sample_matrix) s <- cbind(s, Volume = round(exp(runif(NROW(s),2,3))*10000)) head(s) head(to.weekly(s)) Cheers, Michael
On Sat, Sep 15, 2012 at 4:57 PM, Costas Vorlow <costas.vorlow at gmail.com> wrote:
Hello, I have the following data (xts) (last two columns refer to up and down volumes).
head(test,20)
[,1] [,2] [,3]
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 400 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 100 0
2012-09-12 16:30:00 144.39 900 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 103 0
2012-09-12 16:30:00 144.39 197 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 400 0
2012-09-12 16:30:00 144.39 100 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 103 0
2012-09-12 16:30:00 144.38 0 100
I can use the to.period to aggregate the above data to seconds
test.Open test.High test.Low test.Close
2012-09-12 16:30:00 144.39 144.47 144.37 144.38
2012-09-12 16:31:00 144.39 144.40 144.33 144.37
2012-09-12 16:32:00 144.37 144.45 144.37 144.45
2012-09-12 16:33:00 144.45 144.47 144.42 144.47
but I am not sure how to do this for the volume columns. I would need to
retrieve the volume sums per second.
Is this functionality built into the xts package? Is there any other
function that could be used to do something like that?
Thanks & best regards,
Costas
_______________
[[alternative HTML version deleted]]
_______________________________________________
R-SIG-Finance at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.
You can use `period.apply` (along with `endpoints()`) to apply any
function you like over non-overlapping time periods.
In this case, you want to sum columns 2 and 3 separately, so use
`period.apply()` with `FUN=colSums` on just the 2nd and 3rd columns.
period.apply(test[, 2:3], endpoints(test, 'secs'), FUN=colSums)
Then you can merge that with the results of `to.period`
> cbind(to.period(test[, 1], name="test"), period.apply(test[,
-1], endpoints(test, 'secs'), FUN=colSums))
test.Open test.High test.Low
test.Close up down
2012-09-12 16:30:00 144.39 144.39 144.38 144.38 5903 100
You could also use `period.sum()` on each column separately.
HTH,
Garrett
On Sat, Sep 15, 2012 at 10:57 AM, Costas Vorlow <costas.vorlow at gmail.com> wrote:
Hello, I have the following data (xts) (last two columns refer to up and down volumes).
head(test,20)
[,1] [,2] [,3]
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 400 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 100 0
2012-09-12 16:30:00 144.39 900 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 103 0
2012-09-12 16:30:00 144.39 197 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 400 0
2012-09-12 16:30:00 144.39 100 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 103 0
2012-09-12 16:30:00 144.38 0 100
I can use the to.period to aggregate the above data to seconds
test.Open test.High test.Low test.Close
2012-09-12 16:30:00 144.39 144.47 144.37 144.38
2012-09-12 16:31:00 144.39 144.40 144.33 144.37
2012-09-12 16:32:00 144.37 144.45 144.37 144.45
2012-09-12 16:33:00 144.45 144.47 144.42 144.47
but I am not sure how to do this for the volume columns. I would need to
retrieve the volume sums per second.
Is this functionality built into the xts package? Is there any other
function that could be used to do something like that?
Thanks & best regards,
Costas
_______________
[[alternative HTML version deleted]]
_______________________________________________
R-SIG-Finance at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-sig-finance
-- Subscriber-posting only. If you want to post, subscribe first.
-- Also note that this is not the r-help list where general R questions should go.
?period.sum HTH Jeff Jeffrey Ryan | Founder | jeffrey.ryan at lemnica.com www.lemnica.com
On Sep 15, 2012, at 10:57 AM, Costas Vorlow <costas.vorlow at gmail.com> wrote:
Hello, I have the following data (xts) (last two columns refer to up and down volumes).
head(test,20)
[,1] [,2] [,3]
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 400 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 100 0
2012-09-12 16:30:00 144.39 900 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 103 0
2012-09-12 16:30:00 144.39 197 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 400 0
2012-09-12 16:30:00 144.39 100 0
2012-09-12 16:30:00 144.39 500 0
2012-09-12 16:30:00 144.39 300 0
2012-09-12 16:30:00 144.39 200 0
2012-09-12 16:30:00 144.39 103 0
2012-09-12 16:30:00 144.38 0 100
I can use the to.period to aggregate the above data to seconds
test.Open test.High test.Low test.Close
2012-09-12 16:30:00 144.39 144.47 144.37 144.38
2012-09-12 16:31:00 144.39 144.40 144.33 144.37
2012-09-12 16:32:00 144.37 144.45 144.37 144.45
2012-09-12 16:33:00 144.45 144.47 144.42 144.47
but I am not sure how to do this for the volume columns. I would need to
retrieve the volume sums per second.
Is this functionality built into the xts package? Is there any other
function that could be used to do something like that?
Thanks & best regards,
Costas
_______________ [[alternative HTML version deleted]] _______________________________________________ R-SIG-Finance at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-finance -- Subscriber-posting only. If you want to post, subscribe first. -- Also note that this is not the r-help list where general R questions should go.