语境
我正在使用getMultipleTicks
inRblpapi
来提取一个月内股票(在本例中为 TSLA)的分时数据:
rawData = getMultipleTicks("tsla us equity", eventType = "TRADE", startTime = as.POSIXlt("2017-03-10 13:30:00"), endTime = as.POSIXlt("2017-04-10 20:00:00"), tz="America/New_York")
> str(rawData)
'data.frame': 1130690 obs. of 3 variables:
$ times: POSIXct, format: "2017-03-10 08:30:07" ...
$ value: num 246 246 246 246 246 ...
$ size : num 58 42 80 5 9 1 4 73 100 941 ...
客观的
这个数据需要从这个转换:
原始数据:
> head(rawData, 5)
times value size
1 2017-04-10 09:30:00 309 1
2 2017-04-10 09:30:00 309 1
3 2017-04-10 09:30:02 309 1
4 2017-04-10 09:30:02 308 1
5 2017-04-10 09:30:04 309.38 1
对此:
清洁数据:
> head (cleanData, 5)
times value size
1 2017-04-10 09:30:00 309 2
2 2017-04-10 09:30:01 0
3 2017-04-10 09:30:02 308.5 2
4 2017-04-10 09:30:03 0
5 2017-04-10 09:30:04 309.38 1
- 填写缺失的时间(以秒为单位)
- 价格(价值以 VWAP 为单位)
- 卷(大小)加在一起
计算时间不是问题。
我尝试过的事情
我天真地尝试使用R 中的每个分箱时间数据,?cut
但无法获得任何有意义的结果。
一位同事建议使用 for 循环,但不确定如何根据上述要求开始实现它。