python - 用 Pandas 计算指数移动平均线

标签 python pandas

我尝试用 pandas 计算 ema,但结果并不好。 我尝试了 2 种技术来计算:

第一个技巧是 Pandas 的函数ewn:

window = 100
c = 2 / float(window + 1)
df['100ema'] = df['close'].ewm(com=c).mean()

但是这个函数最后给出的结果。 2695.4 但实际结果是 2656.2

第二种技术是

window = 100
c = 2 / float(window + 1)
df['100sma'] = df['close'].rolling(window).mean()
df['100ema'] = (c * df['close']) + ((1 - c) * df['100sma'])

结果是 2649.1 它比第一种技术更接近,但总是不好

sma 函数给出了很好的结果

** 编辑 **

响应是

df['100ema'] = pd.Series.ewm(df['close'], span=window).mean()

最佳答案

如果你想用 Python 计算 EWMA 或任何技术指标,我推荐使用 ta-lib .

关于python - 用 Pandas 计算指数移动平均线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812198/

相关文章:

python - 3D 二进制数组中到其他类型最近点的距离

python - 查找值大于列平均值的列

python - 在 python 中使用 resample ('W' ),sum() 进行基于自定义周期的重采样时出错

python - 如何在没有重复的情况下找到两个数组中最接近的元素 [duplicates] 并在 Python 中返回两个数组的索引?

python - 旧 Plone 产品的自动化蛋化

python - Django:具有完全相同角色的属性和查询集的 DRY 代码?

mysql - Pandas 导入未插入所有行

python - Pandas DataFrame 转 JSON 格式文件

python - 如何在python中左对齐数据框列?

python - 如何在尚未被空格包围的破折号前后插入空格?