Python计算MACD的误区

本文探讨了在使用Python计算MACD时的误区,主要涉及指数函数的理解和指数移动平均(EMA)的计算。错误在于使用span=12无法正确获取过去12天的数据,以及对权重分配的误解。正确做法是使用rolling函数结合ewm函数来计算EMA,确保权重分配的准确性。修正后的代码示例给出了解决问题的方法。
摘要由CSDN通过智能技术生成

Python计算MACD的误区

指数函数是重要的基本初等函数之一。一般地,y=a^x函数(a为常数且以a>0,a≠1)叫做指数函数,函数的定义域是 R 。

df['EMA_short'] = df['收盘价_复权'].ewm(span=12, adjust=False).mean()
df['EMA_long'] = df['收盘价_复权'].ewm(span=26, adjust=False).mean()

span=12不能实现取出过去12天的数据。
alpha=2/(1+span),span=12意味着df[‘EMA_short’]中每个数都由上一个df[‘EMA_short’]和df[‘收盘价_复权’]生成,上一个df[‘EMA_short’]的权重为11/13,df[‘收盘价_复权’]的权重为2/13
同意的
同样的数据,上图为上面方法计算的MACD,下图为下面方法计算出的MACD,结果并不相同。
在这里插入图片描述
在这里插入图片描述
同样,上下图是两种不同方法的ema,12日线和36日线。
在这里插入图片描述

正确的代码应该如下:

# 计算MACD
df['EMA_short'] = df['收盘价_复权'].ewm(com=1, adjust
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值