简单的Python熊猫EMA(ewma)?

时间:2018-02-04 21:24:31

标签: python pandas

我写了一些代码来构建我自己的EMA / MACD,但我决定试试Pandas。

我在下面使用这个网站作为对EMA的基本了解,并试图让大熊猫给我相同的答案,以确保我正确使用熊猫:

http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:moving_averages

这是包含我正在使用的数据的图表。

enter image description here

以下是我试图开始工作的代码,但它给出了与10天EMA专栏不同的输出

import pandas as pd

data=[22.27,22.19,22.08,22.17,22.18,22.13,22.23,22.43,22.24,22.29,22.15,22.39,22.38,22.61,23.36,24.05,23.75,23.83]

df=pd.Series(data)

pd.ewma(df, span=10)

我也试过这个没有运气。

pd.ewma(df, span=10, min_periods=10)

感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

巧合的是,这个问题在这里得到了回答:Does Pandas calculate ewm wrong?

在那里查看@ chrisb的答案。要计算您正在学习的文章中描述的EWM:

  1. 手动计算第一个有效的简单MA作为EWA的起点
  2. 跑大熊猫' EWM与adjust=False

答案 1 :(得分:0)

根据calculate-exponential-moving-average-with-pandas自我回答,并假设close系列与close price对应,您可以使用它来获取EMA 10(如果您想要另一个范围,请将范围更改为您想要的范围

df['ema10'] = pd.Series.ewm(df['close'], span=10).mean()