Преобразование нерегулярных внутридневных данных в регулярные
Ранее вы узнали, как создать регулярный дневной ряд из нерегулярных дневных данных. Теперь вы создадите регулярные внутридневные данные из нерегулярного ряда.
Внутридневные финансовые данные, как правило, не охватывают полные 24 часа: большинство рынков часть дня закрыты. В этом упражнении предполагается, что рынки открываются в 9:00 и закрываются в 16:00 с понедельника по пятницу.
В данных может не оказаться наблюдений точно на момент открытия и/или закрытия рынка. Поэтому использовать start() и end(), как это было возможно с дневными данными, не получится. Вам нужно явно задать начальные и конечные дату-время для создания регулярной последовательности.
Регулярная последовательность дата-время будет включать периоды, когда рынки закрыты, однако с помощью подмножества xts по времени суток можно извлечь только торговые периоды.
Это упражнение является частью курса
Импорт и управление финансовыми данными в R
Инструкции к упражнению
- Завершите команду создания регулярной 30-минутной последовательности дата-время с 09:00 понедельника до 16:00 пятницы.
- Задайте значения для
xиorder.by, чтобы создать объект xts нулевой ширины. - Создайте
merged_xts, объединивirregular_xtsиregular_xts. Используйте аргументfill, чтобы заменитьNAпредыдущим значением с помощьюna.locf(). - Используйте подмножество xts по времени суток, чтобы извлечь наблюдения с 9:00 до 16:00 каждого дня. Сохраните результат в переменную
trade_day.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create a regular date-time sequence
regular_index <- seq(as.POSIXct("2010-01-04 __:__"), as.POSIXct("2010-01-08 __:__"), by = "30 min")
# Create a zero-width xts object
regular_xts <- xts(x = ___, order.by = ___)
# Merge irregular_xts and regular_xts, filling NA with their previous value
merged_xts <- merge(___, ___, fill = ___)
# Subset to trading day (09:00-16:00)
trade_day <- merged_xts[___]