基金一跌就买能不能赚钱?Python搭建基金回测系统告诉你答案!

Posted 程序员启航

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基金一跌就买能不能赚钱?Python搭建基金回测系统告诉你答案!相关的知识,希望对你有一定的参考价值。

大家好,我是启航。

2020年基金火了,作为熟练掌握各种韭菜操作的「韭零后」,在今年我也被狠狠的割了一把

Image

于是乎一气之下我用 Python 撸了一个基金回测系统,在后面的投资前先回测一下自己的买入卖出逻辑在历史数据上表现如何,然后再去实盘测试,话不多说,让我们开始。

追涨能赢吗?

都说韭菜死于追涨杀跌,首先让我们来研究追涨是否为韭菜行为,以2020年热门基金——招商中证白酒指数A(161725)为例,设定初始本金20000元,假设每逢基金上涨则买入 100 元,回测期间为2020年1月1日至2021年6月1日,结果如下Image

策略可视化结果如下(黄色区域为最大回撤区间)

Image

从回测结果可以看到,在2020-01-01至2020-06-01内,该策略一共买入了200次,2万元本金全部用完,最终收益14300元,收益率为71.5%,妥妥的跑赢沪深300!Image

但是也要注意到,该策略最大回撤接近1万元,发生在2月过年后的一个月,相信今年有买基金的朋友一定经历过,虽然最后又涨回来了,但是如果是你可以卧倒不动等待上涨吗

并且最后策略提示,如果在策略开始的第一个交易日全额买入两万,那么最后结束时资产会涨至46968元,收益率为134%,比费劲心思买入200次收益还要高出近一倍!

当然之所以一次性卖入后卧倒带来这么高的收益和买入时间有很大关系,例如若将策略时间调整至上方的最大回撤区间再次回测,在第一个交易日全额买入将是最差的选择👇Image

从上面的回测结果来看,追涨虽然收益没有一开始就全仓买入高,但是依旧能够跑赢沪深300,效果还不错嘛,真的是这样的吗?我们换一支基金(诺安成长混合)再次回测,Image

Image

可以看到,同样样的策略,放在诺安身上却是完全不一样的结果,虽然最大回撤较白酒有所降低,但是收益率仅有7.54%,连沪深300都没有跑赢!

当然2020年的明星基金远不止这么多,为了探究追涨究竟是不是韭菜行为,我分别从消费、医疗、科技、军工等热门板块挑选出十支热门基金再次回测,结果如下ImageImage

可以看到,按照本文设定的追涨策略,在本金2万的情况下,如果从2020年开始买入至今,获得收益最高的基金为白酒(招商中证白酒指数)和新能源(农银新能源混合),但是最大回撤率也非常高,其余表现较好的有张坤的易方达蓝筹、葛兰的中欧医疗健康混合C等热门基金。

Image

半导体(诺安)、科技(易方达信息产业混合)、军工(富国军中主题A) 均未能跑赢沪深300,当然这仅是在上述回测区间内的结果,仔细研究我们可以发现军工、钢铁基金在3月份其他基金集体拉垮时逆势而上,所以买基金时间很重要! 同时值得注意的是鹏化钢铁、兴全合润的最大回撤较小。感兴趣的读者可以进一步研究。

追跌

上面研究的策略是基金一涨就买,很自然的我们会想到如果一跌就买呢?

Image

还是先用白酒(招商白酒)和半导体(诺安) 测试,设定初始本金20000元,假设每逢基金下跌则买入 100 元,回测期间为2020年1月1日至2021年6月1日,结果如下ImageImageImage

可以看到,对于白酒来说,追跌比追涨获得的收益要低一点(71.5% ==>53.6%),但是表现依旧比沪深300要好,并且最大回撤有所降低。而对于诺安来说,追跌比追涨获得的收益要高一点(7.54% ==>9.64%),但依旧没法跑赢沪深300,且最大回撤没有太大变化。

和之前一样,还是追跌策略,我们把2020年最热的十支基金拉出来比比,回测结果如下

ImageImage

可以看到,这次仅有4支基金(招商白酒、农银新能源、易方达蓝筹、中欧医疗)跑赢了沪深300,而其他基金收益均没有超越基准。并且白酒的收益远高于其他几支基金,白酒yyds!Image

调整时间

在和身边朋友的交流时,发现如果只看涨跌去买基金的话,并不会一跌就买,可能是连续跌两天、三天或者连续跌去10%才会去买(补仓)

因此现在让我们调整策略,即每跌(涨)两天,再去买入,显然这样的买入时机会变少,所以我将单次买入金额调整为200元,本金不变,回测结果如下ImageImage

可以看到,结果相比之前并没有太大变化,依旧是白酒和新能源能获得较高收益,但是这次也只有白酒和新能源两支基金跑赢了沪深300。并且可以发现诺安投入的本金最多(意味着连续下跌两天的次数最多),但收益倒数第二,并且最大回撤也是最高的,说明这样的投资策略根本不适合诺安。

再来看看连续上涨两天则买入的结果

ImageImage

可以看到,在本金两万,每逢连续上涨两天就买入200的情况下,大多数基金都将2万元本金用完了!说明在这个回测时间段,整体市场是上涨趋势。并且只有三支基金没能跑赢沪深300,分别属于军工(富国军工)、科技(诺安、易方达信息),所以可以认为不论追涨还是追跌在这两个板块都不好使。

定投

2020伴随着基金一起火的还有“定投”两个字,即不论涨跌,固定周期买入一定的基金,例如每隔一周/一个月投入500元。关于为什么要选择基金定投相关内容我就不扯了。

还是上面十支基金和2万的本金,让我们模拟基金定投的收益,为了简化代码逻辑,我不以周/月为买入时机,固定每隔10个交易日买入600元,大约一个月交易2次,符合大多数定投用户的频率,回测结果如下ImageImage

可以看到,在我们选择的时间段内,基金定投的整体收益和之前的表现差不多,但这次仅有两支科技板块的基金没有跑赢沪深300,而白酒、新能源、医疗等热门赛道基金依旧获得较高的收益!需要注意到的是基金定投的最大回撤也并不低,所以也不能盲目相信基金定投

额外说明

需要指出的是,本文使用Python的构建的基金回测系统是稍微有点延迟的,简单来说就是T日发出的购买信号,在T+2日才能确认,以每逢下跌就买入的策略(招商白酒161725)执行过程来看Image

可以看到,2020年1月2号基金下跌,1月3号提交购买申请,1月4日才能确认,因为我们爬取的是每天收盘后基金的数据,如果希望做到T+1,即1月2号下跌发出的购买信号在1月3号确认,在回测系统上只需要修改两处代码即可。

而在现实操作中就需要让程序一直追踪实时估值计算涨跌,并在每天收盘前5-10分钟提醒你去手动购买(没有合适的基金下单接口),这样并不能保证你能及时看到消息并买入,所以我最终还是以T+2来研究。

小结

其实纵观上面的模拟过程,可以发现在指定的回测区间内,不同板块基金在这五个策略上表现基本没有太大的变化,并且都不如一开始就全仓买入带来的收益高,所以基金投资和股票一样,择时很重要,这也是量化投资最为关注的一个点。

当然,一个投资策略肯定不能仅关注涨跌,本文回测的几个策略都是比较简单只有买入操作的策略,因为买入只需要根据金额计算手续费,而卖出则复杂很多,尤其是需要根据持有天数以先进先出的规则计算阶梯式手续费率比较麻烦,所以相关更高级的策略只能等我开发出来再进行分享

因为本项目配置较复杂,且依赖数据爬取、数据库更新等隐私操作,就暂时不公开源码。如果大家喜欢本文可以点赞、分享、在看,如果人多的话我会考虑将项目打包成exe分享出来。

如果你有想测试的基金投资策略,可以留言基金代码+买入卖出逻辑+回测时间,我会在测试后将结果发送给你。

最后,本文不构成任何投资建议,任何量化投资策略都应该通过回测并在实盘测试校正后再使用!

 在这里插入图片描述

 文章到这里就结束了,感谢你的观看

说实在的,每次在后台看到一些读者的回应都觉得很欣慰,我想把我收藏的一些编程干货贡献给大家,回馈每一个读者,希望能帮到你们。

干货主要有:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤    Python所有知识点汇总(可以弄清楚Python的所有方向和技术)

*如果你用得到的话可以直接拿走,在我的QQ技术交流群里,可以自助拿走,群号是857113825。*
在这里插入图片描述wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

以上是关于基金一跌就买能不能赚钱?Python搭建基金回测系统告诉你答案!的主要内容,如果未能解决你的问题,请参考以下文章

基金这么赚钱!!编程实现基金从采集到分析通用模板!(白酒为例)

银行业指数基金:银行业将来还会躺着赚钱吗?

实锤,无脑定投指数基金真的可以赚钱么?

基金投资课——第8章-掌握更多品种:行业指数基金

大家持有基金最长时间是多久?

基金投资课——第1章-什么是资产?