R quantmod-getQuote()不适用于不同交易所的报价器
我正在通过R quantmod-getQuote()不适用于不同交易所的报价器,r,quantmod,R,Quantmod,我正在通过quantmod-getQuote()找到我遇到的问题的解决方案 当我运行以下命令时 metrics <- yahooQF(c("Name", "Volume", "P/E Ratio", "Dividend Yield", "Shares Outstanding")) symbols2 <- c("GOOG", "MSFT") stats <- getQuote(symbols2, what = metrics) 错误消息: Error in (function
quantmod
-getQuote()
找到我遇到的问题的解决方案
当我运行以下命令时
metrics <- yahooQF(c("Name", "Volume", "P/E Ratio", "Dividend Yield", "Shares Outstanding"))
symbols2 <- c("GOOG", "MSFT")
stats <- getQuote(symbols2, what = metrics)
错误消息:
Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, :
arguments imply differing number of rows: 2, 3
In addition: Warning message:
In getQuote.yahoo(Symbols = c("GOOG", "MSFT", "3888.HK"), what = list( :
symbols have different timezones; converting to local time
有人知道这方面的解决方法吗?我似乎无法在
getQuote()
函数中找到要更改的内容。我可能是错的,但我认为出现错误的原因是,纳斯达克有2个计数器,而香港交易所只有一个计数器(例如,“参数意味着行数不同”错误)
当我试图从纳斯达克和香港交易所获得两个柜台的财务数据时,问题得到了解决:
metrics <- yahooQF(c("Name", "Volume", "P/E Ratio", "Dividend Yield", "Shares Outstanding"))
symbols2 <- c("GOOG", "MSFT", "0005.HK", "3888.HK")
stats <- getQuote(symbols2, what = metrics)
Warning message:
In getQuote.yahoo(Symbols = c("GOOG", "MSFT", "0005.HK", "3888.HK" :
symbols have different timezones; converting to local time
stats
Trade Time Name Volume P/E Ratio Dividend Yield Shares Outstanding
GOOG 2018-09-20 04:00:01 Alphabet Inc. 1077192 50.576115 NA 349883008
MSFT 2018-09-20 04:00:01 Microsoft Corporation 18559784 52.441310 0.014839678 7668219904
0005.HK 2018-09-20 16:08:17 HSBC HOLDINGS 15168181 18.303152 0.007505519 19422699520
3888.HK 2018-09-20 16:08:17 KINGSOFT 5549058 4.991025 0.000952381 1365229952
metrics问题不在于股票代码名称中的点。实际上,您在函数中发现了一个bug
如果您运行getQuote(“3888.HK”,what=metrics)
您会得到一个结果:
Trade Time Name Volume P/E Ratio Dividend Yield Shares Outstanding
3888.HK 2018-09-20 16:08:17 KINGSOFT 5549058 4.991025 0.000952381 1365229952
问题是时区不同。如果每个时区的计时器不相等,您将得到一个错误
这项工作:
symbols2 <- c("GOOG", "MSFT", "0005.HK", "3888.HK")
symbols2 <- c("GOOG", "MSFT", "0005.HK", "3888.HK", "FAGR.BR", "AGFB.BR")
symbols2谢谢,你说得对,我刚刚添加了相同数量的股票代码,我能够检索数据。这是伟大的,但我有大约3/4不同交易所的不同股票。也许我需要确保所有交易所拥有相同数量的公司。请您详细说明“另一种选择是您可以通过交易所获得财务信息”。我目前正在做的事情如下:USstocks
Trade Time Name Volume P/E Ratio Dividend Yield Shares Outstanding
3888.HK 2018-09-20 16:08:17 KINGSOFT 5549058 4.991025 0.000952381 1365229952
symbols2 <- c("GOOG", "MSFT", "0005.HK", "3888.HK")
symbols2 <- c("GOOG", "MSFT", "0005.HK", "3888.HK", "FAGR.BR", "AGFB.BR")
symbols2 <- c("GOOG", "MSFT", "FB", "0005.HK", "3888.HK")
symbols2 <- c("GOOG", "MSFT", "0005.HK", "3888.HK", "FAGR.AB")
Qposix <- sapply(split(sq, sq$exchangeTimezoneName), convertTZ)