116-质量投资策略
由bqbcl5zr创建,最终由qxiao 被浏览 215 用户
策略介绍
该策略是一个质量投资策略,即基于公司质量指标选择股票
在这里,我们将质量因子(score)定义为盈利能力(Profitability) + 成长性(Growth) + 安全性(Safety)
- 盈利能力指标由资产毛利率GPOA,ROE,ROA,资产流动资金比CFOA,毛利率GMAR,应计项目情况ACC组成
- 成长性指标包含ROE同比增长、每股收益同比增长、毛利润同比增长、经营活动产生的现金流同比增长
- 安全性由中证1000指数的22日BETA系数、杠杆组成
策略流程
1.股票池过滤:剔除ST、退市、停牌股、北交所股票
2.筛选条件:上市天数大于270天,收盘价小于30
3.打分排序:对股票按照构造的质量因子打分,降序排列
4.仓位分配:根据打分和持股数量来分配仓位,设定等权持股15只
5.策略回测:设置调仓周期为15天,买卖点均为开盘价,回测周期为2021-06-01至2024-05-08
策略实现
A股-基础选股模块
- 在”交易所“一栏中,取消勾选”北交所“
- 在”上市板块“一栏中,取消勾选”北交所“
- 在”ST状态“一栏中,取消勾选”ST“与”*ST“
- 最后勾选”过滤停牌“
- 其他选项保留默认
输入特征模块
在“表达式特征”部分,首先计算盈利质量指标,由资产毛利率GPOA,ROE,ROA,资产流动资金比CFOA,毛利率GMAR,应计项目情况ACC组成,数据来源于表格cn_stock_factors
。因为在“表达式-默认数据表”部分填写了“cn_stock_factors
”,因此使用该表独有的字段时不用加上表名。
-
c_zscore((operating_revenue - operating_costs) / total_assets) AS _GPOA
-
c_zscore(roe_avg) AS _ROE
-
c_zscore(roa_avg) AS _ROA
-
c_zscore((net_cfffa + net_cffoa + net_cffia) / total_assets) AS _CFOA
-
c_zscore(fs_gross_profit_margin_0) AS _GMAR
-
c_zscore(notes_and_accounts_payable + other_payables_sum) AS _ACC
其中
c_zscore()
是截面标准化函数 -
c_zscore(_GPOA + _ROE + _ROA + _CFOA + _GMAR + _ACC) AS Profitability
计算成长性指标,包含ROE同比增长、每股收益同比增长、毛利润同比增长、经营活动产生的现金流同比增长,数据来源于cn_stock_factors_financial_indicators
c_zscore(cn_stock_factors_financial_indicators.roe_avg_yoy_lf) AS _ROE_g
c_zscore(cn_stock_factors_financial_indicators.eps_yoy_lf) AS _EPS_g
c_zscore(cn_stock_factors_financial_indicators.gross_profit_yoy_lf) AS _GPOA_g
c_zscore(cn_stock_factors_financial_indicators.net_cffoa_yoy_lf) AS _CFFOA_g
c_zscore(_ROE_g + _EPS_g + _GPOA_g + _CFFOA_g) AS Growth
安全性,由中证1000指数的22日BETA系数、杠杆构成,数据来源于表格cn_stock_prefactors
和cn_stock_factors_financial_items
c_zscore(cn_stock_prefactors.beta_000852SH_22) AS _Beta
c_zscore((cn_stock_factors_financial_items.total_liabilities_lf + cn_stock_factors_financial_items.total_equity_to_parent_shareholders_lf) / cn_stock_factors_financial_items.total_equity_to_parent_shareholders_lf) AS _LEV
c_zscore(_Beta + (-1) * _LEV) AS Safety
计算质量因子指标
Profitability + Growth + Safety AS score
在“表达式过滤条件”部分,输入筛选条件:
cn_stock_prefactors.list_days > 270
cn_stock_prefactors.close < 30
仓位分配模块
- 刚才已经在在
m2
”输入特征(DAI SQL)“的”表达式特征”一栏中,计算出了质量因子,并将其命名为score
- 接着,在
m3
”仓位分配“模块的”评分score字段排序“一栏,选择按照score
排序,并且是降序排序DESC
- 在”仓位分配“模块中,在”持仓股票数量“一栏中输入15,表示持股15只
- 在”仓位分配“模块中,在”仓位公式“一栏中输入
1 AS position
,表示等权重持仓
数据抽取模块
这个模块我们设置数据抽取的开始日期和结束日期,为2021-06-01至2024-05-08
BigTrader模块
- 在”BigTrader“模块中,在”调仓周期类型“一栏中选择”交易日“,并在”调仓周期日期“一栏中填15,表示调参天数为15
策略代码
https://bigquant.com/codesharev3/60d3846f-1ff6-4fe0-a117-2768adee2a6d
\