将不规则的日内数据变为规则序列
之前您已学习如何从不规则的日度数据创建规则的日度序列。现在,您将从一段不规则的序列构建规则的日内数据。
日内金融数据通常不会覆盖完整的 24 小时。大多数市场在一天中的一部分时间休市。本练习假设市场在周一至周五的 9AM 开盘、4PM 收盘。
您的数据在开盘和/或收盘时刻可能没有精确的观测值。因此,您无法像处理日度数据那样使用 start() 和 end()。您需要显式指定开始和结束的日期时间来创建这段规则序列。
规则的日期时间序列会包含市场休市的时段,但您可以使用 xts 的按时间(time-of-day)子集功能,只提取市场开盘期间的时段。
本练习是课程的一部分
在 R 中导入与管理金融数据
练习说明
- 补全命令,在周一 09:00 与周五 16:00 之间创建一个间隔 30 分钟的规则日期时间序列。
- 为
x和order.by赋值,创建一个零宽度的 xts 对象。 - 通过合并
irregular_xts和regular_xts创建merged_xts。使用fill参数,并用na.locf()将NA替换为其前一个值。 - 使用 xts 的按时间(time-of-day)子集功能,提取每天 9AM 到 4PM 的观测。将结果赋给
trade_day。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Create a regular date-time sequence
regular_index <- seq(as.POSIXct("2010-01-04 __:__"), as.POSIXct("2010-01-08 __:__"), by = "30 min")
# Create a zero-width xts object
regular_xts <- xts(x = ___, order.by = ___)
# Merge irregular_xts and regular_xts, filling NA with their previous value
merged_xts <- merge(___, ___, fill = ___)
# Subset to trading day (09:00-16:00)
trade_day <- merged_xts[___]