【量化小讲堂-Python&Pandas系列13】数据告诉你:惊人的指数定投策略

引言:
本系列“量化小讲堂”,通过实际案例教初学者使用python、pandas进行金融数据处理,希望能对大家有帮助。

【必读文章】:《10年400倍策略分享-附视频逐行讲解代码》
【所有系列文章汇总】:【量化小讲堂 – Python、Pandas系列】目录汇总


数据告诉你:惊人的指数定投策略

—策略介绍—

巴菲特这一辈子曾经无数次的说过:对于个人投资者,最好的投资方式就是指数基金定投。

所谓指数基金定投,就是不要管股市是涨是跌(因为没有能力判断,索性不判断),每个月都定期的拿出一笔钱来买基金。并且买的是指数基金,指数基金就是完全复制某个指数收益的基金。例如沪深300指数基金的收益和每天沪深300指数的收益基本一样。

巴菲特这么推荐指数基金主要是因为有以下的优点:

  1. 没有几个基金经理长期来看业绩可以超过指数本身。所以选基金经理不如直接买指数。
  2. 省时省力,不用在上班的时候还盯着股票。年轻人花更多的时间努力工作,才是最有价值的投资。
  3. 相比其他主动管理型的基金,指数基金管理费用低廉,几乎可以忽略不计吧。管理费的高低对投资回报的影响要远大于我们的想象。

并且有人说,即使是在2007年10月份大盘在6000多点的时候开始基金定投,到2009年7月份大盘跌到3000多点的时候,这个时候总体仍然是赚的。

第一次看到这个说法的时候相当震惊,因为这很违反直觉:在最差的时间点入场,大盘都已经腰斩了,定投还能赚钱?

我们玩数据的人,这种时候就要找出原始数据看看是不是真的是这样子。本篇文章的程序就是实现指数基金定投策略,并希望通过这个例子让大家学到pandas如下用法:

  1. 读取数据时指定索引的方法
  2. 数据集连接函数concat()函数的用法
  3. 时间序列重采样resample()函数的用法

具体要实现的策略其实非常简单。就是在每个月的1号,花1000元买入指数基金,算算最后的收益有多少。为了简单起见,我们这里就直接用指数的收益代替指数基金。

为了对比定投指数基金的效果,也计算每月定投1000元买入无风险理财产品(如余额宝等)后的收益,比比最终谁的收益高。这里假定理财产品每年的无风险年化收益率是4%。下面就来看看具体的程序吧!


                                                             —程序—
要模拟基金定投,需要各个主要指数的数据,在www.yucezhe.com可以下载到所有指数历史至今的数据。如下图所示,每一行是每一天的数据:

这个日线数据有以下的字段:
【index_code】指数的代码
【date】 交易日期
【open】 开盘价
【high】 最高价
【low】 最低价
【close】 收盘价
【volume】 成交量
【money】 成交额
【change】 涨跌幅


下面是代码的截图,代码里面有详细的注释,有问题可以留言,需要代码可以加我微信coinquant索要。

在程序中选择好具体的指数,设定好定投开始、结束的时间,运行程序就能看到结果了。我先选择上证指数,定投的时间段是2007年10月1日到2009年7月30日,这段时间大盘从6000点跌倒了3000点,下面是结果图:

图中的绿色曲线是定投理财产品的资金曲线,蓝色曲线是定投指数基金的资金曲线,这两根曲线对应左边的坐标轴。图中的红色曲线是同期上证指数的曲线,对应右边的坐标轴。

从数据可以看到,在这个时间段内,总共投资了22000元(共22个月,每个月定投1000元),若把这些钱买理财产品最终的收益是22828.89,若是定投指数基金最终的收益是26606.08元,高出了16.54%,而且这是在同期大盘亏了50%的情况下!

我再把时间段拉长,从1996年4月开始到2016年4月结束。从下图的数据中可以看到在最近20年内,总共投资了241000元,定期买理财的收益最终是362296.40,若是定投指数基金最终收益是404451.79。在15年牛市最高点的时候,最多到了接近70万。

再把上证指数改成创业板指数,时间段是2010年6月到2016年4月。数据如下图,收益还是很不错的。看了这个数据,都有点定投创业板指数基金的冲动了。

思考题:

仔细看上面的几副图,似乎隐藏着一个很好的择时策略在里面,给了我很大的启发,我准备去研究下。不知道有没有人有同感?很多策略都是在这么无意中被发现的。


猜你喜欢

转载自blog.csdn.net/xingbuxing_py/article/details/78535918