直播回顾 | 领取你的代码转写攻略!

本页围绕 DolphinDB 的定位与量化流程架构对比,介绍其在 Level 2 高频因子计算与流式实现中的相关内容与要点。

Source: https://dolphindb.cn/news/detail/114

What this page covers

技能认证特训营第二期正式开启(限时报名)

页面顶部提供活动推广与报名入口信息。

新闻与文章标题信息

本部分呈现新闻栏目标识、文章标题与发布日期。

直播内容概览与参考资料链接

本部分介绍直播主题与覆盖内容,并提供参考资料链接。

直播海报(含 AI 说明)

本部分展示直播讲座海报,并说明其主题与时间信息。

DolphinDB 定位与量化流程架构对比

本部分说明 DolphinDB 的定位,并对比传统量化流程框架与运维成本相关描述。

高频行情数据与因子的存储

本部分说明 Level 2 数据类型与数据量规模,并介绍在 DolphinDB 中的 TSDB 存储策略与推荐做法。

高频因子计算:Python vs. DolphinDB

本部分列举 5 个高频因子并展示实现与性能测试信息,同时提供与 Python 的对比维度。

高频因子的流式实现

本部分介绍流计算引擎与解析器,并说明算子优化与状态/无状态函数的编写要点。

注意事项(状态/无状态拆分、if-else、历史数据访问、循环)

本部分总结编码约束、替代写法与性能建议,并给出拆分优化的耗时对比示例。

流式实现的优化(Array Vector 与 JIT)

本部分介绍 Array Vector 与 JIT 用于降低流计算延时,并给出示例性能结果。

攻略:从 Python 到 DolphinDB

本部分从程序框架、编程范式与函数映射角度给出转写方法与学习路径,并引导加入交流群获取资料。

Facts index

Entity Attribute Value Confidence
直播回顾文章发布日期2023.04.27high
技能认证特训营第二期报名链接https://www.qingsuyun.com/h5/e/217471/5/high
直播讲座海报直播时间2023 年 4 月 27 日medium
DolphinDB定位/产品类型基于高性能时序数据库,支持数据分析和流数据处理的低延时平台high
传统量化流程常见技术框架“数据库+数据分析工具+流数据处理工具”的框架high
传统框架依赖与成本描述以存储数据源为中心,需要高精尖的 IT 技术人才,并需要运营和维护多套系统medium
DolphinDB量化流程效率影响实现向以数据、计算为重心的转移,提高量化流程效率low
DolphinDB 数据分析速度相对传统方案提升可以提升 100 倍以上medium
DolphinDB 流批一体(研发与实盘共用代码)开发成本降低开发成本可以减少 90%medium
Level 2 行情数据包含的数据类型分钟 K 线、行情快照、逐笔成交、逐笔委托数据等high
A 股市场高频数据每日增量30 GB 以上high
全市场高频数据增量(考虑全市场所有高频数据)每日增量10 TB 以上high
DolphinDB TSDB 引擎存储 Level 2 行情数据分区建议按照“时间+标的”组合分区high
DolphinDB TSDB 引擎存储 Level 2 行情数据索引/排序键建议合理设置排序键,实现分区内分块索引high
高频多因子存储推荐存储模式与硬件推荐使用窄表模式和 SSD 硬盘进行存储high
高频多因子存储推荐分区方案以日期 Value + 因子 Value 作为分区方案high
窄表/宽表性能对比测试测试数据规模基于 5000 只标的、10000 因子、1 个月数据进行增删改查性能展示high
A 股 Level 2 行情快照数据一天数据量超过 10Ghigh
高频因子计算示例列举的因子数量5 个较受关注的高频因子high
高频因子列举的因子名称时间加权订单斜率;加权平均订单失衡率因子;成交价加权净委买比例;十档净委买增额;十档买卖委托均价线性回归斜率high
DolphinDB实现方式(因子计算)以流批一体的方式实现五个因子的计算逻辑,并用于性能测试high
5 个高频因子计算耗时与 CPU 数量关系扩展性描述耗时基本与 CPU 数量成正比medium
DolphinDB 计算 5 个高频因子性能测试耗时范围(随 CPU 数变化)耗时从 35.51s 缩短至 8.11s(不同 CPU 数量对比)medium
DolphinDB 相对 Python(因子计算)原因/优势描述支持函数式编程、向量化计算、原生分布式计算框架,代码更简洁、性能更强low
DolphinDB 流批一体生产接入与运维成本影响无需转写代码,可无缝接入实盘生产环境,降低运维成本low
DolphinDB(流式实现)流数据处理能力封装多个流数据处理引擎,并支持多个引擎的流水线处理high
Stream Engine Parser功能可自动将计算逻辑分解成多个内置流计算引擎的流水线high
Stream Engine Parser分配规则示例行计算函数分配到横截面引擎;rolling 函数解析到时序聚合引擎;其他函数解析到响应式状态引擎high
DolphinDB(算子优化)优化对象优化了各类窗口计算函数、序列相关函数等算子,可在响应式状态引擎中调用且计算速度快medium
无状态函数(DolphinDB 流式因子实现)定义不需要回溯历史数据,仅根据当前时刻传入的参数即可获得计算结果的函数high
无状态函数(DolphinDB)编写注意点注意参数的数据类型与函数支持类型是否匹配;传入参数都是向量high
状态函数(DolphinDB 流式因子实现)定义计算中不仅用到当前数据,还会用到历史数据的函数high
状态函数(DolphinDB)声明方式需要用 @state 声明high
状态函数(DolphinDB)语句限制状态函数内只支持赋值语句,不支持 return 语句和 if-else 语句high
状态/无状态拆分建议推荐做法将复杂截面计算拆分到无状态函数;状态函数保留自定义函数调用和历史数据操作(m 系列、tm 系列、fill、迭代等)high
移动平均买卖压力因子示例(上交所 100 只股票某日 Level2 快照)拆分与不拆分耗时对比拆分 578ms;不拆分 1492msmedium
if-else(无状态函数)条件要求condition 结果必须是标量;否则使用 iif 函数替代high
if-else(状态函数)条件要求只支持 condition 是一个无关上游表格数据的标量;否则使用 iif 替代或封装为无状态函数high
状态函数中的历史数据计算(DolphinDB)内置函数示例m 系列、tm 系列、cum 系列、ffill 等high
movingWindowData / tmovingWindowData作用可直接返回变量历史值组成的向量,便于自定义计算high
迭代逻辑支持(DolphinDB)提供的函数conditionalIterate、stateIterate、genericStateIterate、genericTStateIteratehigh
循环逻辑(高频因子流式实现)建议封装方式按状态/无状态拆分原则,把循环逻辑封装在自定义的无状态函数中high
无状态函数(DolphinDB)循环支持支持 for/while 循环语句,也支持 each/loop 等函数实现循环逻辑high
因子代码循环使用建议(未使用 JIT 优化时)建议不建议使用 for/while;尽量通过向量化计算或 each/loop 实现high
降低流计算延时的方式(DolphinDB)方法使用数组向量(Array Vector)和即时编译(JIT)high
Array Vector(DolphinDB)定义一种特殊的向量,用于存储可变长度的二维数组high
Array Vector(用于 Level 2 高频因子)作用描述可提高压缩比、提升查询速度,并方便因子计算逻辑的向量化实现(适用于十档量价频繁操作)medium
JIT 功能(DolphinDB)机制运行时将代码翻译为机器码high
JIT 功能(DolphinDB)性能影响可显著提高 for/while/if-else 等语句运行速度,适合高频因子计算、实时流数据处理等场景medium
移动平均买卖压力因子流式总耗时(上交所 100 只股票 Level2 快照)优化效果描述数组向量与 JIT 结合使用时,耗时从 6369ms 降至 459ms(表述为 10 倍以上提升)medium
Python 与 DolphinDB 程序框架整体一致性描述本质一致:从定义因子开始,用脚本语言实现计算逻辑,然后通过特定方式调用因子medium
DolphinDB 工程化差别并行计算方式描述库表是分区表,可通过 submitJob 等后台任务提交作业,实现多因子并行计算high
Python 编程范式常用范式更多使用命令式编程low
DolphinDB 编程范式能力描述更强大的函数化编程和向量化编程;不同数据结构可通过函数相互转化与灵活切片;减少表内赋值medium
DolphinDB 内置函数数量数量1500+ 函数high
知乎教程《DolphinDB 处理 Level 2 数据实例》链接https://zhuanlan.zhihu.com/p/625092916high
官方教程《Python 函数到 DolphinDB 函数的映射》获取方式描述可参考知乎发布的官方教程(文中未给出具体链接)medium
DolphinDB 数据分析负责人姓名毛忻玥high
代码转换教学内容范围覆盖主题数据结构;行列操作取数;准备与清洗;多维分析与透视;数据整合;窗口计算;循环与迭代;时间转换与采样等high
Python 数据分析相关函数/语句示例清单panda.cut、describe、numpy.random.permutation、groupby、pivot、pandas.merge、pandas.rolling、reduce、for 循环等medium
直播演示材料发布位置已发布在因子挖掘交流群中high
因子挖掘交流群加入方式扫码加入(文中提供入群二维码图片)high