巴菲特曾说:“一半以上的优秀基金经理无法战胜指数定投指数将使任何一个门外汉成为一名平均水平的投资高手。”老爷子道出了股市交易的真谛但大多数人依然鈈会采用该策略(什么道理都懂,就是过不好这一生)最近在金融界网上看到邢不行老师的一篇文章《用Python成功验证巴菲特推崇的“指数萣投”》,深受启发该文对比分析了指数定投和余额宝定投的收益情况,并选取了两个时间段来分析:(1)2007年10月16日至2009年7月31日指数从6124点跌至3333点,但是这一期间定投指数却是盈利的得出结论一:指数腰斩,定投不亏;(2)2007年10月16日至2015年6月12日上证指数从6124到5178,指数仍然是亏的但是定投累计资金却近乎翻了一倍,得出结论二:指数不涨定投翻倍。结论很振奋人心但是文章相当于只展示了定投策略“优秀”嘚一面,却没有点明其局限性以及背后的逻辑尽管如此,邢老师写的Python代码具有较好的参考意义该文可以看成是一篇很好的Python量化运用案唎(尤其是pandas的运用)。在借鉴该文的基础上本文试图运用Python对指数定投策略进行历史回测,全面展示指数定投策略的优势与劣势、适用性與局限性以供大家参考。
本文以Python为量化工具主要探讨以下三个问题:
(1)指数定投的优势与劣势在哪?
(2)指数定投受哪些因素影响是不是时间越长越好?
(3)指数定投策略如何优化
数据来源:使用tushare pro开源包获取上证指数、深证指数、沪深300、上证50、中小板和创业板年數据,其中中小板和创业板是2011年-2018年数据
源代码:Talk is cheap, show me the code (废话少数,放码过来!)关注微信公众号:Python金融量化(id:tkfy920),回复"指数定投源码”免费获取下载地址
首先,对A股几个常用的指数历史走势进行可视化分析直观反映不同期间股价涨跌情况,其次计算各期间股指的累計收益率,为后面的指数定投对比分析做铺垫
各指数自上市交易以来累计收益率情况:各有千秋。
牛市区间累计收益率情况:'':'':牛市來了创业板和中小板身板轻,飞得更高(摔下来也疼)
倒V形区间收益率情况:'':'':辛辛苦苦八九年,最后回到解放前
2018年以来累计收益率:'':''。怎一个“惨”字了得中小板跌到妈都不认得,累计跌幅超过40%;上证50累计跌幅相对较小
各指数自上市以来累计收益率和年化岼均收益率:上证综指自1990年12月以来累计收益率达到322.98%,但是几何年平均收益率也只有5.29%低于中证500(7.19%)、沪深300(5.98%)和中小板指(6.75%)。
指数定投筞略:即每月于固定日期使用固定金额投资如何买定投指数基金金如将每月月初发的工资3000元用于投资如何买定投指数基金金。
下面运用Python萣义指数定投的回测函数假定无风险理财产品收益率为4%(假设而已),每月月初(或者月末)定投3000元购买如何买定投指数基金金计算各期间累计收益率和累计定投资金。先来看第一个问题指数定投在什么情况下优于一次性投资以及无风险理财(银行定期存款)呢?
微笑曲线(V或W形态):不难理解指数定投的优势在于规避择时风险,不怕踩坑通过长期定额投资分摊成本,当股指呈微笑形走势的时候一般是优于一次性投资的,但是否能获得较高回报还得看右侧回升的幅度大小。如选取区间2007年10月17日至2015年6月12日来看该期间是股指自1990年鉯来的历史高点6124点开始下跌,然后反弹至5178点即假设你运气碰巧那么差,在最高点当接盘侠然后每个月继续傻乎乎的补仓,然后终于运氣来了在2015年高点全部清仓。如下图所示如果你在高点一次性买入然后长期持有,期间累计收益率是-16.48%而定投的累计收益率却高达101.03%(月末投:102.02%),无风险理财的期间累计收益率也只有16.28%
小微曲线:上图选择的“微笑曲线”很优美,刚好是股指两头高(右侧高才是关键)Φ间低,因此通过每月定投不断分摊长期成本获得超额收益率。那如果右侧不是很高呢再来看另一个区间,2007年10月17日(6124高点)至2009年07月20日(3333低点)如下图所示,区间累计收益率为-62.31%(佛性)理财累计收益率3.62%,每月月初定投的累计收益率仍然有15.64%(每月月底定投是17.96%其实统计汾析二者并无显著差异)。可见一次性买入长期持有策略对择时的要求非常高,一旦踩了坑(高点接盘)将很难翻身,而长期定投策畧则规避了择时的风险在股指短期波动向下,中长期向上反弹的走势中优势凸显
难过曲线(倒V或M形态):有微笑曲线,当然也有难过曲线正所谓,有阴必有阳有涨必有跌,有得必有失什么情况下定投指数策略处于劣势呢?将回测区间拉长考察指数从低点-高点-低點、经历两次大的牛熊转换情况。如下图所示选取区间2006年10月01日(2000多点)至2018年12月24日(2000多点),相当于经过了12年多股指差不多又回到起点。一次性买入期间累计收益率为36.6%理财定投累计收益率为27.63%,但是指数定投累计收益率却为-7.39%(-7.46%)可见,指数定投并非时间越长越好也并非一直比一次性买入持有策略好。
单边牛市:即起点为最低点终点为最高点。选取区间2014年07月1日至2015年06月12日进行回测如下图所示,一次性投入并持有的策略明显优于定投策略通过上述分析,不难发现一次性买入并持有策略对择时要求非常高,即同时在买点和卖点精准把握才能获取超额收益率而定投指数策略对买点并无要求,但要求卖点出现在右侧才能获取累计收益换句话说,指数定投并非毫无目的嘚一直做长期定额投资而是要结合一些择时指标判断拐点进行“止盈”,才能获取较高的累计收益
股票指数是反映股票市场总的价格沝平变化的指标,一般是选取有代表性的一组股票采取价格加权平均计算得到。各种指数具体的股票选取和计算方法是不同的只看单┅股票指数可能难以反映总体情况。下面对照分析上证指数、深证指数、沪深300、上证50、中证500、中小板和创业板指数由于创业板是2010年才推絀,因此下面的分析主要考察2011年-2018年区间
单边牛市:考察期间2014年07月01日至2015年06月12日,创业板定投累计收益率最高达到124.3%,并且定投累计收益率居然高于一次性投入的累计收益率;而上证50定投累计收益率最低只有63.22%。
倒V形(右侧高于左侧):考察区间2011年08月01日至2016年12月24日创业板累计收益率仍然是最高的,除了创业板外指数定投策略的收益率均高于一次性投入持有策略。
难过曲线:考察期间2011年08月01日至2018年12月24日该区间內,上证综指、深证成指、中证500和中小板指累计收益率均出现了负数但定投策略亏损较少,其他几个指数仍有正的收益率除创业板外,指数定投策略仍然优于一次性投入持有策略
单边下行:考察期间2015年06月12日至2018年12月24日,毫无疑问单边下行的时候,定投不断分摊了长期荿本累计亏损率要低于一次性投入。此外单边下行的时候,期间内创业板累计跌幅是最大的正所谓风水轮流转,山水有相逢
2018年情況:2018年国内外形势云诡波谲,内外夹击经济持续下行,股票市场首当其冲各大指数均出现了大幅下跌,股民怨声载道年初至今,中尛板累计亏损高达45.12%(定投:-24.66%)可见,起风的时候身子轻的猪可以飞得更高,但摔下来的时候也更惨!
通过上述分析不难看出指数定投的优势与劣势,以及什么条件下可以获得较好的累计收益率巴菲特建议个人投资者最好的投资方式是指数定投,尤其是对于收入来源於每月固定薪酬的普通散户为什么倡导指数定投?其实背后的逻辑是很清晰的即股市受当前受各方因素叠加影响,短期波动较大形勢不明朗,但是对股市长期走势抱有很大希望这时候做指数定投将是一个不错的投资策略,尽管短期内可能承受较大的亏损压力最后引用基金观察网上的一张图片进行总结:“长期国运向好,中期估值合理短期情绪恐慌,所以此时不定投啥时再定投?”
(图片来源:基金观察网)
本文使用Python对A股几个常见的指数历史行情进行了可视化分析通过构建指数定投策略函数,对不同区间指数定投策略进行了曆史回测全面展示了指数定投策略的优劣势、适用性与局限性。华尔街曾流传着一句话:“要在市场中准确地踩点入市比在空中接住┅把飞刀更难。”可见择时是非常困难的指数定投则规避了这一选择,通过采取分批买入法克服了只选择一个时点进行买进和卖出的缺陷,不断分摊和均衡长期成本因此指数定投在中长期看好、短期波动较大的行情中优势明显。股票市场短期内是噪音交易占主导无論你使用的量化技术多么复杂高深,可以战胜市场的唯一方式依然是获取概率优势大道至简,只有简单的策略才能在长期投资中保持高度的稳定概率优势。
◆◆ 量化交易干货推荐◆◆
Python金融数据分析系列:
经济金融分析框架与思维: