【问题标题】:Find which sector a stock belongs to查找股票属于哪个部门
【发布时间】:2013-05-02 04:50:19
【问题描述】:

给定 S&P500 中的股票,我如何找到每只股票属于哪个板块,例如金融、能源....、使用 R 包还是其他来源?

【问题讨论】:

  • 你可以从维基百科获取数据:http://en.wikipedia.org/wiki/Special:Export/List_of_S%26P_500_companies(不过你需要解析文件)。
  • 谢谢你们!那时我将只使用 wiki。这可能比尝试查找特定功能要快..

标签: r


【解决方案1】:

“部门”一词本身就是一个模棱两可的词。一个数据提供者称为“消费者服务”的东西可能被另一个称为“餐厅”。也就是说,TTR 提供了一个名为 stockSymbols 的函数,该函数返回一些信息,包括来自纳斯达克的约 6400 支 NMS 股票的部门信息。

library(TTR)
ss <- stockSymbols()
#Fetching AMEX symbols...
#Fetching NASDAQ symbols...
#Fetching NYSE symbols...
head(ss)
#  Symbol                      Name LastSale MarketCap IPOyear           Sector                        Industry Exchange
#1   AA-P                Alcoa Inc.   92.300         0      NA    Capital Goods              Metal Fabrications     AMEX
#2    AAU    Almaden Minerals, Ltd.    1.620  97228060      NA Basic Industries                 Precious Metals     AMEX
#3    ACU  Acme United Corporation.   12.984  40798351    1988    Capital Goods Industrial Machinery/Components     AMEX
#4    ACY         AeroCentury Corp.   20.280  31297252      NA       Technology Diversified Commercial Services     AMEX
#5   ADGE   American DG Energy Inc.    1.720  83404061      NA           Energy     Electric Utilities: Central     AMEX
#6    ADK Adcare Health Systems Inc    5.800  85018494      NA      Health Care     Hospital/Nursing Management     AMEX

如果你只想要标准普尔 500 指数的股票,你可以作弊并使用 SPY 的股票(或者有很多地方可以找到标准普尔 500 指数的股票,包括标准普尔网站)

#install.packages("qmao", repos="http://r-forge.r-project.org")
library(qmao)
spyh <- getHoldings("SPY", auto.assign=FALSE)
head(ss[ss$Symbol %in% rownames(spyh), ])
#    Symbol                            Name LastSale    MarketCap IPOyear        Sector
#455   AAPL                      Apple Inc.   452.97 425179837530    1980    Technology
#490   ADBE      Adobe Systems Incorporated    44.02  22095230291    1986    Technology
#493    ADI            Analog Devices, Inc.    46.79  14317018779      NA    Technology
#495    ADP Automatic Data Processing, Inc.    70.03  33980125863      NA    Technology
#500   ADSK                  Autodesk, Inc.    39.75   8896050000      NA    Technology
#535   AKAM       Akamai Technologies, Inc.    46.70   8333728621    1999 Miscellaneous
#                                   Industry Exchange
#455                  Computer Manufacturing   NASDAQ
#490 Computer Software: Prepackaged Software   NASDAQ
#493                          Semiconductors   NASDAQ
#495                            EDP Services   NASDAQ
#500 Computer Software: Prepackaged Software   NASDAQ
#535                       Business Services   NASDAQ

【讨论】:

  • 实际上,如果你使用getHoldings()(当你给它“SPY”时它调用getHoldings.SPDR),那么你甚至不需要stockSymbols()。从上面的代码中,您可以看到spyh 实际上具有所有股票的“Sector”值。事实上,您可以将stockSymbols() 返回的扇区值与getHoldings.SPDR() 返回的值进行比较,以了解我对术语“扇区”不明确的含义。
  • 感谢您的代码,这正是我想要的。但是我在spyh &lt;- getHoldings("SPY", auto.assign=FALSE) 之后收到错误Error in out[[1L]] : subscript out of bounds
  • github.com/systematicinvestor/SIT/blob/master/R/data.r 的 sp500.components() 中得到了我需要的东西
  • GSee,我在运行上面的命令时也收到了Error in out[[1L]],并发出警告:In readLines(tmp, 1) : line 1 appears to contain an embedded nul。如果我将auto.assign 转为TRUE,错误消失但警告仍然存在。而SPY.h 是一个 0 列 512 行的数据框。我希望你能帮忙。
  • @flodel 感谢您的报告。我刚刚修复了getHoldings.SPDR()(如果符号是“SPY”,这就是getHoldings() 发送的内容)。不幸的是,所有这些 getHoldings.*() 函数都依赖于基金家族的网站并没有改变。 iShares网站给我最大的麻烦,改了很多次。我曾经每隔一两个月打补丁以跟上进度,但后来他们更改了网站,因此很难找到基于 Symbol 的馆藏文件。我希望我有时间来维护我写它们时所拥有的这些。我很乐意接受补丁。 ;-)
猜你喜欢
  • 2015-12-30
  • 2020-10-06
  • 2012-02-14
  • 2016-09-09
  • 2020-03-29
  • 1970-01-01
  • 2020-10-12
  • 1970-01-01
  • 2016-12-01
相关资源
最近更新 更多