昨天写了一篇:【「交易揭秘」5日和20日均线金叉买进,死叉卖出,能盈利吗?】,限于篇幅,并没有做深入的讨论,比如如何改进它才能让它更能适应不同的行情?

其实双均线系统是个简单有效的交易系统,如果你对它做些稍微深入的研究,使用的扬长避短,其威力不亚于那些很复杂的交易系统。


既然提到改进,那我们先看看双均线系统在实盘中有哪些不足?我们取最常见的5日和20日双均线来看。

理想的双均线系统是这样的,在一个行情翻转的时候,能够精确地指示入场,并且在行情结束的时候,精确地提示离场,比如下面这段行情,数据时间段:2015年3月~5月。

然而,我们实际大部分碰到的是这样的行情,在短短一个月的时间里,行情围绕两根均线不断地交叉。数据时间段:2017年3月~4月。

震荡行情下的均线系统

抓住第一张图行情的人,真是做梦都要笑醒,因为完整地抓住了一波行情,并且几乎完美地离场。然而被第二张图行情抓住的人,怕是每天都很纠结,恨不得拿放大镜来观察K线,看看到底两根线交叉没。经常是今天刚按指标卖了,结果第二天又涨回来了。几个来回,你还能不改变三观吗?

所以我们看到均线系统的一个很大的弊端是在于碰到横盘系统以后,两根均线靠得太近,不断地产生交叉,导致来回产生交易信号。其结果经常是让交易者买在高点,卖在低点。

产生这个现象背后的数学依据也很简单,一个波动幅度很小的价格序列,在以不同周期取平均数之后,平均值都非常接近。

知道了原因,改进的方法也很简单。


昨天的文章,【「交易揭秘」5日和20日均线金叉买进,死叉卖出,能盈利吗?】,对双均线做了一个取值范围的组合优化,其中第一根均线优化范围1~10天,第二根均线优化范围10~30天,然后测试所有组合,理论上有10×30=300个组合,然后找到一个最佳值(9,30)的组合,让我们把这个组合放进上面的行情看看是什么情况。

先看2015年那波趋势行情。

可以看到,它依然完整地抓住了当时的这波行情,并且很意外的,在行情看起来要结束的时候,有3根大阴线,它居然也“完美”地抗过去了,并没有离场,跟着随后抓住了调整后的行情。

为什么“完美”要打引号,后面会说。

再看2017年3月份的震荡行情。

居然0交易!这个组合在这一个月内居然抗过了所有的震荡,没有发出一笔交易信号!

是不是有这种感觉?

且慢,如果我讲了这么久最后只是为了说我随手测试的(9,30)这个组合是最棒棒哒的系统,那我真是坑了你们了。

先说说为什么(9,30)比(5,20)好。很简单,均线系统的特点是,你取样的周期越大,则那根均线对价格的波动越不敏感。比如30日均线你图上看出来,绝对比20日均线平缓得多,这样碰到一般的震荡,它基本不会有什么变化。而我们同时把5日也改成了9日,结果两根均线都被平滑了,自然一般的震荡不会产生交易信号。

然后说说为什么这可能是个坑。

通俗地说,5日均线,代表你的交易系统,会对5日内的行情波动产生反应,9日均线,代表会对9日内的行情波动产生反应,但是我们知道,股市在下跌的时候,如果你等它跌个9天后然后系统才告诉你可以卖了,怕是真是要哭死了。

比如我们看前面的图,2015年那波,虽然系统连续抗过了3天的大跌,继续跟上了后续的行情,但是从另外个角度来说,就是系统被连打了3天的脸,居然没反应。。。

所以你看,一味地去找所谓的最优组合,是有作用的,但是很容易产生副作用。

还是需要从其它途径想办法改进。


又要对行情短期的波动有个稍微灵敏的反应,又要能尽量抓住大行情,所以最简单的一个办法是,再引入一条均线。改双均线系统为三均线系统。

思路很简单,保留两根比较短周期的均线,再引入一根相对较长周期的均线。

前两个,用于对行情的快速反应,后者,用于捕捉大趋势。

在测试上,这样就产生了很多的组合,比如我以1~10、10~30、50~100来做3根均线的取值范围,然后找最佳组合,那理论上,就有10x30x50=15000种组合了,虽然实际软件里测试的时候可以通过修改参数的步进范围来减少测试量,但是落实到实盘里,哪怕只要5组比较好的组合,也足够让交易者无所适从了。

所以我这里分享一下我的交易理念:不要去找完美的组合。

很多做程序化交易的,往往都被困在这里,恨不得以1~1000、1~1000、1~1000来做3根均线的组合,遍历所有的情况而找到完美的组合。

其实你想想,(9,30)的组合,和(8,29)、(10,31)等等参数的组合,到底实盘中会有多大差别呢?然而遗憾的是,我就是见到过对这种精确组合乐此不疲的人。。。

所以为了简化交易测试,我这里把第3根周期,固定在50日上。

为什么选50日?我拍脑袋的结果。

为啥选50日

然后我们测试看看,到底和双均线有什么差别?

在引入一根固定的50日均线做参考以后,绩效组合就成这样了。红色的,是【「交易揭秘」5日和20日均线金叉买进,死叉卖出,能盈利吗?】测试的结果,蓝色的,是三均线的结果。

每个测试值代表两根周期组合的均线在从2011年到最近的总盈亏统计。我按盈亏大小排序。

比如第一个点,就是(9,30)的组合在引入和没有引入50日均线的不同盈亏。

测试结果如果站在程序化开发的角度来说,提高惊人,印象让人最深刻的是,居然所有的组合里连亏损的都没了!也就是说,你拿一根50日均线放在那里不动做参考,然后随便找一组均线做组合,交易6年下来,居然都是盈利的

小激动

然后我们再把经典的(5,20)组合,也就是5日和20日均线这样的组合,做个单独的对比测试看看。

先看没有第三根均线的,这个图昨天看过的。

5日和20日

再看引入50日均线后的绩效图。

是不是令你印象深刻呢?

所以我们很难说5日和20日均线的金叉死叉模型到底是不是有效,而是看怎么来完善它。

仅仅引入一根我拍脑袋想的50日均线,绩效就完全不同了。这并非是我运气好,而是对均线系统背后的理论的一个理解和实际行情的一个观察。

上面的道理看起来很简单是吗?但是请把你们的股票软件打开,看看系统自带的多周期均线的缺省值是什么样的?你就可以看出,做股票软件的同学,根本没想过这些问题。


不知不觉文章开始往又臭又长的趋势发展了,我啰啰嗦嗦的毛病又要犯了,所以还是打住了。

这里只是给大家抛砖迎玉,提供点新的想法或者给大家看一下不容易看到的东西。均线系统相当实用,但是依然有不少问题难以克服,比如周期的组合选取就足够把一大堆人引入歧途了。

我相信看完这篇文章的人,肯定会有不少人想问:除了50日均线外,还有什么更好的组合吗?

我不想回答这样的问题,虽然对我来说,只是电脑软件里某个参数修改一下,让计算机运行几十秒就可以得到的结果,但是这样做会引出更多的问题,比如是否4均线更好?其实大家可以把股票软件里随便调一根大周期曲线,你肉眼上看哪个更好,就选那个,不会错到哪里去的。没有所谓的完美参数。

均线系统最大的问题其实是在周期的选择和离场的快慢上,大周期,是能克服不少波动,但是也降低了灵敏度,碰到跳崖式的行情,很容易产生坐过山车的情况。而一旦提高灵敏度,那碰到震荡行情均线反复交叉的问题又会比较严重,所以它的改进余地还是蛮大的。

只是这样讨论下去,很容易搞成个学术报告了,我就此打住吧,均线系统的问题,并不是那么容易就解决,所以有些优化手段,需要借助其它的一些方法来进行了,比如资金管理之类的,这个在以后的文章里我会讨论的。

相关文章