quantmod :: chartSeries不绘制所有组件

时间:2011-02-27 13:49:58

标签: r quantmod

我已经阅读了很多R文档,但我找不到任何我认可的答案。我的额头因敲打桌子而感到酸痛。 ;)

这是library(quantmod)特有的,因为这是我想要学习的东西,但我想这也是一个普遍的问题。

R 2.12.2 GUI 1.36 Leopard build 64-bit(5691) Mac OS X 10.6.6

我试图在http://www.quantmod.com/examples/intro/

复制quantmod示例的行为

从GUI开始,一切都很好 - 下面会生成一个类似http://www.quantmod.com/examples/intro/AAPL-full.png的图表:

> require(TTR)
> getSymbols("AAPL")
[1] "AAPL"
> chartSeries(AAPL)
> addMACD()
> addBBands()

但是,当我source()来自GUI的.R文件时,我只得到

的图表
> chartSeries(AAPL)

也就是说,只有价格图表和它下面的交易量表。此外,如果我从命令行尝试以下操作,它可以按预期工作。

$ R --no-save `<`quantmod.R

生成一个名为Rplots.pdf的文件,其中包含三个页面。第三页包含价格+成交量+ MACD +布林带。

quantmod做什么让生活变得如此困难?或者我不明白哪些是显而易见的,让生活变得如此困难?

我需要做些什么才能让源代码脚本能够将addMACD()addBBands()函数用于图表?

作为一个附带问题,addMACD()addBBands()生成的数据存储在哪里?

1 个答案:

答案 0 :(得分:6)

在阅读了quantmod文档之后,在敲打桌面之前,尝试搜索R-SIG-Finance邮件列表档案(一种方式是通过rseek.org上的“支持列表”选项卡)。这个问题在名单上出现了好几次。

要回答您的主要问题,请参阅?TA的“注释”部分:

 Calling any of the above methods from within a function or script
 will generally require them to be wrapped in a ‘plot’ call as they
 rely on the context of the call to initiate the actual charting
 addition.

因此,您应该将示例更改为:

> require(TTR)
> getSymbols("AAPL")
[1] "AAPL"
> chartSeries(AAPL)
> plot(addMACD())
> plot(addBBands())

要回答您的附带问题,请参阅?chartSeries的“值”部分,以及help("chob-class")help("chobTA-class")