关闭
您正在使用的浏览器版本较低,无法支持聚宽的某些特性。
为了获得更好的体验,推荐使用:
Google Chrome
或者
Mozilla Firefox
或者
IE9以上
。
返回主题列表
换手率相对波动率因子在ROE选股中的表现
逆熵者
发布于2019-10-23
回复 36
浏览 6398
116
listen
分享到:
微信
微博
雪球
最近在翻聚宽因子看板的时候发现有这样一个因子: - [换手率相对波动率 turnover_volatility](https://www.joinquant.com/view/factorlib/detail/04eabf5c022e9f2368e44583a1228569?buildtype=2&universetype=eno4MDA=&period=MTB5) 因子类别: 情绪类因子 计算公式: 取20个交易日个股换手率的标准差 更新时间: 下一交易日早晨9:00前更新 数据处理: 中位数去极值 -> 行业市值对数中性化 -> zscore标准化 默认参数: 加权方式为按市值加权 ### 因子表现 根据因子看板中表现出的数据,该因子在全行业均表现出较大的负IC,下图是中证800上近3年的行业IC  根据全分位回测表现,可以看到虽然分位表现的单调性不够明显,但是最大分位获得了稳定且较高的负超额收益  大家可以自行去因子看板查看细节 ### 归因思考 根据因子看板的表现,该因子在全行业上,历史大部分时间具有显著的负超额收益,且最大分位尤为明显。配合因子的计算方法思考,因子有效的原因可能在于,短期换手率波动最大的股票,大概率是经历炒作的股票。这类股票长期表现不佳。 ### 用途思考 根据因子的特征,该因子可以配合其他选股策略,进行炒作股票的过滤。 我简单构建了一个ROE选股策略用于测试因子效果: - 使用中证800股票池过滤ST、退市、停牌 - 营收同比增长大于0 - 市盈率 0到100倍 - 市净率 0到20倍 - ROE排序,取前20股,每周轮动 在不加入换手率相对波动率筛选时,该质量选股策略在10年回测中的表现如下  去除因子值最大的10%股票后,选股策略的10年回测表现如下  去除因子值最大的20%股票后,选股策略的10年回测表现如下  过滤最大10%到50%的回测表现如下  ### 总结 换手率相对波动率属于情绪因子,在全行业均具有较高的负IC值,其最大分位具有显著的负超额收益。通过简单的测试,使用该因子过滤最大分位股票,有效提高了ROE选股的回测表现。 后续可以研究该因子与其他选股因子的搭配效果,设计多因子选股策略。抛砖引玉,欢迎大家集思广益。
116
listen
分享到:
微信
微博
雪球
评论
nbnc003
对哦,过滤负超额这个角度不错,我去试试看,感谢!
2019-10-23
ch15820990913
逆熵者 大侠, 您好!b = get_sort_dataframe(security_list, i, input_dict[i]) 这个函数怎么理解? 望赐教
2019-12-18
黄金之路
感谢分享,这个指标基本是个废指标,数据变化太快了,会导致交易次数变多,策略就废掉了
2019-12-18
lb-forever
厉害厉害
2019-12-19
逆熵者
@黄金之路 是的,只适合特殊的策略,可以用于规避热点
2019-12-19
ops2quant
发现一个问题 pre_date = context.current_dt - datetime.timedelta(days=1) print("获取%s的因子数据" % pre_date.date()) 在获取因子数据时,这样只是取前一自然日,而不是前一交易日,会导致假期后的第一天取因子数据取不到,相当于按因子值过滤没有生效。
2020-07-19
逆熵者
@ops2quant 是的,后面我也发现这个问题了,查了一下发现聚宽提供了前一个交易日的日期,所以一行代码就可以解决: pre_date = context.previous_date
2020-07-20
ops2quant
@逆熵者 赞,这样改动最小。我本来也在改,在使用get_factor_values的时候用end_date + count参数可以取到前一交易日数据,但发现后面还有一些地方需要调整。
2020-07-20
Gyro^.^
思路清奇,为你的负IC过滤效应点赞
2020-07-20
逆熵者
@Gyro 感谢
2020-07-21
夹头混合
确实是一个好因子,感谢分享
2020-12-01
韶华不负
看了因子看板也想研究下这个指标的,大小分位差异较大。 谢谢你的研究,省了我的时间。
2020-12-03
蜗牛3
回复赚积分+1
2020-12-03
yyjsir
学习学习
2020-12-04
将就
@Gyro # 保留前80%,丢弃换手率相对波动率最大的20%股票 pre_num = len(security_list) target_num = int(pre_num // 2) @逆熵者 这里的地板除,应该不是取80%吧,我看是直接除2取整了
2020-12-04
东极岛
厉害厉害
2020-12-06
我追自由
都是经典的东西
2020-12-12
无根水
有意思
2021-07-17
hellogood
厉害
2021-07-18
quant1688
有意思
2021-07-19
首页
上一页
1
2
下一页
尾页
您尚未登录,请
登录
或者
注册
聚宽发表回复。
取 消
提 交