关于利用talib.macd函数计算macd指标与同花顺不一致的问题

本文详细解析了MACD指标的计算方法,包括EMA、DIF、DEA和BAR的计算公式。并探讨了使用Talib库计算MACD与行情软件如同花顺的计算差异,解释了初始化值和迭代次数对结果的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先我们来看下Macd指标计算方法:

12日EMA的计算:EMA12 = 前一日EMA12 * 11/13 + 今日收盘 * 2/13

26日EMA的计算:EMA26 = 前一日EMA26 * 25/27 + 今日收盘 * 2/27

差离值(DIF)的计算: DIF = EMA12 - EMA26

9日DEA = 前一日DEA * 8/10 + 今日DIF * 2/10

BAR=(DIF-DEA)*2

 

Talib.MACD返回三个值,分别是macd, signal, hist,三个返回值分别对应上面的计算指标DIF、DEA、BAR。即macd=DIF,signal=DEA,hist=BAR。

 

        当我们利用talib计算macd指标时,发现talib计算出的macd指标与同花顺等行情软件计算的指标不一致,原因在于计算macd指标时,需要初始化第一天的ema12、ema26、diff、dea。同花顺等行情软件计算macd指标,是从股票上市第一天开始计算,上市第一天的diff初始化为0,dea初始化为0,ema12=ema26初始化为当天的收盘价。而当我们用talib.MACD计算macd指标时,使用的历史行情一般是某段行情,并不是从开盘开始计算,eam12=eam26初始化为我们取的第一天的行情,diff和dea初始化为0。因此talib计算出的macd指标与同花顺的macd指标不一致。利用talib计算macd指标时,前33个值为空,猜测33个值是否是用来迭代的,当迭代足够多次数后,talib计算的macd指标与同花顺的指标误差就在一定范围内。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值