引言
巴菲特曾说:“一半以上的优秀基金经理无法战胜指数,定投指数将使任何一个门外汉成为一名平均水平的投资高手。”老爷子道出了股市交易的真谛,但大多数人依然不会采用该策略(什么道理都懂,就是过不好这一生)。最近在金融界网上看到邢不行老师的一篇文章《用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)指数定投策略如何优化?
编程软件:基于Python3.7的Jupyter Notebook,使用到的库包括numpy、pandas、matplotlib、pyecharts和tushare等。
数据来源:使用tushare pro开源包获取上证指数、深证指数、沪深300、上证50、中小板和创业板1991-2018年数据,其中中小板和创业板是