11.会员专属(499)

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

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

作者: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的效果 。

举例

  1. 过滤当日板块收益 排在头部top前5% 的的股票

    (rank(板块流通收益率)>=0.95)

  2. 过滤近五日板块收益总合 排在 头部top前10% 的的股票

    (rank(sum(板块流通收益率,5))>=0.9)

  3. 过滤近3日板块收益均值 大于 近3日板块益均值 (均线)

    (mean(板块流通收益率,3)>=mean(板块流通收益率,5))

  4. 过滤近5日板块收益均值 大于 近10日板块益均值 (均线)

    (mean(板块流通收益率,5)>=mean(板块流通收益率,10))

热点回调

有些模型的因子特征还有选股的风格偏好,偏向于选取前期超跌 有反弹预期的股票,这事如果叠加板块的超跌效应, 过滤选取近期板块收益率排名靠后的股票,可以让模型的选股偏好更具有针对性,有概率选到前期的老龙头、老妖股,超跌股、强势股反弹。

视频讲解

https://www.bilibili.com/video/BV1p8411t7LH/?vd_source=ecd29bbd04cbefdfa426167c55241973&t=0.3

策略源码

https://bigquant.com/experimentshare/3fe80e5b719d4d0d86132319d9512019

\

{link}