我尝试使用 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()