首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >历史股票数据

历史股票数据
EN

Stack Overflow用户
提问于 2019-06-12 05:13:45
回答 2查看 191关注 0票数 0

我想得到所有标准普尔500指数股票在特定日期的收盘价。

我一直在寻找答案,它们分为以下几个方面:

  1. 下载标准普尔特定股票的开始和结束日期-回报超过收盘价,这将需要一个线连接所有的股票,并减慢它的速度。
  2. 下载标准普尔的所有股票,包括开始日期和结束日期-总是得到“错误的下载”

例如:

代码语言:javascript
复制
library(BatchGetSymbols)

first.date <- Sys.Date() - 160
last.date <- Sys.Date() - 1

all_stocks <- GetSP500Stocks()
tickers <- all_stocks$tickers

show <- BatchGetSymbols(tickers = tickers,
                     first.date = first.date,
                     last.date = last.date)

它总是返回:

代码语言:javascript
复制
"Adobe Systems Inc | yahoo (7|505) | Not Cached

- Error in download..

诸若此类。

我只想要三列--滴答键,first.date和last.date

感谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-12 06:56:29

使用tickers作为all_stocks$company而不是all_stocks$tickers

代码语言:javascript
复制
library(BatchGetSymbols)

tickers <- all_stocks$company
show <- BatchGetSymbols(tickers = tickers,
                        first.date = first.date,last.date = last.date)

不过,在我看来,带有代码信息的列被指定为company,而带有公司名称的列被命名为tickers

票数 1
EN

Stack Overflow用户

发布于 2019-07-12 13:11:57

你可以在这里找到标准普尔500指数的成分。

companies

代码语言:javascript
复制
library(quantmod)
e <- new.env()
getSymbols("MMM;ABT;ABBV;ABMD;ACN;
ATVI;ADBE;AMD;AAP;AES;AMG;AFL;A;APD;
AKAM;ALK;ALB;ARE;ALXN;ALGN;ALLE;AGN;ADS;
LNT;ALL;GOOGL", env = e)
pframe <- do.call(merge, as.list(e))
head(pframe)

也试试这个。

代码语言:javascript
复制
library(quantmod)

Nasdaq100_Symbols <- c('GE','PG','MSFT','AAPL','PFE','AMD','DELL')

# put all stocks in one list object    
stocks <- lapply(Nasdaq100_Symbols, getSymbols, auto.assign = FALSE)

# following is not needed but if you want to use the list for other purposes 
# it is a good practice to name all the different list objects.

# names(stocks) <- Nasdaq100_Symbols


# merge all stocks into 1 xts object
nasdaq100 <- Reduce(merge, stocks)

# fill NA's with 0
nasdaq100 <- na.fill(nasdaq100, 0)

outcomeSymbol <- "GE.Volume" # <-- used GE as that data is available in the downloaded data set

# merge outcome to data
nasdaq100 <- merge(nasdaq100, lm1 = lag(nasdaq[, outcomeSymbol], -1))

# turn into data.frame
nasdaq100_df <- data.frame(date = index(nasdaq100), coredata(nasdaq100))

最后,试试这个来获取代码。

代码语言:javascript
复制
library(rvest)
url <- "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
SP500 <- url %>%
  html() %>%
  html_nodes(xpath='//*[@id="mw-content-text"]/div/table[1]') %>%
  html_table()
SP500 <- SP500[[1]]
SP500

作为另一种选择,请参阅下面的链接,以获得更多关于如何做到这一点的想法。

https://www.r-bloggers.com/downloading-sp-500-stock-data-from-googlequandl-with-r-command-line-script/

Analysis.html

Analysis.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56555060

复制
相关文章

相似问题

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