在拉里·康纳斯(Larry Connors)的一本技术交易账簿中,我发现了一个简单的指标,即对于金融资产时间序列而言,它衡量的是同一方向的连续收盘次数。每个交易日的得分为-1、0或+1,具体取决于收盘价是否低于、等于或高于上一个收盘价。在
序列每天递增,收盘点在同一方向,当方向改变时,它重置为-1、0或1。在
到目前为止,我得到的是:
df['sign'] = np.sign(np.log(df['close']/df['close'].shift(1)).map(str)
df['streak'] = df.groupby((df['sign'] != df['sign'].shift(1)).cumsum()).cumcount()+1
这捕捉了连续,但不指示方向,因为我使用资产的回报
(np.log(df['close']/df['close'].shift(1))
我没有捕获0的条件when close today=close昨天。 如何修改代码以捕捉效果;如果可能,不使用“sign”列?在
你已经99%的成功了:
应该给你你想要的(不知道如何在不使用符号列的情况下实现,考虑到你已经完成的工作,这个解决方案似乎最简单)。在
相关问题 更多 >
编程相关推荐