0

我有一个 Pandas DataFrame,其中包含几个月的盘中价格数据(交易量加权,按分钟聚合)。

In[1]: VWAPData
Out[93]: 
Prices
2014-02-03 09:30:00    10.450000
2014-02-03 11:04:00    10.450000
2014-02-03 12:28:00    10.326600
2014-02-03 13:31:00    10.290000
2014-02-03 13:44:00    10.326500
...
2014-07-31 13:08:00    15.8500
2014-07-31 13:10:00    15.8600
2014-07-31 13:44:00    15.8600
2014-07-31 15:44:00    15.9101
2014-07-31 15:58:00    15.9300

如您所见,有些分钟没有数据(由于没有交易)。

我想计算每个数据点之间的回报,忽略隔夜回报。我不能假设第一笔交易每天都在同一时间发生。我怎么能做到这一点?

4

1 回答 1

0

你说的回报是什么意思?一个条目和下一个条目之间的价格差异?还是百分比差异?

如果是这样(我会做价格之间的差异),我可以考虑一种迭代方法。有人可能有更好的。让“df”是您的数据框名称,“时间”是存储进入时间的字段,而“价格”是带有价格的字段。还有“时间”存储日期时间类型

df['Return'] = np.NaN
for i in xrange(len(df)):
    if i ==0: break
    if df['Time'].iat[i].day == df['Time'].iat[i-1].day:
        df['Return'].iat[i] = df['Price'].iat[i] - df['Price'].iat[i-1]

这样你就可以避免隔夜退货。只要检查它是否是盘中(当天是一样的)

于 2014-08-07T20:42:24.903 回答