如何使用pandas从日内数据中删除隔夜回报

时间:2014-08-07 17:44:22

标签: python pandas finance quantitative-finance

我有一个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

如您所见,某些会议记录没有数据(由于没有交易)。

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

1 个答案:

答案 0 :(得分:0)

你的回报是什么意思?一个入口和下一个入口之间的价格差异?或百分比差异?

如果是这样(我会做价格之间的区别),我可以想到一个迭代方法。有人可能会有一个更好的。让我们来'df'是您的数据框名称,'时间'是存储进入时间的领域,' Price'是价格领域。那个'时间'存储日期时间类型

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]

这样你就可以避免一夜之间的回报。只需检查它是否在盘中(当天是相同的)