这个项目的起点,其实挺“随意”的。
一开始,我并没有打算去建立一个本地接口库。只是平时在本地写量化策略的时候,发现总有一些功能经常要用:比如交易日历、过滤ST股票、过滤涨跌停股票等等。结果就是同一段代码在不同脚本之间反复复制粘贴,不仅杂乱,而且冗长。
有一天突然想到:为什么不把这些常用功能封装成一个library? 这样以后只需要调用接口,不必再到处找代码。这个想法很简单,但却带来了实实在在的便利。
从聚宽到本地化
散户做量化,最常用的平台大概就是聚宽。不得不说,聚宽确实很好用:数据齐全、接口丰富,不仅能在线回测,还能跑模拟交易,更有一个活跃的社区,可以学到不少东西。
但它毕竟是一个在线平台,所有开发工作都得在它的环境里完成。对于习惯在本地开发和调试的人来说,这多少有点不方便。
我之前也大量使用聚宽,经常想把聚宽上的策略在本地实现。这样就不用每次都依赖平台了。
在一次又一次的“本地化”过程中,我慢慢积累了不少与聚宽接口类似的功能代码。但这些代码分散在不同脚本里,想找某个功能时还得翻历史代码。于是,我把它们汇总整理,最终形成了HKCodex本地接口库。
名字的由来
很多人会好奇,为什么叫 HKCodex?
其实这个名字源自我今年注册的一个域名。起初打算拿它来建网站,平时写点博客,记录自己的思考和实践。后来干脆就把这个名字用到了接口库上,同时也继续在上面写些博客。
我一直挺羡慕那些能坚持写博客的人,有的博主一写就是好多年。这样的习惯不仅能让人沉淀思考,也能在回顾时看到自己成长的轨迹。正所谓:回顾过去,才能更好地展望未来。
数据与接口
其实,很多量化策略的逻辑并不复杂。只要有合适的数据和接口,本地实现并不难。
问题在于,很多人不知道该从哪里获取本地数据,或者不清楚如何把聚宽接口迁移到本地。聚宽的接口背后,本质上都是对基础数据的处理与封装。只要有了可靠的数据源,实现对应功能就不是难事。
这里,Tushare给了我很大帮助。它的数据比较完整,也比较容易获取,这就为本地实现聚宽的常用接口打下了基础。
为什么要封装?
如果不封装,这些功能代码就会到处被复制粘贴。
我目前暂时没有把代码完全开源,毕竟自己投入了不少时间和精力。有时候星友有疑问的时候,会给他们分享部分源码。不过,将代码封装成library,可以让我在使用时更高效、更清爽。未来会不会开源?也不好说。也许哪天就开源了,毕竟开源能让更多人参与交流,更利于项目的发展。
没有评论:
发表评论