【核心技术】功夫量化交易系统2.4 – 开源发布

董可人/CEO

冬去春来,转眼间距离上次发布2.2已经过去了四年,如果从1.0的发布开始算起,已经是第七个年头。这段时间里,量化的世界几回寒暑,大家已经见证诸多风云变幻;疫情来了又去,科技热点风起云涌,新的时代正在拉开序幕。在这新的浪潮里,功夫的航行也在继续,这些年里我们的产品一直在持续的迭代升级,也逐渐积累了服务诸多重要机构客户的成功案例,但在宣传上我们保持了相当长时间的克制和低调,是因为想要把产品的持续升级和维护这件事做到尽可能的专业,为此进行了大量的工程化工作,如今终于到了能够发布新版本的时刻。

从一开始,功夫就希望能够成为量化领域的关键基础设施,我们对产品的生命周期的期望是至少以数十年计,这当然并不是一件容易的事情。我们希望功夫的用户们,可以像信赖其他那些经典的软件产品一样(例如 Linux kernel、MySQL、Python、numpy/pandas 等等),放心的把功夫应用在严苛的工业级生产环境中。这意味着我们需要对每次的版本发布做好规范的流程管理和质量控制,对历次的版本相关的文档及编译产物都可进行追溯,并且能够对未来的版本升级 Road Map 提前做出可控的规划。当然更重要的是,核心的产品本身必须是经得起严肃用户的挑剔,能够胜任持续的生产使用。要把所有这些要素都实现到位,我们最终发现需要克服数不清的工程和技术上的挑战,幸运的是经过数年像是在无人的暗夜里前行般的煎熬,我们终于逐渐接近了最初的目标。今年开始,我们会恢复新版本的公开发布,以及持续的更新来介绍产品以及团队的最新进展。

当前最新的功夫量化交易系统已经升级到了 2.7 版本,距离上次我们开源的 2.1 已经有了非常大的改进和优化;而虽然我们最终希望能够以完全开源的形式来赋予产品更持久的生命力,但是现实中我们目前仍然需要靠自身的商业化项目来筹集必要的研发经费,所以仍然还需要采取开源延后发布的策略。具体而言,我们会谨慎选择和最新商用版本有一定差异化的版本来进行开源,这样一方面能够让大家了解到我们相对较新的代码层面的进展,也保留一些对于新功能和特性有跟强需求的商业用户获取服务价值的可能性。而此时此刻,能够胜任的版本是 2.4,其在交易执行方面是功能完备的,相对于更新的版本主要是缺少回测、算子等特性(这些我们会在后续的文章里进一步展开介绍)。

说回之前提到的,一个严肃的工业级软件所必须具备的版本控制、文档等信息,我们全部汇总起来,建设了一个全新的网站:功夫核心库 (libkungfu.cc),这里将是功夫所有免费、开源相关的产品及信息发布中心,我们希望它能够像其他(比如 python.orgnodejs.org)那样,成为你信赖且经常访问的工具站点。而商业化的产品信息,仍然会在我们的官网 功夫量化 kungfu-trader.com)上发布,也欢迎你关注。

同时按照老规矩,2.4 的开源仍然同步推送了 GitHub – kungfu-origin/kungfu: Kungfu Trader,欢迎审阅、加星,提 Issue。在这个版本里,相比 2.1 而言一些重要的更新如下:

  • 跨语言信息类型一致性(通过GitHub – boostorg/hana: Your standard library for metaprogramming 实现C++反射机制);
  • 前端通信直接通过易筋经(mmap)实现,不再依赖 socket 二次编解码,实测可支持 level2 级别的数据刷新;
  • 终端 UI 的 kungfu cli 开源
  • 项目组织的整体重构,包括各模块的抽象隔离,以及工具集(SDK)开源

作为一篇版本发布的新闻稿,本篇就不再细述产品或是代码的技术细节,留待后续文章进一步解析。最后,应景我们阔别已久的重出江湖,我们也准备了新鲜的公众号和微信群,欢迎感兴趣的朋友关注,加入(微信搜索 功夫量化,关注后可扫码入群 ):