首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TTR包提取HLOC数据

使用TTR包提取HLOC数据
EN

Stack Overflow用户
提问于 2012-12-04 22:48:56
回答 2查看 496关注 0票数 2

对R和TTR来说都是很新的。我已经创建了一个向量,它是TTR包在R中检索到的所有股票符号的向量,如下所示:

代码语言:javascript
复制
stockDataFrame <- stockSymbols()
symbs <- stockDataFrame[["Symbol"]]

所以我得到了变量“符号”中的所有符号。如何将TTR函数"getYahooData“应用于该向量的每个元素,特别是该函数不仅需要股票符号,而且还需要开始、结束、freq、类型、调整和安静参数值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-04 23:17:55

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

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

我调用llply来获取两个日期之间的前6个市场符号的所有数据(您可以添加其他函数参数..)

代码语言:javascript
复制
    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
票数 1
EN

Stack Overflow用户

发布于 2012-12-04 23:42:33

只需使用quantmod,它将为您加载TTR。你不会伤害@JoshuaUlrich的感情,因为他也是量化项目的开发者。查看网站上的示例:http://www.quantmod.com/

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

默认情况下,auto.assign=TRUE意味着返回的数据在.GlobalEnv中分配(默认情况下),并且返回分配对象的名称。

代码语言:javascript
复制
> 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通过懒惰的评估按需提供所有这些符号。第一次使用符号时,它将被下载并缓存,以便下次使用它时将从内存(或磁盘中读取)(取决于您在attachSymbols中使用的参数)。

代码语言:javascript
复制
> 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
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13713373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档