如何用 python 制定投资策略
本文选自邢不行老师的《python量化投资入门》课程之一个10年翻400倍的投资策略。
吃瓜群众:10年翻400倍?!这怎么可能?!肯定是标题党?!
回答:绝对不是。后面会附上原始数据、代码、结果,用数字说话。
邢不行是经管之家(原人大经济论坛)「量化投资」版块的版主,毕业于香港科技大学,热门教程《量化小讲堂》的作者。
今天,邢老师给大家分享一个选股方法,一个在过去10年可以让你的本金翻400倍的策略。
选股条件
这个策略其实非常简单,简单到只用了一个选股条件。但是这个选股条件在众多其他条件中,却是最强的一个。至少我个人寻寻觅觅这么多年,回过头来发现,还是没有一个单独的选股条件比它更强。
这个选股条件就是:市值。
市值的意思就是,在市场上买下这个股票所有的股份,总共需要花多少钱。而对于选股而言,市值是越小越好。也就是说,市值越小的股票,在将来上涨的概率越大。
可以将这个理论抽象为一个可以实际投资的简单策略:在每个月的月底,找出市值最小的10只股票,全仓等额买入。然后每月如此反复。
例如,假设一开始有10万元。在6月的最后一天,将所有股票按照市值从小到大排序,选取最小的10只股票,然后每个股票买入1万元。持有1个月,等到了7月31日,将手上的所有股票都卖掉,然后再找出届时市值最小的10只股票等额买入,如此往复循环即可。
10翻400倍
对!就是这么简单的一个策略,一个每个月只用交易一次其它时间只需要喝茶的策略,一个任何人都能实际操作的策略,从2006年至2016年,11年期间,可以让你的原始资产翻400多倍。
下图中蓝色的曲线是按照这个策略进行投资的资金曲线图。起点是1,到2016年末是467,也就是翻了467倍 。绿色的曲线是同期大盘,也就上涨了十几倍。
策略会失效吗?
记得很多“专家”在2009年的时候就说过,小市值选股将来不会再有效了。但是这些人一再的被打脸。不说这个策略2009年到现在收益惊人,仅仅看去年2016年,通过这个选股条件选出来的股票就涨了90%左右。试问有多少人可以跑赢呢?
具体可看下图,记录了这个策略过去11年每年的收益。
当然,现在小市值选股已经越来越成为行业公开的“秘密”了,很多看上去高大上实际上呵呵哒的量化基金,它们背后的逻辑本质上就是小市值选股,可能就和刚刚分享的策略一样简单。
确实,策略知道的人多了,就谁都不能保证它将来可以继续赚钱,例如在2017年的一季度,小市值股票就出现了一轮回调。
但另一方面,也没有谁可以保证它将来就不赚钱。我们唯一知道的是,在过去近三十年的A股市场上,它非常的赚钱。在过去一百多年的美国市场上,它也非常的赚钱。甚至有学者撰文阐释这个策略有效的原因,从而获得了诺贝经济学奖。
所以这是一个经历过时间检验、有理论支撑的策略,至少是一个优秀策略的基础。它会有低谷,但是长期来看,必定有超额收益。
python代码实证
接下来我们用历史数据和python去验证这个策略,用数据说话,大家可以自己看看这个策略是否真的能赚这么多钱。
下图是用到的历史股票数据。这个数据,包含了所有股票从上市至今每个月的数据,每一行就是一个股票在一个月的相关数据。
其中第四列【是否交易】字段,含义是这个股票在当月最后一个交易日是否交易。用于排除那些在月末最后一天停牌而不能买入的股票。
第五列的【最后一天涨跌幅】字段,含义是这个股票在当月最后一个交易日的涨跌幅。用于排除那些在月末最后一天涨停而不能买入的股票。
接下来就是处理数据的python代码,加上注释、空行,总共也就50多行。python就是这么强大。
如果需要数据和代码,请扫文末二维码咨询。
视频讲解
若对代码不是很理解,可以看下面的两个视频,里面不仅有关于以上代码的逐行讲解,还有我的量化学习方法,即使没有任何基础也能看的懂,试试看吧。