Разница во времени (в R) - PullRequest
0 голосов
/ 05 апреля 2020

Я работаю с данными о ценах на финансовые активы и мне интересно найти разницу во времени между датами двух последовательных операций на рынке.

Простым примером может быть:

  • первая операция -> клиент X покупает акции A на 2020-01- 02 09: 00: 00
  • вторая операция -> клиент X покупает акции B на 2020-01- 03 09: 00: 00

Вот моя проблема: я ищу функцию, которая вычисляет ФИНАНСОВУЮ разницу во времени между этими двумя объектами datetime.

Следовательно, меня не интересует простая календарная разница во времени (которая может быть вычислена в R с использованием хорошо известной функции difftime()), но разница во времени, которая учитывает финансовый или торговый день, то есть ( грубо говоря) день, который начинается в 9.00 и заканчивается в 18.00.

Следовательно, эта функция должна давать простой результат 9 часов (если в качестве единицы измерения используется час) пример выше, вместо 24 часы , как можно предположить из обычной разницы во времени календаря.

Более сложная версия этой функции также учитывает рыночные праздники и исключает выходные из вычислений.

Следуя примеру с использованием R

d1 <- as.POSIXct("2020-01-02 09:00:00", tz = "UTC")
d2 <- as.POSIXct("2020-01-03 09:00:00", tz = "UTC")

difftime(d2, d1, units = "hours")

Это дает разницу во времени в 24 часа.
Однако ожидаемый результат составит всего 9 часов , поскольку финансовый (или торги на рынке) заканчиваются 2020-01-02 в 18.00 и начинаются снова на следующий день в 9.00, следовательно, между ними должно быть всего 9 часов торговли.

Я в основном работаю в R, поэтому Я был бы признателен, если бы кто-нибудь дал мне несколько советов по этому языку, но если бы кто-нибудь знал что-то похожее на других языках, это также было бы очень полезно.

Большое спасибо за вашу помощь и время.

...