開始使用免費開始

將不規則的日內資料轉為規則序列

先前你學過如何從不規則的逐日資料建立規則的每日序列。現在你要從不規則的序列建立規則的日內資料。

日內的金融資料通常不涵蓋完整的 24 小時。多數市場在一天中會有休市時段。本練習假設市場在週一到週五的上午 9 點開盤、下午 4 點收盤。

你的資料可能在開盤與/或收盤時間點並沒有恰好一筆觀測值。因此,你不能像處理每日資料那樣使用 start()end()。你需要自行指定起迄的日期時間來建立這個規則序列。

這個規則的日期時間序列會包含市場休市的時段,但你可以利用 xts 的一天中時間篩選,只取出市場開盤期間的時段。

本練習屬於課程

在 R 匯入與管理金融資料

檢視課程

練習說明

  • 完成指令,建立在週一 09:00 到週五 16:00 之間、每 30 分鐘一次的規則日期時間序列。
  • 設定 xorder.by 的值,以建立寬度為 0 的 xts 物件。
  • irregular_xtsregular_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[___]
編輯並執行程式碼