做交易的人程序化交易,始终绕不过一个共同的必经阶段程序化交易:对交易指标的摸索学习。曾经我对一些指标也很感兴趣程序化交易,曾将之编成MT4交易程序,开着电脑测试到凌晨三四点,孜孜不倦,乐此不疲。

说到指标,就不得不提起一个自带光环的指标,因为有人称之为“指标之王”,它就是MACD指标。

到底它是不是那么牛?

我对MACD曾仔细学习和研究过,而且这些年也一直在使用它,也算是颇有心得。但这里不打算展开讲,先留着将来慢慢细聊。今天主要是要写成交易公式,去验证一下它有多牛?

打开交易开拓者,打开TB公式管理器新建一个公式应用,我就随意命之为“MACD111”吧,MACD编写成交易公式如下:

程序化交易

上方打钩按钮处点一下,编译保存公式无误,MACD交易系统编写完成。

交易思路是MACD金叉开多单,到指标死叉就平掉多单并且反手开一个空单,再到指标金叉时就平掉空单并且开一个多单,如此循环。简言之,这就是一个根据MACD交叉循环开仓和平仓的交易系统。

其实还有更简单的编写方式,比如根据红绿柱子的转换来开仓和平仓。下面我再写另一个版本的MACD交易公式,姑且命名为“MACD222”吧。

程序化交易

其实,红柱子转变成绿柱子开仓做多,和两根线形成金叉开仓做多,意思基本是一样的。但是在实际挂到交易账户的时候,MACD222可能会发生信号闪烁,买卖指示也就飘忽不定,这可能导致一个看涨信号处会多次发出买卖申请指令进单(多次进单),或者信号最终是假确立但是已经进了单(误进单)的情况。

我举个例子:假设你把MACD222放到棉花1H盘面挂起,要注意当MACD绿柱子即将转入红柱子的那一根柱子(那根K线)。1H盘面是一个小时确立一根K线,在这一个小时之内,行情有可能大涨大跌。也许在走势大涨的时候,MACD的第一根红柱子已经开始出现,所以交易系统发出做多买入的开仓申请指令,多单进场。。但是随后行情快速又跌了回去,刚刚冒头的红柱子很快又变回是绿柱子,且到该小时K线定型的时候,最终是走势延续下跌,绿柱子加长(无法形成金叉),既然没有绿转红,那就不改进多单。可是在这一小时内,由于信号闪烁不定,导致系统已经误进了一个多单。

甚至一小时内,冒头的红柱子有可能多次冒头,在没有限定下单量的情况下,就有可能多次进单,原本一个绿竹转红柱的信号只应该进一单,最后变成了一个信号进了很多单(假设没有限定下单量而且账户资金充足)。

这些都是当初我捣鼓这玩意的时候的一些经历和经验,在这里写出来,是希望大家少走点弯路。程序化交易也并不是很简单的事情,里面也有很多坑,甚至不同的软件,不同的合约以及合约快到期要换新合约的时候,都可能有内牛满面的突发状况要应付。这就像是某一天你走在街上,突然碰到了初恋,并且她还问你当初对她的感情是不是真的?

程序化交易

说了这么多,是要提醒大家在真正实盘挂一个交易程序之前,要进行多次测试,认真观察有没有漏洞,要不断完善,才能达到真正想要的那个开仓平仓效果。

因为计算机语言也会有多种表达方式,即使看起来差异不大的表达和描述,也可能差之毫厘谬以千里。交易系统投入使用之前的观察和测试,能帮你节约很多冤枉钱。

言归正传,我们把MACD加载到一些品种上试试,看看它是屠龙刀还是一把烂铁。什么品种呢?你想做什么品种就加载到什么品种。

我随便找PTA和菜粕做个测试,先看PTA,假设挂在PTA一小时盘面,测试时间暂且从2000年1月1日起吧。测试结果如下:

程序化交易

还别说,是真能赚钱的,净利润59630。这个结果能让你感到满意吗?

看测试报告的一些要点,我在上一篇文章也讲了一些。例如要看资金曲线的平稳性,还要看资金回撤程度,自己是不是能够承受得住。我们再看一下它的资金曲线:

程序化交易

一看这个资金曲线,这,,,

虽说在开始那几年,这个交易系统确实经历了一段资金快速上扬的美好时光,但是总体的资金曲线确实挺难看。如果我们挂起这个交易系统的时间,刚好是图中资金曲线的最高处,那么后面的一大波资金回撤,我们能承受得住吗?

我们换一个品种再测试,例如豆粕,一样的设置好时间和周期,看一看它的测试结果如何:

程序化交易

从测试报告结果看,几乎没赚钱,把本金放银行收利息,说不定利息还比这高呢。

再来看一下它的资金变动曲线,如下如:

程序化交易

简直是惨不忍睹啊。

可见如果简单的按照默认参数,随便点一个品种,随便选择一个周期,MACD很有可能只是一把烂铁。如果你真的要按照这个信号交易,大概率是不能赚钱的。

看来号称指标之王,也不过如此,这个糟糕的表现会不会让你心碎了一地?你是不是对这个“指标之王”失望透顶?

如果此刻有个央视美女主持拿着话筒放到你嘴边,让你说说自己的感受,你打算怎么说呢?

其实,倒也没必要太悲观,因为好戏还在后头。

假如把默认的参数适当调整一下,或者改用到其他的周期盘面,或者再换成其他的品种,看看结果会怎样?

假设我们单单先从改动参数着手,品种依然选择这个豆粕,我们把MACD指标的参数稍作改动,例如由9.12.26改成12.20.50(你也可以改成别的参数,自己去试),再来测试一下,测试报告就完全改观了:

程序化交易

什么都没动,只是简单地改了一下参数,测试结果从净利润3590变成净利润42900。吃惊了吗?

再看看它的整个资金变动曲线:

程序化交易

相对前面那个不堪入目的资金曲线,这一次的资金曲线也是打了个漂亮的翻身仗!

一样的品种,一样的周期,一样的交易公式,一样的测试时期,只是参数稍微改了一点,结果却有天地之分。

可见原来那把烂铁,稍作打磨,俨然就变成了一把金光闪闪的屠龙刀!任何的指标,再深入研究下去,原理都是类似的。运用之妙,存乎一心。

世界上没有绝对的指标之王,只是看人怎么运用而已。如果不会用,屠龙刀在手里也只是一把烂铁。如果运用恰当,随便一把烂铁也可以变成天下无敌的屠龙刀。

做程序化就是这样,要进行很多次的设计和验证,多次的适当修正和完善,才能得到理想的交易系统。真正完善的交易系统,应该尽可能使用多品种多周期多策略,共同作用之下能增强系统整体盈利的稳定性。

本文依然只是抛砖引玉,更多的试验我就不在这里一一展开了,大家有兴趣的可以自行研究和测试。

关于双均线交易和MACD交易,我都已经写成交易公式无私奉献给大家了。有的朋友还曾问到MT4和MT5怎么做程序化,将来有机会我再写出来吧。

有学习需要的朋友可以把我的文章收藏起来慢慢看。本次内容就到这里吧,关注我,别跟丢了。