在上一节中,我们学习了基于IC值的多因子计算方法,说白了就是先选择我们认为与股票收益率影响大的因子(如市盈率、净资产收益率、净利润增长率等),之后计算各个因子与股票收益率之间的相关系数,选择相关系数大的因子进行加权得到新的因子,之后求得新因子与收益率之间的相关系数,假如相关系数变大,这说明新因子的预测准确率更高,我们可以用新的因子作为我们预测的标的。
为了简化,我们先假设所有因子的相关系数都雷同,相称于对所有因子进行等权重相加,看一下最终效果怎样。
实战:基于发展因子的模子测试
发展模子是一种以公司未来发展为基础的选股模子。具体可以到场Philip A.Fisher(费雪)的著作《怎样选择发展股》。在现实操纵中,发展型投资通常是在对经济周期和行业景气分析的基础上,联合股票基本面情况,包罗收益率和增长率等属性分析,来评估和选择发展型股票。
在量化形式上,发展型投资主要是通过ROE(净资产收益率=资产净利率×权益乘数)、ROA(资产回报率= 税后净利润/总资产)、ROIC(资本回报率= (净收入 - 税收) / (股东权益+有息负债))、业务收入增长率、主业务务利润率等参数来挖掘发展性相对更高的股票。
模子说明
以资本回报率-净利润增长率两个指标来构建发展模子。根据我们对各项指标的梳理,现在将资本回报率列为质量指标,另外构建如下发展因子指标的组合因子。
发展因子 stk_get_finance_deriv_pt()函数中对应字段名 息税前利润增长率 息税前收益增长率=(本期息税前利润 – 上期息税前利润) / 上期息税前利润 (ebit_ps:每股息税前利润) 净利润同比增长率 net_prof_yoy 业务利润同比增长率 oper_prof_yoy 总资产同比增长率 ttl_asset_yoy 经营运动产生的现金流量净额同比增长率 net_cf_oper_yoy 净资产同比增长率 net_asset_yoy 基本每股收益同比增长率 eps_bas_yoy 净资产收益率同比增长率(摊薄) roe_yoy 利润总额同比增长率 ttl_prof_yoy - import numpy as np
- import pandas as pd
- import gm.api as gm
- import datetime
- from dateutil.relativedelta import relativedelta
- from sklearn.preprocessing import MinMaxScaler
- gm.set_token("自己的token码") #输入自己的token
- # 获取沪深300成分股的代码,存储到HS300_symbol_list中(list格式)
- index = "SHSE.000300"
- HS300_array = gm.stk_get_index_constituents(index='SHSE.000300') #获取沪深300成分股数据
- """
- 按照股票代码从大到小进行排序,注意下面这句非常重要,因为在实际使用过程中我发现,gm.stk_get_finance_deriv()和参数symbols=HS300_symbol_list中的顺序
- 并不一样,这回导致我们采用for循环中得到的参数数据和采用gm.stk_get_finance_deriv()顺序完全不同,所以我们先对股票代码进行排序,以控制for循环中返回的参数数据
- 之后我们再把gm.stk_get_finance_deriv()中得到的顺序同样进行从大到小排序,才能保持两组数据完全一致。
- """
- HS300_array = HS300_array.sort_values(["symbol"],ascending=False) # 按照股票代码从大到小排序
- HS300_symbol_array = HS300_array['symbol'].values
- HS300_symbol_list = list(HS300_symbol_array) # 转换为list类型才能进行后续处理
- # 采用pd.DataFrame建立二维数据表,初始化数据表,后续可以将数据存储到表中
- factor_matrix = pd.DataFrame([])
- factor_matrix["symbol"] = HS300_symbol_list
- # factor_matrix["earnings before interest and tax"] = -999 # 息税前收
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |