不再纠结量化回测框架
作者:互联网
不再纠结量化回测框架
写在前面:本文主要结合自身经历,阐述不再纠结量化回测框架的原因。
目录:
- 什么是量化投资
- 自省与执着
- 拥抱开源
正文:
1. 什么是量化投资
量化投资,指的是通过编程,将投资理念、投资策略、投资方法代码化,结合数据进行分析,来验证投资想法是否可行。他的基本假设是历史会重复,通过历史数据进行回测,站在过去某个时间节点作出投资决策,若能盈利,则认为该投资想法在未来也能持续盈利。
量化投资,是一门结合金融、计算机、数学的艺术。要学的东西太多太多,且每一个学科展开来都够学一辈子。平均发力,均衡发展只会变得平庸,但是专攻某科,又容易缺胳膊少腿。所以最优的策略是:在掌握足够的基础知识后,多借助外力,利用这个大信息网络时代,汲取前人的优秀经验,站在巨人的肩膀上,避免总是重复造轮子。再根据二八定律,将精力放在那对成功最有力的20%的事情上面。
2. 自省与执着
结合自身经验,我接触量化投资领域也挺长时间了,但这两年更多的是专精了计算机领域的知识,相较之下,金融和数学方面略显的捉襟见肘。究其原因,主要有以下两个方面:
2.1 外部原因:量化学习资源匮乏
在2017年,量化投资在国内刚起步,相关行业信息只能通过知乎获取,还有国外的网站Quantstart。但大部分的内容都是浅尝则止。那时候vnpy刚开源,聚宽、米筐等各种量化平台也才刚刚开始。
2.2 内在原因:执着技术,盲目自信
基于从小对计算机的热爱,自学编程。从最初希望通过写代码,替代重复枯燥的Excel分析,到后面不断通过不同的编程语言写量化回测框架和组件,渐渐掌握了C++、Python,Javascript等编程语言,还有前端、后端、运维等技术。已经能做到想要的功能都可以实现,只是工作量问题和时间成本问题。
而一直执着于量化回测框架,一是当时可以借着这个项目学习编程,二是盲目自信,或者说考虑到策略保密性和灵活性、回测计算准确性,不够信任开源的或者在线的量化平台。
因为量化回测,每一笔交易都是钱,需要保证计算足够准确,若不准确,看不到撮合逻辑,跑出来再好看的结果也没用。但事实上,回测根本就不可能足够准确,考虑到实盘交易时的冲击成本、回测过程中的前提假设,基本要对最终的回测结果打点折扣,或者条件设得更加苛刻。再加上当时一直信奉成熟的私募都会自己搭建平台,自己搭建平台也就成了顺理成章的事情。
殊不知,想写个好用、顺手、计算准确、功能完备的回测框架,花的时间动不动就要以月甚至年的时间单位来计算,还在需要后续使用的过程中不断修改、重构、debug,甚至为添加一开始没有考虑到的功能而一切推翻重写。随便举些例子,比如保证数据存储和导入的简单易用且高效省内存,如何实现多品种、多周期、跨周期回测,向量型回测还是事件驱动型回测,事件驱动型中的多线程或者多进程引擎应如何设计,又如何相互通信,各技术指标又如何计算,撮合逻辑是怎样,市价单、限价单、止盈止损、追踪止损功能该如何设计,回测结果又该如何展示,如何展示买卖点、增加图表互动性实现策略开发流程中的快速反馈等等。当然在初期,自己写回测框架是好事,能够对回测中需要考虑到的各种各样的问题能有深刻的认知和理解。但这已经是软件工程方面的范畴,研究中很容易各种陷入细节中,就像脑筋急转弯一样。更何况量化投资,一旦开始研究策略,会发现大部分时间都花在清洗数据、查看文献、验证投资逻辑上面,同时还要关注时事新闻和宏观经济方面,时间就是金钱。
3. 拥抱开源
所以现在,是时候拥抱开源的成熟量化框架了,开源框架有很多,我主推vnpy和Backtrader。从Github上的Star上看框架都是受到人们认可的,同时也经历了时间的沉淀,能够给予充分的信任。如果遇到问题,还能网上看别人分享的经验,或者向社区求助。作为开源框架,自身也会不断完善,让别人帮忙debug,相当于延长了自己的生命,把时间花在其他更重要的事情上面。在使用过程中可以再在框架基础上添加自己想要的功能,真是大型真香现场。
标签:框架,执着,纠结,开源,回测,量化,投资 来源: https://blog.csdn.net/weixin_39387111/article/details/115046704