我有一个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
如您所见,某些会议记录没有数据(由于没有交易)。
我想计算每个数据点之间的回报,忽略隔夜回报。我不能假设第一笔交易是在每天的同一时间发生的。我怎么能做到这一点?
答案 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]
这样你就可以避免一夜之间的回报。只需检查它是否在盘中(当天是相同的)