Найдите самый последний день открытых финансовых рынков за N дней в прошлом - PullRequest
0 голосов
/ 15 апреля 2020

Я думаю, что что-то упустил. Я хочу определить дату самого последнего дня, начинающегося за N дней до текущего дня, когда финансовый рынок открыт. Я произвольно ограничил продолжительность экзамена 5 днями. Обратите внимание, что самый последний день кандидата может быть сегодня (N = 0).

У меня есть код, который работает с использованием пакета timeDate, но мой код неуклюжий. Должен быть более простой способ, но я не смог его найти. Предложения?

FindRecentTradeDay <- function(strt_srch_lag, max_days)
{
  # Find the most recent trading day starting the search backwards
  # from current day lagged by 'strt_srch_lag' days (integer days)
  # e.g., if strt_srch_lag == 0, start the search today. Search
  # backward is limited to 'max_days' (integer) backward from start.
  # Uses the package 'timeDate'. Returns a class date object.

  my_holidays <- as.Date(timeDate::holidayNYSE(year =
                                       getRmetricsOptions("currentYear")))
  for(i in strt_srch_lag:(max_days + strt_srch_lag))
  {
    a_day <- as.Date(Sys.Date() - i)
    if(!any(my_holidays == a_day) & !timeDate::isWeekend(a_day)) break
  }
  if(i >= max_days + strt_srch_lag)
    stop("Error in FindRecentTradeDay! Not found!")
  return(a_day)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...