用Pandas计算考夫曼在Python中的效率比?

2024-05-14 11:11:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试用Python和Pandas实现Kaufman效率比(ER)。在

在Pandas数据帧中,我有两列:

  1. 日期
  2. 股票的收盘价(本例中为德国DAX指数,GDAXI):
    Date        Close
    2016-01-05  10310.10
    2016-01-06  10214.02
    2016-01-07   9979.85
    2016-01-08   9849.34
    2016-01-11   9825.07     
    2016-01-12   9985.43     
    2016-01-13   9960.96     
    2016-01-14   9794.20

我需要的是第三列,其中包括给定周期n的ER

ER的定义:

^{pr2}$

其中:

Direction = ABS (Close – Close[n])
Volatility = n * ∑ (ABS(Close – Close[1]))
n = The efficiency ratio period.

下面是一个n=3句点ER的示例(取自http://etfhq.com/blog/2011/02/07/kaufmans-efficiency-ratio/):

ER-Calculation

我在纠结的是如何用Python和熊猫来做这个? 最后,根据上面的计算,我的数据帧应该是这样的:

Date        Adj Close   ER(3)
2016-01-04  10283.44    
2016-01-05  10310.10    
2016-01-06  10214.02    
2016-01-07  9979.85     0.9
2016-01-08  9849.34     1.0
2016-01-11  9825.07     1.0
2016-01-12  9985.43     0.0
2016-01-13  9960.96     0.5
2016-01-14  9794.20     0.1

如何让Pandas回顾前面n行的ER所需的计算?在

非常感谢任何帮助! 提前谢谢你。 德克


Tags: 数据pandasclosedateabs指数股票效率
1条回答
网友
1楼 · 发布于 2024-05-14 11:11:27

无需编写滚动函数,只需使用diffrolling_sum

df['direction'] = df['Close'].diff(3).abs()
df['volatility'] = pd.rolling_sum(df['Close'].diff().abs(), 3)

我认为代码很容易解释。如果你需要解释,请告诉我。在

^{pr2}$

这看起来像你要找的。在

相关问题 更多 >

    热门问题