理想反转因子读书笔记
展开
昨天对理想反转因子做了解析,今天继续深入看下如何使用。
我现在的思路是,根据我目前的etf反转策略先优选出目标行业,再根据行业的个股在理想反转因子的选股。
目前有两种情况,第一是当期只有1个行业,另外就是当期很很多行业
当期都很多行业的时候,就比较复杂,数据量会很大,按照我现在的计算量,实现起来还挺难的
我们先按照全市场来做
1、准备原始数据
Step 0:准备原始数据
从行情数据库拉所有股票,4个日期的收盘价 + 行业分类 + 流通市值:
时间怎么取都行
比如:
股票 行业 6月23日收盘 6月22日收盘 流通市值(亿)
────────────────────────────────────────────────────────────
立讯精密 电子 38.50 40.20 2800
海康威视 电子 32.10 33.50 2200
歌尔股份 电子 18.20 19.80 800
长电科技 电子 26.50 27.30 650
韦尔股份 电子 95.00 98.00 500
────────────────────────────────────────────────────────────
恒瑞医药 医药 48.50 47.00 3200
迈瑞医疗 医药 285.00 278.00 3800
药明康德 医药 52.00 55.50 1800
泰格医药 医药 68.00 71.20 750
康龙化成 医药 28.50 31.00 400
────────────────────────────────────────────────────────────
招商银行 银行 38.20 38.50 11000
宁波银行 银行 26.80 27.10 2500
平安银行 银行 11.50 11.80 2200
杭州银行 银行 13.20 13.40 900
成都银行 银行 14.80 15.10 600
Step 1:计算每只股票的4日反转率
这个比较简单,就是现在/4天前close -1
每只股票都有自身的反转率
Step 2:行业内市值分组
把每个行业内部的股票进行三等分,你比如三个行业,每个行业三等分,那就是分成了9份
我是按照市值30%、40%、30%进行的三等分
Step 3:计算每个格子的平均反转率
现在每个格子的标签就是(行业、市值),计算每个格子的平均反转率, 就把上面计算的格子里的每只个股的反转率加起来平均。
Step 4:计算反转残差
格子内每只票的反转率与平均反转率的差值ε
实际含义就是我在同行业内,比我相同市值的股票,多跌了多少。
现在每只股票的 ε 的含义非常清晰——
ε 为负且绝对值大(比如歌尔股份 ε=-2.57%):它比同行业同市值级别多跌了一大截 → 这是"过度反应",反转买入信号强
ε 为正且绝对值大(比如长电科技 ε=+2.58%):它比同行业同市值级别少跌了/甚至涨了 → 没有超跌,不买
ε 接近0:和同类差不多,没有额外的反转信号
格子里只有1只股票:ε=0,因为没有同类可以比 → 这个信号不可靠
Step5:Z-S CORE
计算出全市场的ε以后,做数据进行Z处理。把不同行业不同市值统一到一个尺度
每个行业只取前3即可。
Step6:RANK归一
排序后取前10作为买入标的,同行业股票不超过2只
以上就完成了理想反转因子的算法搭建
不过回测结果挺烂的。
这个因子本身价值有限
我现在的思路是,根据我目前的etf反转策略先优选出目标行业,再根据行业的个股在理想反转因子的选股。
目前有两种情况,第一是当期只有1个行业,另外就是当期很很多行业
当期都很多行业的时候,就比较复杂,数据量会很大,按照我现在的计算量,实现起来还挺难的
我们先按照全市场来做
1、准备原始数据
Step 0:准备原始数据
从行情数据库拉所有股票,4个日期的收盘价 + 行业分类 + 流通市值:
时间怎么取都行
比如:
股票 行业 6月23日收盘 6月22日收盘 流通市值(亿)
────────────────────────────────────────────────────────────
立讯精密 电子 38.50 40.20 2800
海康威视 电子 32.10 33.50 2200
歌尔股份 电子 18.20 19.80 800
长电科技 电子 26.50 27.30 650
韦尔股份 电子 95.00 98.00 500
────────────────────────────────────────────────────────────
恒瑞医药 医药 48.50 47.00 3200
迈瑞医疗 医药 285.00 278.00 3800
药明康德 医药 52.00 55.50 1800
泰格医药 医药 68.00 71.20 750
康龙化成 医药 28.50 31.00 400
────────────────────────────────────────────────────────────
招商银行 银行 38.20 38.50 11000
宁波银行 银行 26.80 27.10 2500
平安银行 银行 11.50 11.80 2200
杭州银行 银行 13.20 13.40 900
成都银行 银行 14.80 15.10 600
Step 1:计算每只股票的4日反转率
这个比较简单,就是现在/4天前close -1
每只股票都有自身的反转率
Step 2:行业内市值分组
把每个行业内部的股票进行三等分,你比如三个行业,每个行业三等分,那就是分成了9份
我是按照市值30%、40%、30%进行的三等分
Step 3:计算每个格子的平均反转率
现在每个格子的标签就是(行业、市值),计算每个格子的平均反转率, 就把上面计算的格子里的每只个股的反转率加起来平均。
Step 4:计算反转残差
格子内每只票的反转率与平均反转率的差值ε
实际含义就是我在同行业内,比我相同市值的股票,多跌了多少。
现在每只股票的 ε 的含义非常清晰——
ε 为负且绝对值大(比如歌尔股份 ε=-2.57%):它比同行业同市值级别多跌了一大截 → 这是"过度反应",反转买入信号强
ε 为正且绝对值大(比如长电科技 ε=+2.58%):它比同行业同市值级别少跌了/甚至涨了 → 没有超跌,不买
ε 接近0:和同类差不多,没有额外的反转信号
格子里只有1只股票:ε=0,因为没有同类可以比 → 这个信号不可靠
Step5:Z-S CORE
计算出全市场的ε以后,做数据进行Z处理。把不同行业不同市值统一到一个尺度
每个行业只取前3即可。
Step6:RANK归一
排序后取前10作为买入标的,同行业股票不超过2只
以上就完成了理想反转因子的算法搭建
不过回测结果挺烂的。
这个因子本身价值有限
话题与分类:
主题股票:
主题概念:
声明:遵守相关法律法规,所发内容承担法律责任,倡导理性交流,远离非法证券活动,共建和谐交流环境!
