【核心技术】功夫量化交易系统2.2 – 后浪滔滔

董可人/CEO

疫情虽未结束,好在已至尾声,占用一点公众资源向大家介绍下功夫的最新进展。

从 2.0 开始,我们把开发重心放在了提升用户体验上,最新的 2.2 版本仍然坚持了这个原则,重点升级的功能如下:

  • 在系统设置里增加打开极速模式的选项,开启极速模式会使系统最大化利用机器性能来获取低延迟;
  • 系统运行时会实时统计每笔报单和成交的延迟信息,包括系统内延迟、网络延迟和交易延迟,帮助你更好的理解延迟对策略的影响;
  • 支持手动下单,既可以下到对应账户,也可以下单到指定策略,为程序化策略提供了手动管理和维护的支持;
  • 运行策略支持使用本地 Python 环境,方便高阶用户使用自己需要的第三方 Python 包;
  • 专为远程服务器管理而生的特色 TUI 交互方式 (功夫 CLI)

出于恰饭的需求,2.2采用安装包发布, 暂时不做开源操作(计划在 2.3 发布时开源 2.2 的代码),下载安装包请访问我们的官网 www.kungfu-trader.com。 产品运行截图如下:

图形界面(延迟数据仅为测试环境展示)
SSH环境下的远程服务器管理TUI

产品打磨,道阻且长,功夫的升级之路有时要比我们想象的更艰难,这其中涉及大量的设计考量和技术细节。在去年发布 2.0 的时候,我们曾经信心满满的要在今年这个时候做好回测、算法、期权等各种功能,然而最终发现,如果底层基础不牢靠,再多的上层功能也是空中楼阁。因此我们最终做了大量的减法,力保发布的功能都能可靠,好用。如果每一个实现了的功能都值得信赖,才能在功能越来越丰富时依然保证系统的可用性和性能。

也是因为这些超出预期的开发工作量,虽然现在功夫的架构和实现细节的复杂度都已远远超出了最初 1.0 的那个版本,我却不能抽身来更新专栏。不过我认为无论怎样的设计,如果产品得不到市场的认可就没有太大意义,所以现在我们仍要把主要精力放在产品研发和升级。一些大块的功能点像是数据管理、回测、算法等需要补完,让产品达到一个基本能让自己满意的程度,再来写详细的说明文字,我仍然乐观的估计这个阶段不会太远。希望关注我们的朋友们先把产品用起来,告诉我们设计上功能上有没有硬伤,文档总会有的。

最后回答三个灵魂提问:

  • 策略师:这款功能还不完整,开源用户也不算多,二次开发难度很大的产品能够给帮到我什么? 答:我们是一款面向专业级机构用户设计的量化交易系统,据我们有限了解市面上还没有同等定位的其他产品。如果你关心策略执行速度快不快,系统能否达到工业级的稳定性,一台服务器上是否能支持尽可能多的账户、策略同时并发运行,并且这个产品还要经得起大量同类型用户的公开检测,那么功夫就是你唯一的选择。即便你并不打算切换或是深入研究,安装一下功夫打开那个极速模式,看一看系统延迟和网络延迟的表现,相信你也会得到很多启发,例如”这笔报单的延迟对交易价格到底有没有影响?“或是”所用柜台的响应速度是否是这个策略的真正瓶颈?“
  • 机构老板:我养了IT团队全都可以自研,是否还需要这样一款产品? 答:不同于 In House 团队,我们专注于开发通用产品,会花费大量的精力提升产品的易用性、稳定性和普适性。从工程角度来说,这会要求产品的代码质量更高,设计更周全,很多代码都要为了支持广泛的使用方法和经年累月的服役而不断优化。对于交易为第一优先的交易机构来说,是不可能花时间来做这种工作的,机构 IT 一定是需求驱动的,有什么需求就干什么活,东西能上线就算完工,也就意味着产出的东西最终一定会变成成本中心,需要靠大量人力修修补补加运维来保持可用性。在这种情况下,有这么一个经过大量同类型用户验证过的产品,在稳定性、性能各方面都能达标,肯定是有助于缩减开发成本的,而众所周知,减少成本也是变相盈利。
  • 机构 IT 开发:抢我饭碗? 答:如上所述,因为成本中心的宿命,大多数此类工作的前途是颇为坎坷的,需要面对老板和管理层的朝三暮四,策略师一夜暴富的刺激,系统出 Bug 时的不幸背锅,如果你想清楚这件事,就会发现一款靠得住的通用产品恰恰在救人于水火。毕竟在一个交易机构里花大量时间钻研 C++ 的 memory order 有几种写法这种事实在是有违人性,为何不用现成的方案快速交付,工作更轻松,问题能甩锅,节省下来更多体验生活的时间它不香吗?正如 Unity 引擎不会抢光游戏开发的饭碗,Chromium 不会抢光 Web 前端的饭碗,反而会催发更多的二次开发岗,任何一个领域,一款有足够技术壁垒的通用框架/系统都是值得投资的。