量化实验告诉你,哪根均线更重要?

发布于: 雪球转发:0回复:7喜欢:5

这是我量化实验系列的第三篇文章,原标题应该是《论均线因素与首板胜率之前的关系》,但估计这样写就没人看了[捂脸]。这虽然是我自己的量化手记,但同时也希望借此能结识更多认同量化思路的朋友。(其实之所以考虑纳入均线因素,也是之前跟一位朋友讨论得到的启发)

友情提示:本篇会稍微“学术化”一点,没耐心的朋友可以直接拉到后面看加粗的结论部分

首先回顾下“首板”逻辑的核心:一只股票如果在N天时间里第一次触及涨停价格(我们称之为,“首板”),那么它在之后的M天时间里创出新高的概率 P 就是我们要优化的目标函数。(详细参考这里

在讨论均线之前,要先讨论下参数 N 和 M。

之前我们得到的结论是,在N=90,M=90,首板不考虑是否开板的情况下,P可以高达90%。后来在考虑到当天封板不好买入(其实也未必,从实盘情况来看,排板成功的概率可以大于50%)的情况下,如果只考虑“首板开板”的情况,此时的概率P为 78.8%

这里先要讨论下,N、M取什么值比较合理。我之前的实验取值一直是 90,也就是“首板”前后都需要观察90个交易日,加起来差不多相当于10个月左右,实盘中感觉有点太长了。因此,我决定调整为 60,这样前后加起来观察期在6个月左右,应该可以接受。事实上,实盘中兑现新高大概率在1~3个交易日

N、M还可以更小吗?比如调整为30?我个人想法是最好不小于60。

原因是一般一个相对完整的波浪周期(从启动到回落),通常会大于30个交易日。“首板”战法的核心就是希望通过量化方法找到一段升浪的“起始位置”,通过提高胜率(暂不追求收益率)来取得竞争优势。如果N,M的取值过小,会容易将启动点选择在“半山腰”,影响胜率不说,对实盘操作的心理也会产生影响。

另外一个问题,N和M可以取不同的值吗?我个人的想法是,“实盘中可以不同”,但“实验中需要相同”。

为什么呢?考虑这样一种情况,如果N=30, M=90,有一只股票,在第一个月冲高一次涨停,在第二个月冲高一次涨停,在第三个月又从一个涨停开始迎来主升浪。在这种情况下,量化实验会把在一、二、三月的三个涨停全部计算“胜利”,相当于同一个主升浪被重复计算了,这个就是所谓的“未来数据”的影响。

同样的,如果 N > M,则有可能导致第三个月的主升浪被忽略。所以最好的办法是让 N = M,这样在统计上的影响是最小的。

所以综上,之后实验默认把 N 和 M 都设定为 60,同时只关注首板开板(收盘价<涨停价)的样本,在这种情况下测得的胜率 P 是 76.32%。后面我们就专门针对这种情况做优化。

好,有了这个提前提,接下来说均线。

之前研究过位置参数对胜率的影响,一个基本结论是位置越高,胜率越高。这说明了强者恒强的道理。那如果用“均线”来衡量一个股票趋势的强弱,会有什么样的结论呢?

我分别考察了 5、10、20、30、60、250日线对胜率的影响。基本方法是:在保持上述实验条件下(N=M=60,只看开板),把所有样本分别按照这几条均线做划分,首板之前一天的收盘价(称之为:启动位置)在均线之上的一组,在均线之下的一组,然后再分别统计这两组的胜率。最终结果是这样的:

5日线上 76.13%,5日线下 76.61%

10日线上 76.05%,10日线下 76.76%

20日线上 76.62%,20日线下 75.88%

30日线上 77.48%,30日线下 74.79%

60日线上 78.83%,60日线下 74.12%

250日线上 78.87%,250日线下 75.04%

这个结果说明了什么呢?

结论1除了5、10日线,其他几条均线都是线上的胜率大于线下的胜率。

结论260日均线的区分度最大,线上与线下胜率差别将近5个点

结论3单条均线来看,250日线(年线)上的胜率最大

神奇的60日线和250日线!

60日线对胜率结果的影响最显著,这说明了什么呢?我原本以为这跟我把N和M都设置为60有关系,于是有用N、M分别取30、90试了一下,结果是一样的,无论N和M怎样取值,最终都是60日线的影响最显著。

我觉得这可能跟之前的那个判断有关系:通常一个价格波动周期大概率是围绕60个交易日来展开的。有其他想法的朋友可以多提些意见。

那么,既然60日线和250日线都比较重要,那么自然想到如果同时满足“启动位置在60日和250日均线之上”,胜率会不会更高呢?答案是肯定的:

结论4在同时满足启动位置大于60和250日均线的条件下,胜率可以达到 79.93%

这是在同时应用两条均线的情况下,能得到的最大胜率。那么,如果同时应用三根均线做判断呢?胜率还能进一步提升吗?答案也是肯定的:

结论5在同时满足启动位置大于30、60、250日均线的条件下,胜率可以达到 80.14%

那如果同时应用四根均线呢?还能进一步提升吗?

先看下有意思的5、10日线。

我们在结论1中发现,与30、60、250日线不同,对5、10日线来说,反而是均线之下的胜率大于均线之上的。我是这么理解这个现象的:

推论1:一只股票的价格在大周期上处在上升通道(30、60、250日均线之上),但小周期上处于超跌状态(5、10日均线之下)的时候,它的首板质量是最高的

结合这个,我又验证了在30、60、250日线上,但分别小于5、10、20日线的情况下的胜率,最后得到这一组:

结论6在同时满足启动位置大于30、60、250日均线,同时小于20日均线的条件下,胜率可以达到 87.5%

NB吧!仅仅通过用均线来过滤条件,我们就把胜率从最初的 76.32% 提高到了 87.5%,胜率提升了10个点!

但是要注意的是,结论5下的样本数有1133个,但在结论6的条件下样本数已急剧下降到56个。胜率越高,样本数越低,能赚钱的机会永远是少的

因此,基于这个结论,我们可以这样修正实盘策略:在首板开板的情况下,优先根据30、60、250日均线做筛选,均线之上胜率更高;在这个前提下,可以再结合 5、10、20日均线来做判断,均线之下胜率更高。

好,本次的研究结果先介绍到这里。后面会继续做更深入的研究,不断提升胜率和可行性。也希望有更多的朋友一起讨论,多提建议和想法!

附上近期实盘操作的所有标的:

$科达股份(SH600986)$ ,4月16日以4.11买入(4.0加仓),4月17日以4.33卖出;

$展鹏科技(SH603488)$ ,4月17日以9.35买入(9.2加仓),4月21日以9.5卖出;

朗进科技(SZ300594),4月17日以30.21买入,4月20日以32卖出;

光一科技(SZ300356),4月21日以6.66买入(6.25加仓),4月23日以6.7卖出;

天龙股份(SH603266),4月22日以11.17买入,4月23日以11.6卖出;

$联泰环保(SH603797)$ ,4月23日以11.21买入,收盘时仍封板,明天逢高卖出;

当前实盘胜率 100%,继续加油!

全部讨论

2020-04-23 23:06

再请教下,楼主的N日无涨停的股票池是用什么软件筛选出来的?

2020-04-23 22:27

请教,和均线的对比价格是当日开盘价还是收盘价?

2020-04-23 19:30

这个都可以做成交易策略自动交易来测试。