PDF下载
基于MACD指标的程序化交易策略优化研究

张启徽

山东交通学院,经济与管理学院,山东济南,250357

摘要: 交易程序在趋势性行情中更容易捕捉到交易信号,因此只有在趋势性行情中才能体现出程序化交易的优势,在为数不多的趋势性指标中,适用于研判中长期趋势的MACD指标在交易化程序中得到了最广泛的应用。然而由于震荡行情的存在和MACD指标自身的缺点,在实际应用中总有不尽人意之处,文章提出了三种改进措施以弥补MACD指标在实际应用中的不足。
关键词: 程序化交易;MACD指标;历史数据回测;止盈止损
DOI:10.12721/ccn.2022.157032
基金资助:
文章地址:

一、引言

在目前的程序化交易中,主要有两种方法构建程序化交易策略,一种是以常见的技术指标为基础构建策略,另一种是以大数据、人工智能和机器学习为基础构建策略;后一种需要较深的计算机知识,在机构投资者中应用较多;以技术指标为基础构建策略实现起来相对容易,个人投资者多以此构建策略。具有明显趋势性优势的MACD指标在技术指标为基础的策略中得到广泛应用,有研究表明在程序策略中使用MACD指标能提高收益率。

(一)构建基于MACD指标的程序化策略

 MACD指标的计算:

 DIF:=EMA(CLOSE,12)-EMA(CLOSE,26)

 DEA:=EMA(DIF,9)

 MACD:(DIF-DEA)

根据MACD指标编写交易策略就是将DIF和DEA的值以及它们的相对位置、DIF和DEA的交叉穿越情况、MACD柱的增高或收缩以及形态等情况在策略程序中得以编程实现。笔者在期货通平台上实现了基于MACD指标的交易策略,部分策略代码如下:

BUYCON:=(BUYRED OR BUYONSAR OR BUYCBX OR BUYLB OR BUYONE) #开多条件

SHTCON:=(SHTDWSAR OR SHTUP OR SHTCBX))#开空条件

SELLCON:=(SELLSAR1 OR SELLSAR2 OR SELLSAR03) #平多条件

BPCON:=(BPCON1 OR BPCON2 OR BPCON3) #平空条件

BUYSHORT_BUY(BUYCON,C)

SELL(SELLCON AND C<SAR4,C)

SELL_SELLSHORT(SHTCON,C)

BUYSHORT(BPCON AND C>SAR4,C)

二、优化基于MACD指标的程序化策略

对策略优劣的判断有胜率、最大回测、收益率、年化收益率、夏普比等,个人投资者一般初始资金不多,心态不稳,提高胜率对个人投资者尤为重要。策略最好的优化是提高胜率的同时能提高盈利,但当策略优化到一定程度时,提高胜率就难以再提高盈利,甚至可能使盈利下降,如果提高胜率的同时盈利下降不多,也可以作为优化的选项之一,在下文中通过不同的优化方法以提高胜率为前提并兼顾收益率来优化策略。

(1)通过调整MACD参数来优化策略

通过MACD的计算公式可知MACD参数有快速移动平均参数、慢速移动平均参数以及DIF的N周期平滑移动平均参数,一共三个参数,如果这三个参数同时在各自的范围内以步长为1进行优化调整,需要三层循环的往复计算,程序计算量大,如果使用的计算机性能不好,在不断调整参数的计算过程中可能会出现死机或程序退出现象。为了减少计算的复杂性,可先对其中两个参数采用默认值,对另一个参数进行调整优化,找到最优值;再以找到的参数的最优值为默认值,对另一个参数进行调整优化,找到最优值,这样对历史数据回测三次就可以找到三个参数的最优值。也可以采用另一种简化方法,将快速参数和慢速参数作为一个参数,作为计算公式中快速参数12和慢速参数26的系数(EMA(CLOSE,12*x)-EMA(CLOSE,26*x)),系数有较小的变化就可以使参数范围有较大的变化,由三个参数的优化简化为两个参数的优化,减少了参数和计算量。文章采用后一种参数调整方法,快速和慢速参数范围设定为1~10,这样快速参数的变动范围为(12~120),慢速参数的变动范围为(26~260),DIF的周期变化范围设为(5~15),通过回测历史数据可以得出每个期货品种最优的MACD参数,因篇幅限制不再回测具体品种的MACD的最优参数。

(2)通过二次平滑增加MACD指标的趋势性

移动平均可以平滑价格的波动,通过移动平均可以更容易看出市场的趋势。在原来的MACD指标的计算公式中,MACD柱通过DIF与DEA的差值来计算,为了增强MACD柱的趋势性,可以用MACD的5日移动平均来代替原来的MACD,可以过滤掉因微小的价格波动造成的MACD红柱或绿柱的间断,增加了MACD红柱或绿柱的延续性,提高了MACD指标判断趋势的能力,也就相应的提高了策略的有效性。修改后的MACD指标公式如下:

DIF:=(EMA(CLOSE,12)-EMA(CLOSE,26))

DEA:=EMA(DIF,9)

MACDTMP:=(DIF-DEA)

MACD:EMA(MACDTMP,5)

在下面的实例中,对商品期货在1分钟周期下的历史数据进行回测,通过对比MACD平滑前后,策略在同一时间周期内(2023/3/1~2023/3/31)、对同一商品期货的历史数据回测结果可以看出:平滑后的策略在菜粕、豆粕两个期货商品上的胜率和净利润都有所提高,在PVC上胜率提高,净利润下降很少,说明优化方法有效,这三个商品期货的历史数据回测结果表明,对MACD指标进行二次平均移动,能提高策略的胜率,可以作为优化策略的方法之一。

表1:平滑前策略运行结果

5.png

表2:平滑后策略运行结果

6.png

(3)与其他技术指标结合增加MACD的可靠性

在以技术指标构建策略过程中,通常选取多个指标,通过指标共振来提高判断行情的准确性,从而提高策略的胜率。策略编写者通常根据自己对技术指标的掌握程度来选取与MACD指标共用的其他指标,通常选取自己能熟练使用的指标,也可以选择其他趋势性指标,如多日移动平均线、BOLL、SAR指标等。

(4)通过合理的止盈止损规避风险

研究表明,再好的策略胜率最多60%左右,利用程序进行交易给出错误信号不可避免,如果策略仅仅使用平仓信号进行平仓,虽然策略给出了平仓信号,但有时会出现行情的剧烈波动,实时价格不再符合平仓条件时的价格条件,难免出现平不了仓的情况,这时在策略里设置止盈止损就显得尤为重要。在策略中通常使用追踪止盈来平掉盈利单,使用限价止损来平掉亏损单,当亏损达到一定数额时自动强制平仓,从而规避爆仓风险。

总结

文章总结了基于MACD指标的程序化交易策略优化建议,其中对MACD的二次平滑优化在其他文献资料中未曾查阅到,属于文章的创新之处,其他优化措施在其他文献中虽能查阅到,文章也进行了补充改进,如有不对之处请指正。

参考文献

[1] 贾宇杰. MACD指标在股市实战中的应用及其存在的问题研究[J],金融视线2018.12.

[2] 余冬悦.基于技术指标组合的程序化交易策略[J],荆楚理工学院学报2019.12.

[3]姜国彦. MACD指标最优参数研究-量化投资的一种技术策略[D].吉林:吉林财经大学201806