將不規則的日內資料轉為規則序列
先前你學過如何從不規則的逐日資料建立規則的每日序列。現在你要從不規則的序列建立規則的日內資料。
日內的金融資料通常不涵蓋完整的 24 小時。多數市場在一天中會有休市時段。本練習假設市場在週一到週五的上午 9 點開盤、下午 4 點收盤。
你的資料可能在開盤與/或收盤時間點並沒有恰好一筆觀測值。因此,你不能像處理每日資料那樣使用 start() 與 end()。你需要自行指定起迄的日期時間來建立這個規則序列。
這個規則的日期時間序列會包含市場休市的時段,但你可以利用 xts 的一天中時間篩選,只取出市場開盤期間的時段。
本練習屬於課程
在 R 匯入與管理金融資料
練習說明
- 完成指令,建立在週一 09:00 到週五 16:00 之間、每 30 分鐘一次的規則日期時間序列。
- 設定
x與order.by的值,以建立寬度為 0 的 xts 物件。 - 將
irregular_xts與regular_xts合併為merged_xts。使用fill參數搭配na.locf(),把NA以前一個值遞補。 - 使用 xts 的一天中時間篩選,擷取每天上午 9 點到下午 4 點之間的觀測值。將結果指定給
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[___]