R 添加打开列和关闭列的步骤

R 添加打开列和关闭列的步骤,r,xts,quantitative-finance,R,Xts,Quantitative Finance,我有一个data.frame对象,其中包含OHLC数据: head(data,3) Timestamp Open High Low Close Vol 2016-02-05 13:45:00 1161.9 1162.4 1161.7 1161.8 592 2016-02-05 13:50:00 1161.8 1163.2 1161.7 1162.5 643 2016-02-05 13:55:00 1162.5 1164.7 1162.1 1164.5 1

我有一个
data.frame
对象,其中包含OHLC数据:

head(data,3)
Timestamp           Open   High   Low    Close   Vol
2016-02-05 13:45:00 1161.9 1162.4 1161.7 1161.8  592
2016-02-05 13:50:00 1161.8 1163.2 1161.7 1162.5  643
2016-02-05 13:55:00 1162.5 1164.7 1162.1 1164.5 1072
然后,我创建另一个data.frame,提取高col和低col:

x <- data[,c("High","Low")]
然后转换为每小时:

x <- xts::to.hourly(x, indexAt='startof')  
“打开”和“关闭”列中的值似乎来自
data
而不是
x
,但当我没有将
data
传递到该函数中时,它是如何获得这些值的


显然,这里有一项简单的工作,即删除(再次)打开和关闭列后的
to.hourly
函数,但这是预期的行为,还是我遗漏了一些非常简单的内容?

输出与预期行为一样有意义。你把5分钟的酒吧减少到了小时酒吧
to.hourly
将根据您的输入,而不仅仅是小时HL时间序列,尝试以较低的频率制作OHLC时间序列

to.hourly
是包
xts
中的
to.period
的包装。根据
至.period
的文档:

将OHLC或单变量对象转换为指定的周期性下限 而不是给定的数据对象。例如,将每日系列转换为 每月系列,或从每月系列到每年系列,或一分钟 从系列到每小时系列

结果将包含给定时段的开盘和收盘,如下所示: 以及新时期的最大值和最小值,反映在 分别为新高和新低。


您没有显示13:55:00之后的5分钟酒吧,因此不清楚1167.2在14:00:00每小时酒吧开盘是否有意义,因为您不知道,仅使用HL数据,价格是高还是低(用作开盘价的代理)。您必须查看源代码,以了解在生成这些每小时酒吧开盘价(仅考虑HL酒吧数据,从逻辑上看不出这些开盘价是正确的还是错误的)过程中所做的近似计算。如果您正在处理日内条形图数据,至少了解HLC(而不仅仅是HL)会有所帮助。

不确定为什么要进行编辑,我现在在将
xts::
添加到每小时转换中时出错,因此我将坚持我原来的方法。我从一开始就在使用XTS对象(为了便于阅读,在这里的示例中添加了“Timestamp”col名称)。无论如何,在进一步查看数据之后,结果表明它只是返回我传入的“High”列的OHLC。
x <- xts::to.hourly(x, indexAt='startof')  
head(x,3)
Timestamp           x.Open x.High x.Low   x.Close
2016-02-05 13:45:00 1162.4 1164.7 1162.4  1164.7
2016-02-05 14:00:00 1167.2 1176.7 1167.1  1176.7
2016-02-05 15:00:00 1176.3 1176.3 1174.9  1176.2