量化投资学习[TA

您所在的位置:网站首页 macd计算过程 量化投资学习[TA

量化投资学习[TA

2023-08-11 13:03| 来源: 网络整理| 查看: 265

移动平滑异同平均线(简称MACD指标)策略。MACD是查拉尔于1979年提出来的,由一快及一慢指数移动平均(EMA)之间的差计算出来。“快”指短时期的EMA,而“慢”则指长时期的EMA,最常用的是12及26日EMA。

MACD指标是运用快速(短期)和慢速(长期)移动平均线及其聚合与分离的征兆,加以双重平滑运算,是一种趋向类指标。根据移动平均线原理发展出来的MACD,一则去除了移动平均线频繁发出假信号的缺陷,二则保留了移动平均线的效果,因此,MACD指标具有均线趋势性、稳重性、安定性等特点,是用来研判买卖股票的时机,预测股票价格涨跌的技术分析指标。

Talib提供了MACD函数,我在研究中实验了MACD的用法,并自己进行了编程,对比了结果,与同花顺交易软件中的指标走势一致。使用Talib中的MACD进行了策略回测。

计算方法:

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

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

差离值(DIF)的计算: DIF = EMA12 - EMA26,即为talib-MACD返回值macd

根据差离值计算其9日的EMA,即离差平均值,是所求的DEA值。今日DEA = (前一日DEA X 8/10 + 今日DIF X 2/10),即为talib-MACD返回值signal

DIF与它自己的移动平均之间差距的大小一般BAR=(DIF-DEA)2,即为MACD柱状图。但是talib中MACD的计算是bar = (dif-dea)1

def myMACD(price, fastperiod=12, slowperiod=26, signalperiod=9): ewma12 = pd.ewma(price,span=fastperiod) ewma60 = pd.ewma(price,span=slowperiod) dif = ewma12-ewma60 dea = pd.ewma(dif,span=signalperiod) bar = (dif-dea) #有些地方的bar = (dif-dea)*2,但是talib中MACD的计算是bar = (dif-dea)*1 return dif,dea,bar macd, signal, hist = talib.MACD(df['close'].values, fastperiod=12, slowperiod=26, signalperiod=9) mydif,mydea,mybar = myMACD(df['close'].values, fastperiod=12, slowperiod=26, signalperiod=9) 复制代码 注意: 1.可以看出Talib中的MACD对前33个初始值是未定义的,使用时需注意。 2.可以自己编程,将初始值赋值为计算的第一天价格,得到曲线,由于初始值赋值不同在一段时间后,自己定义的macd函数和Talib提供的MACD函数值一致,说明两种计算方法一致。 3.输入的数据量尽量足够大(推荐是你真实计算MACD的数据量的3倍),例如,你需要计算2017-04-01到2017-05-01的MACD,那么你需要输入的数据日期应该是2017-02-01到2017-05-01; 4. TA-LIB计算出来的DIF,DEA等方法和行情软件的计算方法是一样的。但是行情软件提供的macd一般是指股票上市以来计算的,若你抽取一段时间来计算,数值上会有少量差别的,但是不影响macd的基本判断;

参考:zhuanlan.zhihu.com/p/39935868

参考:blog.csdn.net/IAlexanderI…

参考:www.webhek.com/post/stock-…



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3