查看原文
其他

视频回顾丨因子挖掘最佳实践

DolphinDB DolphinDB 2022-10-13

上周四晚,我们围绕因子投研实时计算存储查询回测建模以及因子计算的工程化等场景,以日频因子分钟频因子快照因子逐笔因子为例,为大家解读了基于 DolphinDB 的因子计算的最佳实践。错过直播也没关系,本文带你回顾精彩内容!


完整直播回放:

https://www.bilibili.com/video/BV1NY411F75J?spm_id_from=333.999.0.0


01

因子投研

在投研阶段,会通过历史数据批量计算生成因子,研究员往往需要将每一种因子的计算都封装成自定义函数。根据因子类型和使用者习惯的不同,DolphinDB 提供了面板SQL 两种计算方式。以 Alpha 1 因子计算为例, DolphinDB 内置函数在面板计算中发挥了高效作用。在SQL 模式中,以自定义的因子函数 factorDoubleEMA 为例,如果因子的计算逻辑只涉及股票自身的时间序列数据,不涉及多个股票横截面上的信息,我们可以直接在 SQL 中按股票分组,然后在 select 中调用因子函数计算每个股票在一段时间内的因子值。在实际操作中,由于不同频率数据的因子具有不同的特点,其计算方法也有所不同。以日内收益率偏度因子有状态因子无状态因子主买成交量占比因子为例,DolphinDB 能够提供适配不同频率数据计算因子的计算方式。

02

因子实时计算

我们已经在投研阶段,将核心因子用自定义函数表示出来了,那么在生产环境中,还需要做什么呢?大小单的流式处理主买成交量占比因子的流式处理、以及复杂因子 Alpha 1的流式计算等实际案例中, DolphinDB 通过流计算引擎实现了因子在生产环境中的增量计算,极大提升了用户的开发和部署效率。

03

因子存储与查询

无论是批量计算还是实时计算,因子的存储对后续投研分析都具有重要意义。在考虑实际数据存储方案时,有三方面值得关注:存储引擎、存储方式与分区方式。从实际案例出发, 以存储5个因子一年的分钟级数据来进行测试,我们比对了 OLAP 纵表、 TSDB 纵表以及 TSDB 宽表这三种存储模式在数据大小、实际使用的存储空间、写入速度等方面的优劣。除此之外,我们还模拟大数据量,通过多个角度的查询测试来比对上述三种存储方式的查询性能。测试结果表明,宽表 TSDB 模式存储在存储空间、存储速度、直接检索数据、以面板模式检索数据与以非分区维度检索数据方面均有明显优势

04

因子回测和建模

经过了因子的投研、实时计算与存储查询等阶段,因子的回测同样至关重要。动量因子systematic strategy 可以代表单因子与多因子的回测。除此之外,简单加权法回归法这两种多因子建模法也可以在 DolphinDB 中实现。在进行因子相关性分析时,我们推荐使用更高效便捷的 array vector 

05

因子计算的工程化

实际量化投研过程中,研究员要聚焦策略因子研发,而因子计算框架的开发维护通常是 IT 部门人员来负责,为了加强协作,通常要进行工程化管理。投研团队可以通过模块和自定义函数封装核心因子业务逻辑,IT团队则维护框架代码,同时利用权限模块有效隔离各团队之间的数据访问权限,因子计算的工程化管理变得更加高效便捷。

06

实际案例

直播的最后,我们以日频因子分钟频因子快照因子逐笔因子为例,为大家展示了 DolphinDB 在因子计算中的实操。本次直播所涉及的代码均包含在白皮书中,点击 阅读原文,即可获取完整白皮书。同样,如果在使用过程中遇到任何问题,欢迎添加小助手微信( dolphindb1),我们将为大家提供充分、及时的技术支持。

Explore More





扫描二维码,添加 DolphinDB小助手点击阅读原文,获取因子挖掘白皮书

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存