开始使用免费开始使用

将不规则的日内数据变为规则序列

之前您已学习如何从不规则的日度数据创建规则的日度序列。现在,您将从一段不规则的序列构建规则的日内数据。

日内金融数据通常不会覆盖完整的 24 小时。大多数市场在一天中的一部分时间休市。本练习假设市场在周一至周五的 9AM 开盘、4PM 收盘。

您的数据在开盘和/或收盘时刻可能没有精确的观测值。因此,您无法像处理日度数据那样使用 start()end()。您需要显式指定开始和结束的日期时间来创建这段规则序列。

规则的日期时间序列会包含市场休市的时段,但您可以使用 xts 的按时间(time-of-day)子集功能,只提取市场开盘期间的时段。

本练习是课程的一部分

在 R 中导入与管理金融数据

查看课程

练习说明

  • 补全命令,在周一 09:00 与周五 16:00 之间创建一个间隔 30 分钟的规则日期时间序列。
  • xorder.by 赋值,创建一个零宽度的 xts 对象。
  • 通过合并 irregular_xtsregular_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[___]
编辑并运行代码