我尝试用熊猫计算ema,但结果并不好。 我尝试了两种技术来计算:
第一种技术是熊猫的功能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()
答案 0 :(得分:2)
如果您想在Python中计算EWMA或任何技术指标,我建议您使用ta-lib。
答案 1 :(得分:0)
expwighted_avg = ts_log.ewm(halflife=12).mean()
其中“ ts_log”是数据帧或时间序列系列