101个α因子#23
(((sum(high, 20) / 20) < high) ? (-1 * delta(high, 2)) : 0)
worldquant brain平台上调整后的语法:
为了降低Weight concentration,添加rank函数
rank((((ts_sum(high, 20) / 20) < high) ? (-1 * ts_delta(high, 2)) : 0))
Alpha因子逻辑分步解析:
1. 条件判断:股价是否处于短期高位
- 公式:
(ts_sum(high, 20)/20 < high)
- 计算20日均线:
ts_sum(high, 20)/20
为过去20日最高价的移动平均,反映短期价格中枢。 - 判断当前高价是否突破均线:若当前最高价(high)高于20日均线,视为股价处于短期强势区域。
- 计算20日均线:
2. 短期价格动量反转信号
- 触发条件:当股价处于短期高位(条件为真)时,执行以下操作:
- 计算两日高价变化:
ts_delta(high, 2)
= 当前最高价 - 两天前最高价。 - 反转符号:
-1 * ts_delta(high, 2)
- 若两日高价上涨(delta为正),结果为负值;
- 若两日高价下跌(delta为负),结果为正值。
- 计算两日高价变化:
- 逻辑意图:
- 股价高位 + 短期下跌 → 正信号(押注回调后的反弹)。
- 股价高位 + 短期上涨 → 负信号(押注超买后的反转)。
3. 非高位股票的信号屏蔽
- 默认值:若股价未突破20日均线(条件为假),则信号值为 0。
- 目的:仅关注处于短期高位的股票,避免在震荡市中产生无效信号。
4. 横截面排名(Rank)
- 操作:对全市场股票的信号值进行分位数排序(0到1)。
- 排名逻辑:
- 高分位(接近1):
- 股价处于高位且两日高价显著下跌(短期回调幅度大),预示反弹概率高。
- 低分位(接近0):
- 股价处于高位但两日高价继续上涨(超买),或股价未达高位(信号为0)。
- 高分位(接近1):
核心策略逻辑
-
捕捉高位股的短期反转机会:
- 当股价处于20日高位时,若短期(两日)高价下跌,认为市场存在获利回吐或超买回调,押注反弹。
- 若股价高位但短期继续上涨,视为风险累积,通过负信号提示做空(具体方向需结合因子值符号与策略定义)。
-
量价趋势过滤:
- 仅当股价突破均线时触发信号,避免在弱势股中盲目交易。
潜在策略意图
- 均值回归策略:
通过20日均线识别短期超买状态,结合两日价格反转信号,押注价格向均线回归。 - 横截面选股:
排名机制筛选出回调幅度大且处于高位的股票,增强反弹概率。 - 风险控制:
屏蔽未达均线的股票,减少无效交易。
示例说明
股票 | 20日均线 | 当前高价 | 两日高价变化 | 条件是否触发 | 信号值 | 因子值(Rank) | 预期方向 |
---|---|---|---|---|---|---|---|
A | 50 | 55 | -3(下跌) | 是(55>50) | +3 | 0.9(高分位) | 做多 |
B | 60 | 65 | +2(上涨) | 是(65>60) | -2 | 0.1(低分位) | 做空 |
C | 30 | 28 | -1(下跌) | 否(28<30) | 0 | 0.3(中分位) | 忽略 |
- 股票A:高位回调,信号值正且排名高 → 押注反弹。
- 股票B:高位续涨,信号值负且排名低 → 押注反转。
- 股票C:未达均线,不参与交易。
关键公式总结
Factor = Rank ( { − 1 × ( High t − High t − 2 ) if High t > SMA 20 d ( High ) 0 otherwise ) \text{Factor} = \text{Rank} \left( \begin{cases} -1 \times (\text{High}_t - \text{High}_{t-2}) & \text{if } \text{High}_t > \text{SMA}_{20d}(\text{High}) \\ 0 & \text{otherwise} \end{cases} \right) Factor=Rank({−1×(Hight−Hight−2)0if Hight>SMA20d(High)otherwise)
逻辑链条:
股价短期高位 → 两日价格动量反转 → 横截面筛选高反弹概率标的。