Chuẩn hóa dữ liệu trong ngày không đều thành đều
Trước đó bạn đã học cách tạo một chuỗi ngày đều đặn từ dữ liệu theo ngày không đều. Giờ bạn sẽ tạo dữ liệu trong ngày đều đặn từ một chuỗi không đều.
Dữ liệu tài chính trong ngày thường không bao phủ đủ 24 giờ. Hầu hết các thị trường thường đóng cửa một phần trong ngày. Bài tập này giả định thị trường mở cửa lúc 9AM và đóng cửa lúc 4PM từ Thứ Hai đến Thứ Sáu.
Dữ liệu của bạn có thể không có quan sát đúng vào thời điểm mở/đóng cửa thị trường. Vì vậy bạn sẽ không thể dùng start() và end() như với dữ liệu theo ngày. Bạn cần chỉ định ngày-giờ bắt đầu và kết thúc để tạo chuỗi đều này.
Chuỗi ngày-giờ đều đặn sẽ bao gồm cả các khoảng thời gian thị trường đóng cửa, nhưng bạn có thể dùng tính năng subset theo thời gian trong ngày của xts để chỉ lấy các khoảng thời gian thị trường mở cửa.
Bài tập này là một phần của khóa học
Nhập và quản lý dữ liệu tài chính trong R
Hướng dẫn bài tập
- Hoàn thiện lệnh để tạo chuỗi ngày-giờ đều đặn mỗi 30 phút từ 09:00 Thứ Hai đến 16:00 Thứ Sáu.
- Đặt giá trị cho
xvàorder.byđể tạo một đối tượng xts có độ rộng bằng không (zero-width). - Tạo
merged_xtsbằng cách gộpirregular_xtsvàregular_xts. Dùng đối sốfillđể thayNAbằng giá trị trước đó vớina.locf(). - Dùng subset theo thời gian trong ngày của xts để trích các quan sát giữa 9AM và 4PM mỗi ngày. Gán kết quả vào
trade_day.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# 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[___]