【问题标题】:Problems plotting intraday OHLC data in R with quantmod chartSeries使用 quantmod chartSeries 在 R 中绘制日内 OHLC 数据时出现问题
【发布时间】:2011-11-02 00:12:33
【问题描述】:

我有一个 xts/zoo 对象 ESZ1:

> class(ESZ1) 
[1] "xts" "zoo"

> class(time(ESZ1))
[1] "POSIXt"  "POSIXct"

> colnames(ESZ1)
[1] "ESZ1.Open"    "ESZ1.High"    "ESZ1.Low"     "ESZ1.Close"   "ESZ1.Volume"  "ESZ1.WAP"     "ESZ1.hasGaps" "ESZ1.Count"  

我想使用 quantmod 包中的 chartSeries 函数来绘制它。但是,我收到以下错误:

> chartSeries(ESZ1)
Error in if (on == "years") { : missing value where TRUE/FALSE needed

任何关于问题可能是什么的想法将不胜感激。

补充问题: 有没有关于如何调整 chartSeries() 的轴/边距的文档?目前,我的 y 轴标签在图的右侧边缘被部分切断。我试过使用

mar = ...

在chartSeries的参数列表中,但这并没有改变结果图。

【问题讨论】:

标签: r plot quantmod


【解决方案1】:

问题在于 chartSeries,特别是 axTicksByTime 调用。我会添加一个补丁来解决这个问题,但现在你可以这样做:

chartSeries(ESZ1, major.ticks="minutes")

默认情况下 major.ticks="auto" 并且在自动魔术过程中似乎过早地失败而无法得到正确答案。

【讨论】:

  • 感谢它为我工作。请注意,现在是 2013 年 3 月,我使用的是最新版本。也许我的问题的根源不同?我有每日数据,但 major.ticks="minutes" 有帮助,尽管没有分钟数据。对于同一数据集的截断版本,我没有问题。
【解决方案2】:

您没有提供有关您的 ESZ1 对象的足够信息,但我可以通过尝试绘制 2 分钟或更短的数据来重现该错误。您的列名看起来像是来自 IBrokers 的东西,所以...

> library(IBrokers)
> library(quantmod)
> ibg <- ibgConnect()
> fut <- twsFUT('ES', 'GLOBEX', '201112')
> ESZ1 <- reqHistoricalData(ibg, fut, barSize='1 secs', duration='120 S')
TWS Message: 2 -1 2104 Market data farm connection is OK:usfuture 
TWS Message: 2 -1 2106 HMDS data farm connection is OK:ushmds2a 
waiting for TWS reply on ES .... done.
> chartSeries(ESZ1)
Error in if (on == "years") { : missing value where TRUE/FALSE needed

如果您使用超过 2 分钟的数据,它会起作用。

> ESZ1 <- reqHistoricalData(ibg, fut, barSize='1 secs', duration='121 S')
waiting for TWS reply on ES .... done.
> chartSeries(ESZ1)

> indexClass(ESZ1)
[1] "POSIXct" "POSIXt" 
> colnames(ESZ1)
[1] "ESZ1.Open"    "ESZ1.High"    "ESZ1.Low"     "ESZ1.Close"   "ESZ1.Volume" 
[6] "ESZ1.WAP"     "ESZ1.hasGaps" "ESZ1.Count"  

【讨论】:

  • 我很抱歉没有提供可重现的示例,但是是的,您正确地收集到我正在使用 IBrokers 导入数据。是的,我试图仅绘制由 1 秒条形组成的 1 分钟数据。那不可能吗?我会尝试看看它是否适用于超过 2 分钟的数据。
猜你喜欢
  • 1970-01-01
  • 2013-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多