是否有任何R包/功能可以实时获取汇率,例如来自Google财经?如果已经有RCurl或其他解析器,则宁愿避免使用。

具体来说,给定“ from”和“ to”货币符号的向量,我想知道汇率。就像是:

IdealFunction(c("CAD", "JPY", "USD"), c("USD", "USD", "EUR"))

最佳答案

您可以使用quantmod来获取雅虎报价。 (我不确定yahoo FX报价的延迟时间或更新频率。)

library(quantmod)
from <- c("CAD", "JPY", "USD")
to <- c("USD", "USD", "EUR")
getQuote(paste0(from, to, "=X"))
#                  Trade Time   Last Change % Change Open High Low Volume
#CADUSD=X 2014-11-01 08:23:00 0.8875    N/A      N/A  N/A  N/A N/A    N/A
#JPYUSD=X 2014-11-01 08:23:00 0.0089    N/A      N/A  N/A  N/A N/A    N/A
#USDEUR=X 2014-11-01 08:23:00 0.7985    N/A      N/A  N/A  N/A N/A    N/A


如果您注册了免费帐户,则可以使用TFX进行实时,毫秒时间戳的报价。 (请注意,您必须使用市场惯例;即,美元/日元而不是日元/美元)

library(TFX)
pairs <- paste(to, from, sep="/")
QueryTrueFX(ConnectTrueFX(pairs, "validUser", "anytext"))
#   Symbol Bid.Price Ask.Price      High       Low               TimeStamp
#1 USD/CAD   1.12651   1.12665   1.12665   1.12651 2014-10-31 20:45:00.559
#2 USD/JPY 112.34600 112.35900 112.35900 112.34600 2014-10-31 20:45:00.134
#3 EUR/USD   1.25234   1.25253   1.25253   1.25234 2014-10-31 20:45:00.598


或者,如果您拥有盈透证券帐户,则可以使用IBrokers package或我的twsInstrument package(基本上只是IBrokers函数的包装器)

library(twsInstrument)
getQuote(paste0(to, from), src="IB") # only works when market is open.

10-07 21:40