13.2 因子分析的实现代码
在量化交易中, 要实现因子分析功能,需要自定义因子的类,继承Factor 类, 并实现calc 方法,代码如下:


13.2.1 因子分析中变量的含义
在自定义类中,有三个变量,分别是name、m缸_window 、de阳ndencies 。
1. name
name 是因子的名称。在给因子命名肘, 必须符合Python 中变量的命名规则,即名称只能由字母、数字和下画线组成, 并且第一个字符不能是数字,另外不能与Python 中的关键字相同,也不能与基础因子冲突。
2. max window
max_window 是用来获取数据的最长时间窗口, 需要注意的是, 返回的是曰线级别的数据。
3. dependencies
dependencies 是用来设置依赖的基础因子名称。
13.2.2 因子分析中可以使用的基础因子
在因子分析中,可以使用的基础因子很多,如价量因子、财务数据因子、行业因子、概念因子、指数因子、资金流因子,如图13.1 所示。

1. 价量因子
价量因子,是指利用get_price()函数可以取到的价量信息,如open( 开盘价)、close( 收盘价)、high( 最高价)、low( 最低价)、volume( 成交量)、money (成交金额)。
2. 财务数据因子
财务数据因子,是指当日可以看到的最新单季财务指标,如pe_ratio(动态市盈率)、tumover_ratio (换手率)、pb_ratio (市净率)、market_cap (股票的总市值)、circulating_market_cap (股票的流通市值)等。
3. 行业因子
行业因子包含证监会行业分类,聚宽一、二级行业分类以及申万一、二、三级行业分类。例如A01 (农业)、A02( 林业)、B06( 煤炭开采和洗选业)、B07 (石油和天然气开采业)、C36 (汽车制造业)等。
返回值是一个哑变量,如果某只股票属于某行业,则返回1 ;否则,返回0 。

4. 概念因子
概念因子,即慨念板块代码,如GN028 (智能电网)、GN030( 物联网)、GN092 (高端装备制造)等。
返回值是一个哑变量,如果某只股票属于某个概念,则返回1 ,否则,返回0 。
5. 指数因子
指数因子,即指数代码,如000001 .XSHG (上证指数)、000002.XSHG (A 股指数)、000003.XSHG ( B 股指数)、000006 .XSHG (地产指数)等。
返回值是一个哑变量,如果某股票属于某个指数,则返回1 ,否则,返回0。
6. 资金流因子
资金流因子,即get_money_flow()函数查询的数据。可以使用的字段包括: change_pct (涨跌幅)、net_amount_main (主力净额)、net_pct_main(主力净占比)、net_amount_x1(超大单净额)、net_pct_x1 (超大单净占比)、net_amount_1 (大单净额)、net_pct_1 (大单净占比)、net_amount_m (中单净额)、net_pct_m (中单净占比)、net_amount_s (小单净额)、net_pct_s (小单净占比)。
13.2.3 calc 的参数及返回值
在但lc 中,可以通过data参数获取通过max_window 和dependencies定义的数据。参数da国是一个dict 对象,其key 属性是dependencies 中的因子名称, value 属性是pandas.DataFr缸ne 。
DataFrame 的colurnn 是股票代码,可以选择沪深300 作为股票池。
DataFrame 的index 是一个时间序列,结束时间是当前时间,长度是max_window 。
calc 保证返回一个pandas.Series ,其中index 属性是股票代码, value属性是因子值。