Windows 如何接入 CTP 行情?一位在读研究生的插件开发实战

0 阅读6分钟

三年前,董芮言开始搭建自己的量化交易系统。作为一名在读研究生,她选择了一条不算轻松的路:从 Tick 数据的清洗、流式落盘,到策略回测,再到实盘信号的实时计算,最后将信号极速路由至全自动程序化交易系统执行——她要打通这个完整的闭环。

在技术选型时,她选中了 DolphinDB。

原因很纯粹:这个把“时序数据库”与“流计算引擎”合二为一的设计,能最大程度缩短从数据源到信号生成的链路。对她这样一个人开发全流程的选手来说,这意味着一件事——能把精力真正聚焦在策略和业务逻辑上,而不是被基础设施拖垮。

三年里,她在 DolphinDB 上跑通了回测,跑通了实盘,跑通了自己的全自动交易系统。

一切看起来都很顺利——直到她遇到了一个空白

空白在哪里

在量化投研的世界里,Windows 仍然是一个广泛存在的本地研发环境。很多使用者和董芮言一样,习惯在 Windows 上做策略验证、快速迭代。但当她们想用 DolphinDB 接入 CTP(国内期货市场的标准交易/行情接口)时,问题来了:没有官方的 Windows 版 CTP 插件。

这意味着什么?意味着如果你想在 Windows 本地用 DolphinDB 对接 CTP,要么折腾跨平台环境,要么等官方支持,要么自己开发。这不是一个冷门的边缘需求。这是很多量化开发者每天都会撞上的墙。

董芮言也撞上了。她可以选择绕路——切到 Linux,或者换一套技术栈,但她没有。她说:“为了提高大家本地研发和策略验证的效率,不用折腾跨平台环境,我决定自己动手写一个原生的适配插件。”

不是因为有人要求她这么做,是因为这个空白就在那里。

动手填补空白

写一个 Windows 原生的 CTP 插件,听起来不算宏大,做起来却处处是坑。

最大的技术挑战,来自编译环境的底层冲突:

  • CTP 官方库用的是 MSVC 编译;
  • DolphinDB 插件开发环境用的是 MinGW。

两者之间的 ABI(应用二进制接口)冲突,让数据交互变得极其棘手。跨语言边界时,稍有不慎就是内存崩溃、不可预期的行为。这不是一个“改改配置”就能解决的问题。

但 DolphinDB 的设计在这时候展现了它的友好度——通透的数据结构,比如 TableSP,和各种智能指针,让跨语言的数据交互变得安全而丝滑。正是这些底层设计,让董芮言最终绕过了 ABI 的坑,把插件跑了起来。

最终,她把这个插件命名为 CtpWin——一个不算大、但对 Windows 用户来说至关重要的工具。

对董芮言来说,她最想解决的核心痛点只有一个:

“填补 Windows 环境下 CTP 原生接入的生态空白。”

这不是为了炫技,也不是为了简历上多一行。是为了让每一个和她一样在 Windows 上做量化研发的人,不用再折腾环境,能把时间花在真正重要的事情上——策略逻辑本身。

空白的哲学

这个故事里,最动人的部分其实不是技术。是那个动作——看见空白,然后动手。

董芮言并不是 DolphinDB 的官方员工,也不是被派了任务的开发者。她只是一个在使用过程中遇到了问题、并且决定不绕过去的研究生。她说,驱动她做这件事的,是技术兴趣,也是实际需求。但更深层的原因,或许是一种朴素的信念:

工具的空缺,不应该永远是空缺。每一个空白,都在等待一个愿意动手的人。

这不是什么宏大的开源宣言。它更像是一种做事的方式——遇到了,就顺手填一下;自己能解决,就不等别人。而 DolphinDB 的生态,恰恰是这种方式的土壤。

董芮言说,这个社区最吸引她的,是“极度聚焦于金融量化业务的技术底座,以及围绕硬核技术建立起来的社区氛围”。大家面临的业务场景都很纯粹,交流起来效率很高。

在这样的生态里,一个开发者写的插件,不只是给自己用的工具,而是给整个社区的一块砖。

董芮言寄语:给想动手的你

Q:用了三年,最打动你的功能是什么?

“时序数据库与流计算引擎合二为一的设计。在搭建高频交易系统时,我需要一个既能极速处理历史数据回测,又能无缝切换到实盘进行低延迟信号计算的引擎。DolphinDB 完美契合了’投研交易一体化’的需求。”

Q:为什么选择深耕 DolphinDB 生态?

“它极大地缩短了我的研发链路,让我能把精力真正聚焦在策略开发和全自动交易的业务逻辑上,而不是折腾数据管道。”

Q:开发 CtpWin 过程中,DolphinDB 生态哪里最吸引你?

“极度聚焦于金融量化业务的技术底座,以及围绕硬核技术建立起来的社区氛围。大家面临的业务场景都很纯粹,交流起来效率很高。”

Q:对想加入生态开发的开发者有什么建议?

“从解决自己的实际业务痛点出发是最好的驱动力。不要觉得底层开发高深莫测,多阅读官方的开源插件源码,动手实践是掌握底层 API 并为整个社区创造价值的最快路径。”

未完待续

关于未来,董芮言的计划很清晰:

继续迭代 CtpWin,丰富异常自愈机制;聚焦更多国内主流交易/行情柜台的 Windows 插件适配。

“为 DolphinDB 的本地化量化开发环境添砖加瓦。”

这不是一句口号。这是一个已经动手的人,在继续往前走。

给后来者

如果你也在犹豫是否要加入生态开发,董芮言的建议很实在:

“从解决自己的实际业务痛点出发是最好的驱动力。不要觉得底层开发高深莫测,多阅读官方的开源插件源码,动手实践,是掌握底层 API 并为整个社区创造价值的最快路径。”

不必等到自己“足够厉害”才动手,我们为你提供了完整的攻略:

  1. 查阅源码:前往 GitHub: dolphindb/plugins 参考高手写法。
  2. 领取任务:如果你有好的插件想法或已在自建模块,欢迎联系DolphinDB官方,提交你的作品并上架插件市场

优秀的社区插件开发者将获得限量极客周边、官方实测支持以及用户的付费分成