Точная отметка времени в данных валюты quantmod (FX)

мы можем собирать ежедневные данные от Oanda и Yahoo Finance с помощью пакета quantmod как такового:

getFX("USD/JPY",from="2007-01-01", to = Sys.Date())
getSymbols("EUR=X",src="yahoo",from="2002-01-01",auto.assign=F)

После тщательной проверки данных вы можете заметить, что значения из этих источников значительно отличаются. Мне тогда интересно, какое именно время было взято отметкой времени дня для каждого источника? Не похоже, что это полночь по Гринвичу.

Буду признателен, если у вас есть подсказка. Спасибо.


person Cyril DL    schedule 22.12.2016    source источник
comment
Проверив документацию, я обнаружил, что источником getFX и getSymbols являются Oanda и Yahoo Finance соответственно. Надеюсь, это поможет.   -  person raymkchow    schedule 22.12.2016


Ответы (1)


Форекс является внебиржевым рынком, поэтому нет центральной биржи, которая устанавливает курс в любое время, но соображения арбитража означают, что все основные игроки (банки, хедж-фонды, реальные деньги) устанавливают цены примерно по одним и тем же ставкам в любой момент времени в течение ликвидности. часы работы рынка (приблизительно с 17:00 воскресенья по восточному стандартному времени (Америка/Нью-Йорк) до 17:00 пятницы по восточному поясному времени). Поэтому разные источники могут предлагать немного разные цены даже для одних и тех же временных меток. Имея это в виду, вот некоторые недавние расценки 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

Данные Yahoo:

  • Во-первых, мы видим, что Yahoo возвращает данные OHLC. Я могу сказать вам, что цена закрытия, предлагаемая Yahoo (EUR.X.Close), соответствует примерно полуночи UTC. Я сравнивал это с другими надежными (проприетарными) источниками ценообразования тиковых данных FX.

  • Кроме того, вы можете ясно видеть, что цена открытия (EUR.X.Open) отличается от предыдущей цены закрытия на один бар назад, поэтому мы можем сделать вывод, что цена открытия установлена ​​в произвольном временном окне в течение 24-часового периода, заканчивающегося в полночь UTC в любой заданный торговый день. (максимум и минимум также будут установлены за этот период). Это всего лишь соглашение Yahoo для создания баров, и оно не является «правильным» или «неправильным», просто то, как они решили распространять данные.

  • На самом деле FX торгует 24 часа в сутки 5 дней в неделю, поэтому в данных Yahoo есть пробелы.

Данные Оанды:

  • Обратите внимание, что Oanda возвращает цены за каждый день, включая выходные и праздничные дни, и только в одном столбце значений. Oanda возвращает средневзвешенную цену за каждый день временного ряда. (Он не возвращает данные закрытия в 17:00 по восточному поясному времени или в полночь по всемирному координированному времени). Почему тогда это может быть полезно? Ну, потому что многие люди хотят использовать ежедневные курсы валют для оценки деловых транзакций в разных валютах и ​​т. д., и Oanda считается надежным именем с надежными данными о ценах (https://www.oanda.com/fx-длябизнеса/)

Ликвидность очень низкая в 17:00 по восточному поясному времени каждый день, так как в это время на валютном рынке выплачиваются проценты за пролонгацию, поэтому это время часто используется как конец торгового дня на валютном рынке. Разумный способ создания ежедневных данных FX состоит в том, чтобы предположить, что первый будний день начинается в 17:00 воскресенья по восточному поясному времени и заканчивается в 17:00 в понедельник по восточному стандартному времени, второй рабочий день начинается в 17:00 в понедельник по восточному стандартному времени и заканчивается во вторник в 17:00 по восточному поясному времени и т. д. Это дает 5 четных 24-часовых торговых баров каждую неделю. .

Что касается связанной темы, очевидно, что ни один из вышеперечисленных источников не может быть использован для тестирования внутридневных стратегий FX. Если вы ищете бесплатные данные FX с ежедневной или более высокой частотой, некоторые варианты включают:

  1. Бесплатные агрегированные тиковые данные FX с http://www.truefx.com/?page=downloads
  2. Откройте бумажный торговый счет в Interactive Brokers. Вы можете получить скользящую ежедневную историю OHLC за год и данные в более коротких временных рамках 5, 30 секунд, 1 минутные бары (по крайней мере, в последний раз, когда я проверял, что было некоторое время назад).
  3. Сделай сам: откройте счет у надежного брокера и начните самостоятельно хранить потоковые тики
person FXQuantTrader    schedule 28.12.2016
comment
Спасибо FXQuantTrader! - person Cyril DL; 29.12.2016
comment
Вы упомянули, что Oanda возвращает средневзвешенную цену за каждый день временного ряда. Вы знаете, как происходит взвешивание? - person Cyril DL; 29.12.2016
comment
Для данных Oanda: мы получаем курс OANDA, который представляет собой среднесуточный спот из ряда различных источников, включая торговую платформу OANDA fxTrade и финансовые учреждения. Наши исходные данные проходят через алгоритм, который обнаруживает и фильтрует аномалии, такие как всплески ставок, а затем мы загружаем наши ставки в 22:00 по нью-йоркскому времени. - person Cyril DL; 30.12.2016
comment
@Cyril DL Да, oanda.com/currency/help /how-to-read-currency-conversion-results. - person FXQuantTrader; 31.12.2016
comment
Вы даже можете получить поминутные данные. Пожалуйста, обратитесь к quantmod.com/examples/data для получения дополнительной информации. - person RYO ENG Lian Hu; 21.08.2017