我们可以使用quantmod
包收集Oanda和Yahoo finance的每日数据:
getFX("USD/JPY",from="2007-01-01", to = Sys.Date())
getSymbols("EUR=X",src="yahoo",from="2002-01-01",auto.assign=F)
仔细检查数据后,您可能会注意到这些来源的值明显不同。然后我想知道每个来源的时间戳到底是什么时候?它看起来不是格林威治标准时间午夜。
如果你有线索,我将不胜感激。谢谢。
答案 0 :(得分:2)
FX是场外交易市场,所以没有中央交易所可以随时设定利率,但套利考虑意味着所有主要参与者(银行,对冲基金,真实货币)的定价几乎都是相同的液体市场营业时间(美国东部时间周日下午5点(美国/纽约)至美国东部时间周五下午5点左右)的时间。因此,即使对于相同的时间戳,不同的来源也可以提供略微不同的定价。考虑到这一点,这里有一些最近的Oanda和Yahoo EUR/USD
费率:
library(quantmod)
getFX("EUR/USD",from="2007-01-01", to = Sys.Date())
ya2 <- getSymbols("EUR=X",src="yahoo",from="2002-01-01",auto.assign=F)
# Yahoo reports the unconventional pricing of USDEUR = 1 / EURUSD, so lets get in the conventional form EUR/USD:
ya2[, c(1, 4, 6)] <- 1 / coredata(ya2)[, c(1, 4, 6)]
ya2[, c(2, 3)] <- 1 / coredata(ya2)[, c(3, 2)]
tail(ya2, 5)
# > tail(ya2, 5)
# EUR=X.Open EUR=X.High EUR=X.Low EUR=X.Close EUR=X.Volume EUR=X.Adjusted
# 2016-12-20 1.040474 1.041992 1.035518 1.040583 0 1.040583
# 2016-12-21 1.039393 1.045151 1.038529 1.039047 0 1.039047
# 2016-12-22 1.042753 1.049759 1.042753 1.042862 0 1.042862
# 2016-12-23 1.043950 1.046792 1.042970 1.043765 0 1.043765
# 2016-12-26 1.045588 1.047011 1.044600 1.045478 0 1.045478
colnames(EURUSD) <- "Oanda"
compare <- merge(ya2, EURUSD)
indexFormat(compare) <- "%Y-%m-%d, %a"
tail(round(compare, 4), 15)
# EUR.X.Open EUR.X.High EUR.X.Low EUR.X.Close EUR.X.Volume EUR.X.Adjusted Oanda
# 2016-12-13, Tue 1.0643 1.0653 1.0607 1.0642 0 1.0642 1.0629
# 2016-12-14, Wed 1.0630 1.0667 1.0615 1.0629 0 1.0629 1.0632
# 2016-12-15, Thu 1.0515 1.0525 1.0404 1.0514 0 1.0514 1.0468
# 2016-12-16, Fri 1.0418 1.0472 1.0404 1.0419 0 1.0419 1.0435
# 2016-12-17, Sat NA NA NA NA NA NA 1.0451
# 2016-12-18, Sun NA NA NA NA NA NA 1.0451
# 2016-12-19, Mon 1.0448 1.0482 1.0413 1.0450 0 1.0450 1.0446
# 2016-12-20, Tue 1.0405 1.0420 1.0355 1.0406 0 1.0406 1.0391
# 2016-12-21, Wed 1.0394 1.0452 1.0385 1.0390 0 1.0390 1.0413
# 2016-12-22, Thu 1.0428 1.0498 1.0428 1.0429 0 1.0429 1.0443
# 2016-12-23, Fri 1.0440 1.0468 1.0430 1.0438 0 1.0438 1.0445
# 2016-12-24, Sat NA NA NA NA NA NA 1.0455
# 2016-12-25, Sun NA NA NA NA NA NA 1.0455
# 2016-12-26, Mon 1.0456 1.0470 1.0446 1.0455 0 1.0455 1.0455
# 2016-12-27, Tue NA NA NA NA NA NA 1.0449
雅虎数据:
首先,我们看到雅虎返回OHLC数据。我可以告诉你,yahoo(EUR.X.Close
)提供的收盘价大约相当于午夜UTC。我已经对其他可靠的(专有)FX tick数据定价来源进行了检查。
此外,您可以清楚地看到开盘价(EUR.X.Open
)与之前的收盘价不同,因此我们可以得出结论,开盘价是在24日的某个任意时间窗口设定的。在任何给定交易日结束午夜UTC的小时期间(在此期间也将设置高点和低点)。这只是雅虎的酒吧创建惯例,并不是“正确”或“错误”,只是他们选择传播数据的方式。
Oanda数据:
每天美国东部时间下午5点流动性非常差,因为这是在外汇市场支付展期利息,因此这段时间通常用作外汇交易日的结束。创建每日外汇数据的合理方法是假设工作日从美国东部时间周日下午5点开始,到美国东部时间周一下午5点结束,工作日美国东部时间周一下午5点开始,美国东部时间周二下午5点结束。这样每周提供5个甚至24小时交易条
在相关主题上,显然上述来源均无法用于回溯测试日间外汇策略。如果您正在寻找每日或更高频率的免费外汇数据,一些选项包括: