xts tick data rolling subset

放肆的年华 提交于 2019-12-17 19:54:38

问题


I have created an xts object from historical tick data, sourced from a SQL database. I would like to create subsets of the tick data, for example:

Show daily ticks between 10am and 2:30pm. This would allow me to create specific data sets for specific trade ideas, based on the time of day. The format of my index is as follows:

> index(merged[3567,])
[1] "2011-08-01 13:17:59 SAST"

Could an expert in xts please advise me how I would go about creating these subsets? Any advice would be greatly appreciated.


回答1:


You can do it with time-of-day subsetting:

merged["T10:00/T14:30"]



回答2:


You can use difftime to calculate the hours from the start of the day, e.g.:

diffs <- difftime(time(merged), as.Date(time(merged)), units="hours", tz="SAST")

and then subset with it as a boolean index:

merged[diffs > 10 & diffs < 14.5]

You can also use POSIXlt :

merged[as.POSIXlt(time(merged))$hour > 10]


来源:https://stackoverflow.com/questions/7157174/xts-tick-data-rolling-subset

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!