使用TTR包来提取HLOC数据

时间:2012-12-04 22:48:56

标签: r

对于R和TTR来说是非常新的。我已经创建了我认为是R中TTR包检索到的所有股票代码的向量,其中包含以下内容:

stockDataFrame <- stockSymbols()
symbs <- stockDataFrame[["Symbol"]]

所以我在变量“symbs”中得到了所有符号。如何在此向量的每个元素上应用TTR函数“getYahooData”,特别是因为该函数不仅需要股票代码,还需要start,end,freq,type,adjust和quiet参数值?

2 个答案:

答案 0 :(得分:3)

只需使用quantmod即可为您加载TTR。而且你不会伤害@JoshuaUlrich的感情,因为他也对quantmod项目有所了解。查看网站上的示例:http://www.quantmod.com/

getSymbols是一种“通用”函数,它具有针对不同数据源的“方法”。默认情况下,src=yahoo表示调用getSymbols.yahoo。这可以处理符号的矢量。

默认情况下auto.assign=TRUE表示返回的数据在.GlobalEnv中分配(默认情况下),并且返回分配的对象的名称。< / p>

> library(quantmod)
> getSymbols(symbs[1:5])
[1] "AA-P" "AAU"  "ACU"  "ACY"  "ADGE"

> head(ACY)
           ACY.Open ACY.High ACY.Low ACY.Close ACY.Volume ACY.Adjusted
2007-01-03     6.58     7.15    6.58      6.99      31700         6.99
2007-01-04     7.24     7.35    7.15      7.35      18600         7.35
2007-01-05     7.39     7.55    7.25      7.45      15200         7.45 
2007-01-08     7.32     7.35    7.01      7.26      16100         7.26
2007-01-09     7.15     7.50    7.15      7.16      12100         7.16
2007-01-10     7.30     7.45    7.21      7.24      13700         7.24

如果你真的不想下载6,000多只股票的数据,那么有一个方便的替代方案:attachSymbols通过延迟评估使所有这些符号按需提供。第一次使用Symbol时,它将被下载并缓存,以便下次使用它时,它将从内存中读取(或根据您使用attachSymbols时使用的参数来读取磁盘。)

> attachSymbols()
> tail(GS)
           GS.Open GS.High GS.Low GS.Close GS.Volume GS.Adjusted
2012-11-26  119.16  120.95 118.50   120.94   3371000      120.43
2012-11-27  120.50  121.34 118.38   118.41   3875200      117.91
2012-11-28  117.25  119.33 116.57   119.33   3811200      119.33
2012-11-29  120.00  120.45 118.52   118.73   2980800      118.73
2012-11-30  117.96  119.44 117.69   117.79   4264300      117.79
2012-12-03  118.42  119.64 118.07   118.40   3613900      118.40

答案 1 :(得分:1)

您可以使用plyr包循环遍历符号列表。

我不确定getYahooData是否可以为所有符号加载数据。我认为使用TTR应该存在更好的方法。但在这里我展示了 plyr 包的使用。这是一种通用的方法。

我打电话给llply获取两个日期之间前6个市场符号的所有数据(你可以添加其他函数参数,..)

    library(plyr)
    ll <- llply(symbs[1:6],getYahooData ,start=20081201, end=20081207)

$`AA-P`
               Open     High      Low    Close   Volume Unadj.Close Div Split Adj.Div
2008-12-01 49.39233 49.39233 49.39233 49.39233 243.9650       60.25  NA    NA      NA
2008-12-02 49.39233 49.39233 49.39233 49.39233 243.9650       60.25  NA    NA      NA
2008-12-03 49.39233 49.39233 49.39233 49.39233   0.0000       60.25  NA    NA      NA
2008-12-04 49.80223 51.64676 49.80223 51.64676 487.9300       63.00  NA    NA      NA
2008-12-05 49.79403 49.79403 49.79403 49.79403 121.9825       60.74  NA    NA      NA

$AAU
           Open High  Low Close Volume
2008-12-01 0.49 0.53 0.49  0.50  57100
2008-12-02 0.52 0.54 0.51  0.52  33400
2008-12-03 0.50 0.54 0.49  0.49  52800
2008-12-04 0.49 0.49 0.44  0.44  62400
2008-12-05 0.44 0.48 0.42  0.47  87600

$ACU
               Open     High      Low    Close   Volume Unadj.Close Div Split Adj.Div
2008-12-01 6.168596 6.168596 5.823880 5.823880 3196.838        6.42  NA    NA      NA
2008-12-02 5.987166 6.077881 5.814809 5.987166 8157.448        6.60  NA    NA      NA
2008-12-03 6.068810 6.068810 5.896452 5.987166 1984.244        6.60  NA    NA      NA