簡體   English   中英

如何使用條件價格點在 R 中對不規則的日內財務數據進行子集化?

[英]How do I subset irregular, intraday financial data in R using conditional price points?

我有一些財務head(df_xts)數據, head(df_xts)

                     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]]
}

用另一個不規則時間序列拆分時間序列很有用,但我不確定如何將其應用於日內數據。

我的完整代碼和數據集可以在https://github.com/blottb7/tick-data找到。 我對任何從事時間序列輸入工作的人感興趣。

split(), lapply(,cummax), do.call(rbind,), merge()用於打開范圍。 對整個數據框做了同樣的事情。 將開倉范圍與整個范圍合並。 然后使用breakout <- ifelse(cummax - breakout > opening_range_cummax, TRUE, FALSE), then subset by breakout == 1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM