PLUS会员

如何计算股票板块的收益率用于构造模型训练标注和模型过滤?

由small_q创建,最终由iquant 被浏览 309 用户

更新

本文内容对应旧版平台与旧版资源,其内容不再适合最新版平台,请查看新版平台的使用说明

新版量化开发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

如何构造板块收益率的标注?

计算板块收益率

首先通过代码列表 和特征因子列表提取基础因子用于后续计算我们的板块收益率

  1. industry_sw_level2_0
  2. market_cap_float_0
  3. 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的效果 。

举例

评论
  • [点此开通PLUS会员](https://bigquant.com/plus?invitation_code=eq4vmb),享全站课程及课程源码!
{link}