一、研究背景与目标
很多研究发现,短期跌幅较大的股票,后续一段时间往往存在一定的“反弹”或“均值回归”特征。本文用一个非常简单的 20 日反转因子,做一个轻量级的小测试:
看看「近 20 日跌得最狠的股票」在接下来一段时间内是否有超额收益;
给出一套可复现的选股名单,方便大家在此基础上继续扩展、更严肃地回测。
二、数据与样本
市场:A 股(沪深),仅保留在市股票(status=1)
区间:2022-01-01 ~ 2025-01-01
频率:日线
使用字段:
收盘价 close
成交额 amount
数据源:panda_data.get_factor
代码片段(数据获取):
三、因子构造与选股逻辑
- 因子定义
1)20 日收益率(短期表现):
对每只股票,在日线收盘价基础上计算:
[ \text{ret_20d}(t) = \frac{P_t}{P_{t-20}} - 1 ]
2)流动性过滤:
计算近 20 日平均成交额:
[ \text{avg_amount_20d}(t) = \text{mean}_{i=t-19}^{t} (\text{amount}_i) ]
仅保留 avg_amount_20d > 1000 万 的股票参与排序,避免流动性过差的标的。
对应代码:
2. 调仓频率
调仓频率:每月最后一个交易日
做法:
把交易日转成 YYYYMM,
每个月取最大日期作为该月最后交易日。
3. 横截面选股规则(反转思想)
在每一个调仓日 t:
1)在当日所有股票中,先做流动性过滤:
avg_amount_20d <= 1e7 的股票视为无效,不参与 ranking;
2)对剩余股票,按 ret_20d 从小到大排序,计算分位数 ret_rank_pct;
3)选股:
ret_rank_pct <= 20% 的股票认为是
近 20 日跌幅比较靠前的股票(短期超跌)
将这些股票打标 signal = 1,其余为 0。