リアルタイムで為替レートを取得するためのRパッケージ/関数はありますか? GoogleFinanceから?何かがすでにそこにある場合は、RCurlまたは他のパーサーを避けたいと思います。
具体的には、「from」と「to」の通貨記号のベクトルが与えられた場合、レートを知りたいです。何かのようなもの:
IdealFunction(c("CAD", "JPY", "USD"), c("USD", "USD", "EUR"))
quantmod を使用してyahooの見積もりを取得できます。 (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。 (市場の慣習を使用する必要があることに注意してください。つまり、JPY/USDではなくUSD/JPY)
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
または、Interactive Brokersアカウントをお持ちの場合は、 IBrokersパッケージ またはmy twsInstrumentパッケージ (基本的にはIBrokers関数の単なるラッパー)を使用できます。
library(twsInstrument)
getQuote(paste0(to, from), src="IB") # only works when market is open.
TFX
とquantmod
にはこのための関数があるようです(ヒントについては@RStudentと@KFBに感謝します)。アカウントを設定する必要がなかったのでquantmod
を好みましたが、AFAICTには、私が探しているようなベクトル化された現在のスナップショット関数はありません。この関数GetExchangeRates
はこれを行います:
GetExchangeRates <- function(from, to, dt=Sys.Date()) {
require(quantmod)
obj.names <- getFX(paste0(from, "/", to), from=dt, to=dt)
result <- numeric(length(obj.names))
names(result) <- obj.names
for (obj.name in obj.names) {
result[obj.name] <- as.numeric(get(obj.name))[1]
# Clean up
rm(obj.name)
}
return(result)
}
TestExchangeRates <- function() {
from <- c("CAD", "JPY", "USD")
to <- c("USD", "USD", "EUR")
GetExchangeRates(from, to)
}