在上个月的直播“打破 Python 束缚:Level 2 因子的脚本优化实践”中,我们可以看到,DolphinDB 具有强大的向量化计算、函数式编程等功能,使基于高频数据的因子计算变得非常简洁;同时,内置了多个流计算引擎,并能自动解析,将引擎串联,实现复杂因子的流批一体计算。
感兴趣的小伙伴可以移步B站账号 @DolphinDB智臾科技,观看完整回放。
假设要计算1000个因子,每个因子实现逻辑各不相同,并有特定的如窗口关闭信号、计算窗口边界等配置,重复搭建流处理框架、多次计算同一中间变量,必然是非常低效的。有没有什么方法可以对大量因子的流式计算规范化、格式化,实现工程化管理呢?
——DolphinDB 推出了一个方便、快捷、扩展性好和兼容性强的流批一体因子计算平台原型,提供基于快照数据计算分钟因子和进一步加工分钟因子为复杂因子的功能,用户可以根据我们给出的脚本和部署教程,快速搭建和调试。
完整的平台搭建步骤和开发流程,请点击文末阅读原文。
有了这一套流批一体因子计算平台,业务人员无需理解 DolphinDB 流计算框架的底层架构,仅需根据业务因子计算逻辑编写函数表达式,然后调度因子计算平台的计算接口,便可完成因子计算。
因子计算平台的架构和功能

主要包含以下几个功能模块:
实时数据低延时接入:API 实时数据写入接口、实时行情接入插件、消息中间件订阅插件;
历史数据回放:单表和多表严格按照时间顺序控速回放,将存储在 DolphinDB 数据库中的历史数据回放成流;
流计算引擎:对快照数据做滚动窗口的聚合计算使用了时间序列聚合引擎,进一步加工成复杂因子依赖响应式状态引擎;
集成开发环境:DolphinDB GUI 和 DolphinDB Vscode 用于因子表达式代码的开发和调试,通过 API 交互进行任务调度和作业执行;
低延时消息总线发布:对接各种消息队列中间件,把实时计算结果推送到 Kafka, zmq, RabbitMQ, MQTT 等。
因子计算平台怎么使用?

基于历史数据的因子开发
因子业务开发人员只需要在 DolphinDB 提供的集成开发环境中编写因子计算的函数表达式,然后调用因子计算平台的计算接口就可以完成调试。如果编写因子符合 DolphinDB 的语法,就可以成功执行并返回计算结果。如果编写因子不符合 DolphinDB 的语法,就会报错中断。
在已经开发了一定数量的因子后,需要在生产环境部署实时计算业务,部署流程如下:

基于实时数据的生产环境部署
总的来说——
写个对应的因子函数,
生成 Json 配置文件,
调度新的 Json 文件,
Explore More








