BigQuant使用文档

116-质量投资策略

由bqbcl5zr创建,最终由small_q 被浏览 32 用户

策略介绍

该策略是一个质量投资策略,即基于公司质量指标选择股票

在这里,我们将质量因子(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_prefactorscn_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/codesharev2/a3db698f-07f9-4c48-9608-b0fec4c858d6

\

标签

投资策略风险控制