私はhead(df_xts)
、一部の金融ダニのデータを持っている:条件付きプライスポイントを使用して、不規則な日中の財務データをRでサブセット化するにはどうすればよいですか?
price volume
2016-06-01 09:30:00 1073 1
2016-06-01 09:30:00 1073 1
2016-06-01 09:30:00 1073 1
2016-06-01 09:30:00 1073 1
2016-06-01 09:30:00 1073 1
2016-06-01 09:30:00 1073 5
私は価格がその開口部の範囲を超える一定の距離を移動した後、このデータを見てみたいです。私は最初の15分のような公開範囲を定義:
df_open <- df_xts["T09:30/T09:44"]
(df_main
、以下に参照される、その日の残りの時間枠である。)
は、以下の最大価格、または「開口を発見毎日の「高域:
orh <- apply.daily(df_open$price, max)
> orh
price
2016-06-01 09:44:55 1083.75
2016-06-02 09:44:59 1119.25
2016-06-03 09:44:59 1169.00
2016-06-06 09:44:53 1155.00
、これは高い開口範囲を超える事前定義breakout
距離で価格を見つける:
orh_bo <- orh + breakout
私はその後、価格が私の日に比べて「ブレイクアウト」のインデックス値を与える。このブレイクアウトポイント、まで移動したそれぞれの日の最初の観測を見つける:
orh_bo_index <- apply.daily(df_main, FUN = function(X) first(which(X %in% orh_bo)))
> orh_bo_index
[,1]
2016-06-01 14:14:59 2074
2016-06-02 14:14:59 10693
2016-06-03 14:14:59 2351
2016-06-06 14:14:59 1224
orh_bo_matrix <- coredata(orh_bo_index)
私はこれを組み合わせますデータフレームを作成するために、毎日のエンドポイントの指標とブレイクアウトのインデックス、df_bo_indexes
:
ep_daily <- endpoints(df_main, on = "days")
daily_last_index <- ep_daily[-1]
daily_last_matrix <- t(t(daily_last_index))
df_bo_indexes <- bind_cols(data.frame(orh_bo_matrix), data.frame(daily_last_matrix))
> df_bo_indexes
orh_bo_matrix daily_last_matrix
1 2074 52155
2 10693 126623
3 2351 181408
4 1224 221002
私は上記のインデックスを使用してデータのサブセットにはどうすればよいですか?これは私がこれまでにしようとしているものです:
df_bo_day1 <- df_main[df_bo_indexes[1,1]:df_bo_indexes[1,2]]
i <- 2
for(i in 2:ndays(df_main)) {
df_bo_all <- df_main[(df_bo_indexes[i-1,2]+df_bo_indexes[i,1]):df_bo_indexes[i,2]]
}
split a time series by another irregular time seriesが有用であったが、私は日中のデータにこれを適用するかどうかはわかりません。
私のフルコードとデータセットはhttps://github.com/blottb7/tick-dataにあります。私は時系列の入力に取り組んできた人に興味があります。