假设我有一个像下面这样的时间序列。你知道吗
我想计算1天内收益率为正的次数(这里简单地定义为xun-xn-1),连续2天收益率为正的次数。。。等。。。。负收益也一样。你知道吗
什么是优雅的方法?我尝试了不同的方法,使用组合diff()
、sum()
、cumsum()
、groupby()
(等等…),但都没有成功。你知道吗
你能提些建议吗?你知道吗
DATE SETTLE
24/05/1988 784
25/05/1988 759
26/05/1988 754
27/05/1988 768
31/05/1988 798
01/06/1988 802
02/06/1988 819
03/06/1988 849
06/06/1988 879
07/06/1988 882
08/06/1988 861
09/06/1988 886
10/06/1988 884
13/06/1988 877
14/06/1988 890
15/06/1988 920
16/06/1988 942
17/06/1988 972
20/06/1988 1002
21/06/1988 1047
22/06/1988 1055
23/06/1988 1033
24/06/1988 1030
27/06/1988 1060
28/06/1988 1015
29/06/1988 931
30/06/1988 986
01/07/1988 989
05/07/1988 959
06/07/1988 984
首先,将价格转换为回报:
然后,计算正/负日收益天数:
通过比较布尔标志和前一个标志(例如
(df.pos_returns != df.pos_returns.shift())
),创建标识符来对每个返回序列进行分组。取这些值的累积和来创建具有相同真/假范围的组。通过乘以标志来掩盖假值,并取正的组值。你知道吗最后,执行
value_counts()
两次。第一次按日计数聚合组,第二次聚合日计数事件。你知道吗该表显示,有3个单日正收益,1个两日正收益和2个七日正收益。你知道吗
我有连续数日的代码。。。这可能会有所帮助,然后您可以过滤连续天数函数的结果。在下面的示例中,mdo只是数据帧的包装器:
相关问题 更多 >
编程相关推荐