-
【邢不行|量化小讲堂系列46-实战篇】用Python验证A股名言:跳空必回补...吗?【附代码】
邢不行python量化投资 / 2019-04-24 17:49 发布
引言:
邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。
用Python验证A股名言:跳空必回补...吗?【附代码】
这是邢不行第46期量化小讲堂的分享
转载请联系授权
A股有一句流传已久的格言,叫做「跳空必回补」。
对这个格言,有很多流行的解释,例如:跳空缺口会导致盘面多空势力发生陡变,之后必然要回调;或者缺口使股民手里的筹码盈亏情况发生剧烈变化,所以会引发回补。
解释方法很多,但不管怎么说,跳空到底是不是一定会回补?哪些跳空容易回补?本文就用Python分析股票历史数据来验证一下,看看这句格言到底对不对,能不能让我们赚钱。
所谓跳空回补指的是这样的形态:
在上图黄色的框里,出现了一次向下的跳空:下一根K线的最高价低于前一根K线的最低价。跳空之后,价格逐渐回补,也就是逐渐涨回了跳空之前的价格。
当然,并非所有的跳空都会在短时间内回补:
例如这次向上跳空。跳过之后,价格继续上涨,至少在图中所示的K线中,并没有跌回跳空之前的价格。
所以跳空其实很好定义:
「当前K线的最低价高于前一根K线的最高价,说明出现了一次向上的跳空;当前K线的最高价低于前一根K线的最低价,说明出现了一次向下跳空。」
使用Python,我们可以很方便地描述跳空:
那跳空回补怎么定义呢?其实也很简单:
「出现向上的跳空之后,往后看价格有没有跌回跳空前的价格;出现向下的跳空之后,往后看价格有没有涨回跳空前的价格。」
在明确定义好什么是跳空回补之后,我们就用实际的数据来分析一下,历史上跳空后,到底有多大的概率会回补呢。
我们使用从1990年到现在上证指数的日线数据,来验证是不是所有的跳空都会回补。
经过测算,我们发现,这句格言接近正确。在上证指数上,从1990年12月19日到2019年4月4日,总共出现了684次跳空,其中有637次都回补了,回补概率高达93.13%。
这格言这么有效,赶快拿来赚钱吧!
且慢,其实还有很多数据要分析。例如到底过多久才会补?如果一个缺口要几个月甚至几年才能补上,那未免太折磨人了。
经过编程回测,我们可以得到跳空之后,到底花多长时间,缺口才会补上。下图就展示了回补天数的分布:
由图中可以看出,大多数的回补都在50天之内完成了,但是也有少部分需要400天以上的时间。平均下来,完成一次回补大概需要83天左右。
整体来看,跳空回补的情况大概就是这样。但是跳空实际上也是分好多种的,那不同的跳空之间,情况会不会有区别呢?
根据跳空的方向,可以把跳空分为向上的跳空和向下的跳空。它们表现为这样的形态:
向上跳空:前一根K线的最高价小于后一根K线的最低价。
向下跳空:前一根K线的最低价高于后一根K线的最高价。
在A股28年多的历史里,上证指数总共经历了296次向下的跳空,其中只有5次没有回补;388次向上的跳空,其中有42次没有回补。
为什么向上跳空回补的少,向下回补的多?其实这个原因也很简单:向下跳空,只要指数涨回来就能回补,而股市整体来看是向上涨的,当然就基本全部回补掉了。
跳空回补需要的时间也不一样。向上和向下跳空回补时间的中位数分别是10天和7.5天:
在最极端的案例里,向下跳空整整花了2681天才回补,向上跳空花了2182天才完成回补。
我们来详细看一下这两个极端案例。向下跳空的极端案例发生在2008年1月22日。
看起来就是一次平平无奇的跳空,然而这次跳空是真正的跳在山顶,之后价格一路下跌,直到2015年才补回来。(虽然补回来之后又一路狂泄...)
向上跳空在最极端情况下也经历了将近六年的回补过程,1999年5月20日发生了一次向上的跳空:
随后价格就一路上涨,直到2005年5月10日才回补。这次回补,让市场的情绪降低到了最低点。
当然,跳空之后,至今没有回补的情况也有发生。最著名案例发生在2006年4月28日的一次向上跳空,当时的上证指数大约1400点,至今还没有回补。这次的跳空,基本上就开启了之后一年多波澜壮阔的大牛市。
还有就是2007年11月2日那次著名的向下跳空:
跳在5860点,到今天上证也没有涨回过这个位置。虽然之后肯定是会回补的,不过到底什么时候才能补上,就说不好说了。也许是在...2022年?
我们也注意到,每次跳空的幅度差距非常大。有些跳空连万分之一都没有,但有些跳空高达10%,下图展示跳空大小的分布:
那跳空的大小会不会影响之后的回补呢?
经过计算,跳空大小在1%-5%的范围里时,回补的概率最高,但其实整体看下来,跳空是不是会回补,和跳空的大小没有太明显的关系,组之间的差异也并不大。
我们上文从跳空的方向、幅度大小两个角度进行了分析。除此之外,其实还有很多分析方向,随便举几个例子:
比如可以考察跳空时成交量大小,放量的跳空上涨可能更有意义;也可以考察跳空时是否发生的重要事件,伴随重要事件的跳空是对后市显著的信号;还可以看看跳空有没有形成关键形态,例如突破了前期高点等。
以上都可以给跳空分类,构建策略。实际上我们的量化策略也是这么开发的:基于在市场中得到的具体交易经验,然后通过python和历史数据,去验证这个经验,并在此基础上不断的改良,最终形成优秀的策略。
关于本文跳空的分析,建议感兴趣的朋友自己去鼓捣鼓捣。也可以加询问本文的数据和代码。
本文使用的代码如下: