【历史文档】因子构建与标注-表达式引擎
由ypyu创建,最终由small_q 被浏览 1883 用户
更新
本文内容已经过期,不再适合平台最新版本,请查看以下最新内容,作为参考资料学习。
导语
在本月初,我们发布了文章《AI Alphas(A股版)》反响不错,在量化领域得到不少好评。很多用户来信,希望了解文中提到的因子以及因子构造(虽然原文附录有完整因子列表),以便快速开发AI策略,这正是本文目的。
由于个别因子出现重复、构建错误,本文一共依次列举了274个因子,分别与《AI Alphas(A股版)》文章使用的因子一一对应。在《AI Alphas(A股版)》这篇文章中,因子构造使用的是M.user_feature_extractor 模块,最近BigQuant上线了M.derived_feature_extractor 模块,因子定义不需要编写代码,只需一些表达式就可快速定义因子(抽取特征),表达式引擎帮助文档为:bigexpr。这将是一个巨大的变革,通过表达式即可定义特征将大大提高策略开发速度,加快实验迭代。
因子表达式
什么是因子表达式呢?即通过简单的固定的语言就可以描述因子定义的思想,比如说,想定义5日简单移动平均线,之前的因子定义方式为:
(close_0+close_1+close_2+close_3+close_4)/5
这样的定义方式虽然简单直观,但是不太方便,比如,如果定义60日简单移动平均线就很麻烦,需要书写60个收盘价。
表达式引擎借鉴了WorldQuant、通达信、TB等平台的一些思想,通过引入一些简单常用的函数表达式,达到快速构建因子的目的。比如构建上述因子,我们可以这样:
mean(close_0,5)
这样就能快捷灵活很多。不仅如此,再举几个例子:
- shift(close_0, 5) 表示5天前的收盘价,等价于close_5
- delta(close_0, 3) 表示今天的 收盘价减去 3 天以前的 收盘价,等价于close_0-close_3
- correlation(close_0, volume_0, 20) 表示在过去20 天中收盘价 和 成交量 的相关性
- ts_min(low_0,7) 表示过去7天最低价(是时间序列角度)
- rank(fs_pettm_0) 表示在当天所有股票中按市盈率的的百分比排名(是横截面角度)
这只是简单举几个常用的表达式,更多内容请参考:因子表达式
文中提到的两百多个因子,可以在此获取:预计算因子
使用BigStudio可以快速定义因子,我们以274个因子中如下几个示例因子举例,告诉大家怎样快速定义因子。
示例因子:
-
return_5
-
close_0 / close_1
-
mean(amount_0,9)/mean(amount_0,3)
-
amount_5/amount_0
-
(-1*correlation(open_0,volume_0,10))
-
(-1*delta((((close_0-low_0)-(high_0-close_0))/(close_0-low_0)),9))
https://bigquant.com/experimentshare/2d3e7b656d6e4e6caef40a5717316093
\