因子自定义 (副本)
由qxiao创建,最终由qxiao 被浏览 26 用户
导语
BigQuant平台的因子库上有许多因子,但是如果想计算一些个性化的自定义的因子,比如相对大盘的收益率等因子应该怎么构造呢?本文将通过几个示例进行展示。
自定义因子的方式很灵活,为大家介绍几种常用的自定义因子构建方式。
构建大盘收益率因子
第一步:通过DataSource模块获取‘000001.HIX’指数对应的close数据列,然后通过衍生特征抽取模块计算5日收益率数据,我们通过选择列模块仅保留日期和大盘5日收益率因子列。 第二步:通过基础特征抽取和衍生特征抽取模块获取股票的其它因子数据。 第三步:将上述两步的结果以date列作为公共列横向连接在一起。 流程图如下所示,左支为第一步,右支为第二步,最后通过m8模块将因子连接在一起。 我们可以查看结果:
构建大盘相对收益率因子
第一步:通过DataSource模块获取‘000001.HIX’指数对应的close数据列,然后通过衍生特征抽取模块计算5日收益率数据,我们通过选择列模块仅保留日期和大盘5日收益率列bmret。 第二步:通过基础特征抽取和衍生特征抽取模块获取股票收益率列stockret。 第三步:将上述两步的结果以date列作为公共列横向连接在一起。 第四步:通过衍生数据抽取模块m17计算相对收益率列relative_ret 流程图如下所示,左支为第一步,右支为第二步,通过m8模块将因子连接在一起后计算相对收益率。 我们可以查看结果:
\
计算ROE的滚动平均值
第一步:通过DataSource模块获取financial_statement_CN_STOCK_A表中的fs_roe数据,然后过滤出年报数据,我们通过衍生特征抽取模块m5计算3年ROE的滚动平均值。 第二步:抽取股票的交易日数据。 第三步:将上述两步的结果以date和instrument列作采用outer方式合并,这是因为财报数据的发布日不一定是交易日,采用outer方式合并可以保留所有的日期序列。 第四步:将合并后的数据按股票分组后采用前后向填充的方式填充每个交易日的3年ROE滚动均值。 第五步:上一步处理后的数据再次使用inner方式与交易日数据合并去除非交易日 流程图如下所示,左支为第一步,右支为第二步,通过m9模块将因子连接在一起。在m11模块按股票进行数据填充,使用m12模块inner方式拼接去除非交易日数据
我们可以查看结果:
计算周频/月频因子数据
以周线布林带为例计算周频因子数据
https://bigquant.com/experimentshare/f7be0baaf5584e448dfbcca6b312ccec
结语:因子构建流程包含了数据读取、数据处理和数据拼接,熟悉平台常用的数据表字段,结合表达式引擎的计算能力,就可以轻松构建自定义因子。
\