如何计算股票板块的收益率用于构造模型训练标注和模型过滤?
由small_q创建,最终由iquant 被浏览 331 用户
更新
本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明
新版量化开发IDE(AIStudio):
https://bigquant.com/wiki/doc/aistudio-aiide-NzAjgKapzW
新版模版策略:
https://bigquant.com/wiki/doc/demos-ecdRvuM1TU
新版数据平台:
https://bigquant.com/data/home
https://bigquant.com/wiki/doc/dai-PLSbc1SbZX
新版表达式算子:
https://bigquant.com/wiki/doc/dai-sql-Rceb2JQBdS
新版因子平台:
https://bigquant.com/wiki/doc/bigalpha-EOVmVtJMS5
作者:woshisilvio
如何构造板块收益率的标注?
计算板块收益率
首先通过代码列表 和特征因子列表提取基础因子用于后续计算我们的板块收益率
- industry_sw_level2_0
- market_cap_float_0
- daily_return_0
计算板块流通收益率
其次将申万二级行业的数据库表和 股票的日线行情表连接起来。运用 dataframe的 grouby 和merge操作 计算出我们需要的板块流通收益率。
ps:这里也可以直接计算收益 不需要股票的流通市值
block_data = basic_data.groupby(['name_SW2','date']).agg({'daily_return_0':'sum','market_cap_float_0':'sum'}).reset_index()
block_data.columns = ['name_SW2','date','daily_return_0_block_sum','market_cap_float_0_block_sum']
#合并
rst = pd.merge(basic_data[['date','name_SW2','instrument','daily_return_0','market_cap_float_0']],block_data,on=['date','name_SW2'],how='left').dropna() 得到 rst['板块流通收益率'] = rst['daily_return_0']*rst['market_cap_float_0']/rst['market_cap_float_0_block_sum']
传入自动标注引擎
最后把合并后的表 m12 传入自动标注引擎,标注就完成了,赶快打开m12模块 和m21模块查看构造的标注
如何利用板块收益率对标的过滤?
方法
把计算好的板块收益率数据 跟我们的因子数据连接起来之后 使用数据过滤模块 就可以很轻松实现这一个需求。
原理
为何要过滤板块收益率?
热点追涨
很多时候模型选出来的股票虽然得分score很高,但明显不是近期热点,那模型选股的赚钱效应不强,这个时候可以让模型的选股风格贴近市场的热点 。过滤比如近期板块收益率较高,或者板块动量较强的,或者全市场收益前5名的板块,在这一个范围内选股,就有可能使模型选股达到一个强中选强,甚至1+1>2的效果 。