不規則な日中データを規則的にする
これまでに、不規則な日次データから規則的な日次系列を作成する方法を学びました。ここでは、不規則な系列から規則的な日中(イントラデイ)データを作成します。
日中の金融データは、24時間すべてをカバーしないことがよくあります。多くの市場は一日の一部は休場だからです。この演習では、市場は月曜〜金曜の午前9時に開き、午後4時に閉まると仮定します。
データに市場の寄り付きや引けの時刻にちょうど一致する観測値がない場合があります。したがって、日次データのときのように start() と end() は使えません。規則的なシーケンスを作るために、開始と終了の日時を明示的に指定する必要があります。
規則的な日時シーケンスには市場が閉まっている時間帯も含まれますが、xts の時刻によるサブセット機能を使えば、市場が開いている時間帯のみを抽出できます。
この演習はコースの一部です
Rで学ぶ金融データのインポートと管理
演習の手順
- 月曜の 09:00 から金曜の 16:00 の間で、30分間隔の規則的な日時シーケンスを作成するコマンドを完成させてください。
xとorder.byの値を設定して、幅ゼロの 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[___]