一、背景
We emphasize that the 101 alphas we present here are not ‘toy’ alphas but real-life trading alphas used in production.
101 个阿尔法因子并非用于理论研究的 “玩具” 因子,而是在实际交易中使用的真实因子。
此前,在《Alpha101:101 个公式化量价因子深度解析(一)》中,已经对 Alpha 101 中的前 50 个因子进行了深入梳理,详细解析了它们的核心逻辑与应用场景,相关内容可参考下面链接。
https://www.pandaai.online/community/article/100
二、 51 个因子的核心逻辑与应用场景
我们将延续这一探索之旅,对剩余的 51 个 Alpha 因子展开全面剖析。
Alpha 51
(((((delay(close, 20) - delay(close, 10)) / 10) - ((delay(close, 10) - close) / 10)) < (-1 * 0.05)) ? 1 : ((-1 * 1) * (close - delay(close, 1))))
核心步骤如下:
与Alpha 49类似,但阈值为-0.05而非-0.1:
1、价格变化趋势的变化计算相同
2、条件判断:如果趋势变化 < -0.05,返回1;否则返回昨日收益的负值
这个因子是Alpha#49的变体,使用更敏感的阈值。
Alpha 51是 Alpha 49的敏感版本,使用更低的阈值来识别价格趋势的减速。它能够更早地捕捉趋势转折的信号,但可能产生更多的假信号。这种设计体现了对趋势转折时机的精细调节,平均持有期约5-10天。
Alpha 52
((((-1 * ts_min(low, 5)) + delay(ts_min(low, 5), 5)) * rank(((sum(returns, 240) - sum(returns, 20)) / 220))) * ts_rank(volume, 5))
核心步骤如下:
1、ts_min(low, 5)
:过去5天最低价的最小值
2、delay(..., 5)
:5天前的5天最低价最小值,实际涉及的最低价时间范围为T-9至T-5日,距今 5~9 个交易日。
3、(-1 * ...) + ...
:两个最低价的差异,正值表示当前低点低于前期(低点下移),负值表示低点上移。暗示短期超跌反弹信号,本质是5日价格区间突破的变体,类似Donchian Channel的逆向版本。
4、sum(returns, 240), sum(returns, 20)
:240天和20天收益率总和
5、(... - ...) / 220
:长期与短期收益率的差异,本质是计算过去 220 个交易日的平均日收益。
6、rank(...)
:对收益率差异进行横截面排名
7、ts_rank(volume, 5)
:过去5天交易量的时间序列排名
8、三部分相乘
当支撑位下移、长期收益表现相对较好、且交易量活跃时,给出看涨信号。
Alpha#52是一个多维度复合因子,结合技术分析、基本面分析和交易量分析。它寻找那些技术面反转(支撑位下移)、基本面良好(长期收益相对较好)且有交易量支持的股票,体现了全面的投资分析框架,平均持有期约10-20天。
Alpha 53
(-1 * delta((((close - low) - (high - close)) / (close - low)), 9))
核心步骤如下:
(close - low)
:收盘价与最低价的差异,衡量从最低点的涨幅(high - close)
:最高价与收盘价的差异,衡量从最高点的跌幅(... - ...)
:两者相减,衡量收盘价在日内区间的相对位置... / (close - low)
:标准化处理delta(..., 9)
:该指标的9天变化(-1 * ...)
:取负值
这个因子分析日内价格位置的变化:
- 日内位置:衡量收盘价在日内价格区间的相对位置
- 位置变化:分析该位置的9天变化趋势
- 反向操作:当位置改善时给出看跌信号
当股票收盘价在日内区间的相对位置持续改善时,可能存在过度乐观,预期回调。
Alpha#53是一个基于日内价格位置变化的反转因子。它通过分析收盘价在日内价格区间的相对位置及其变化趋势,识别可能的过度反应。当检测到价格位置持续改善时,预期短期回调,适用于捕捉日内情绪过度后的调整,平均持有期约3-7天。
Alpha 54
((-1 * ((low - close) * (open^5))) / ((low - high) * (close^5)))
核心步骤如下:
1、分子:-1 × (low - close) × (open^5)
2、分母:(low - high) × (close^5)
整体为分子/分母的比值形式,但通过5次方运算和价格差乘积引入非线性。由于使用了高次方,这个因子对价格水平非常敏感,可能针对特定价格区间优化。
Alpha#54是一个高度非线性的价格关系因子。它通过复杂的数学变换分析日内价格关系,对价格水平高度敏感。这种设计可能针对特定的价格模式或异常进行优化,但解释性较低,平均持有期约1-3天。
Alpha 55
(-1 * correlation(rank(((close - ts_min(low, 12)) / (ts_max(high, 12) - ts_min(low, 12)))), rank(volume), 6))
核心步骤如下:
ts_min(low, 12), ts_max(high, 12)
:过去12天的最低价和最高价(close - ts_min(low, 12))
:收盘价与12天最低价的差异(ts_max(high, 12) - ts_min(low, 12))
:12天价格区间... / ...
:收盘价在12天价格区间的相对位置(类似KDJ的K值)rank(...)
:对相对位置进行横截面排名rank(volume)
:交易量的横截面排名correlation(..., ..., 6)
:过去6天两个排名的相关性(-1 * ...)
:取负值
当股票价格在高位且与交易量高度正相关时,可能表明追涨情绪过热。
Alpha#55是一个基于技术指标和交易量关系的反转因子。它通过分析价格在历史区间内的相对位置与交易量的关系,识别追涨情绪。当检测到价格高位与交易量高度正相关时,预期回调,适用于捕捉技术面过热后的调整,平均持有期约3-7天。
Alpha 56
(0 - (1 * (rank((sum(returns, 10) / sum(sum(returns, 2), 3))) * rank((returns * cap)))))
核心步骤如下:
sum(returns, 10)
:过去10天收益率总和sum(returns, 2)
:过去2天收益率总和sum(..., 3)
:过去3天的2天收益率总和... / ...
:长期与短期收益率的比率rank(...)
:对比率进行横截面排名(returns * cap)
:收益率乘以市值rank(...)
:对市值加权收益进行横截面排名- 两个排名相乘后取负值
当股票长期收益率相对较好且市值加权收益较高时,可能存在过度反应。
Alpha#56是一个结合收益率分析和市值因素的反转因子。它通过比较不同时间窗口的收益率表现,结合市值权重,识别可能的过度反应。当检测到表现过好时,预期回调,体现了均值回归的投资逻辑,平均持有期约5-10天。
Alpha 57
(0 - (1 * ((close - vwap) / decay_linear(rank(ts_argmax(close, 30)), 2))))
核心步骤如下:
ts_argmax(close, 30)
:过去30天收盘价最大值的位置(时间索引)rank(...)
:对位置进行横截面排名decay_linear(..., 2)
:2天线性衰减加权(close - vwap)
:收盘价与VWAP的差异... / ...
:差异除以衰减加权排名- 结果取负值
当收盘价高于VWAP且最近出现历史高点时,可能存在过度乐观。
Alpha#57是一个结合价格偏离和历史高点分析的反转因子。它通过分析收盘价相对于VWAP的偏离,结合历史高点的时间信息,识别可能的过度反应。当检测到价格偏离且接近历史高点时,预期回调,平均持有期约2-5天。
Alpha 58
(-1 * Ts_Rank(decay_linear(correlation(IndNeutralize(vwap, IndClass.sector), volume, 3.92795), 7.89291), 5.50322))
从这个因子开始有小数窗口。
核心步骤如下:
IndNeutralize(vwap, IndClass.sector)
:对VWAP进行行业中性化处理correlation(..., volume, 3.92795)
:与交易量的相关性(使用小数窗口)decay_linear(..., 7.89291)
:线性衰减加权(使用小数窗口)Ts_Rank(..., 5.50322)
:时间序列排名(使用小数窗口)(-1 * ...)
:取负值
这个因子使用行业中性化和精确参数:
- 行业中性化:消除行业因素对VWAP的影响
- 价量关系:分析中性化后的VWAP与交易量关系
- 精确参数:使用优化后的小数参数
- 时间序列分析:使用时间序列排名
这是一个高度优化的技术因子,参数可能通过机器学习优化得出。
Alpha#58是一个高度技术化的行业中性因子。它通过行业中性化处理和精确的参数优化,分析价量关系的时间序列特征。这种设计表明它是通过大量数据优化得出的,可能针对特定市场条件进行了精细调节,平均持有期约2-5天。
Alpha 59
(-1 * Ts_Rank(decay_linear(correlation(IndNeutralize(((vwap * 0.728317) + (vwap * (1 - 0.728317))), IndClass.industry), volume, 4.25197), 16.2289), 8.19648))
核心步骤如下:
(vwap * 0.728317) + (vwap * (1 - 0.728317))
:VWAP的加权组合(实际上等于VWAP)IndNeutralize(..., IndClass.industry)
:对VWAP进行行业中性化处理correlation(..., volume, 4.25197)
:与交易量的相关性decay_linear(..., 16.2289)
:线性衰减加权Ts_Rank(..., 8.19648)
:时间序列排名(-1 * ...)
:取负值
这个因子与Alpha#58类似,但使用不同的参数和行业分类:
- VWAP变换:虽然数学上等于VWAP,但可能是优化过程的结果
- 行业中性化:使用行业而非板块进行中性化
- 参数优化:使用不同的优化参数
Alpha#59是Alpha#58的变体,使用不同的行业分类和参数设置。它同样是一个高度技术化的行业中性因子,通过精确的参数优化分析价量关系。这种设计表明它是针对不同行业特征进行的优化,平均持有期约2-5天。
Alpha 60
(0 - (1 * ((2 * scale(rank(((((close - low) - (high - close)) / (high - low)) * volume)))) - scale(rank(ts_argmax(close, 10))))))
核心步骤如下:
(close - low) - (high - close)
:收盘价相对于日内中点的偏离... / (high - low)
:标准化处理... * volume
:乘以交易量rank(...)
:横截面排名scale(...)
:缩放标准化2 * ...
:乘以2ts_argmax(close, 10)
:过去10天收盘价最大值的位置rank(...)
:对位置进行横截面排名scale(...)
:缩放标准化- 第一部分减去第二部分后取负值
这个因子结合了日内位置分析、交易量分析和历史高点分析:
- 日内位置:分析收盘价在日内区间的位置
- 交易量权重:使用交易量进行权重调整
- 历史高点:考虑最近高点的时间信息
- 权重平衡:通过不同权重平衡各因素
当股票日内位置较好且有交易量支持,但接近历史高点时,因子给出复合信号。
Alpha#60是一个复杂的多维度因子,结合日内技术分析、交易量分析和历史价格分析。它通过精心设计的权重分配,平衡不同因素的影响,寻找最优的交易时机。因子设计体现了对多种市场信息的综合利用,平均持有期约3-7天。
Alpha 61
(rank((vwap - ts_min(vwap, 16.1219))) < rank(correlation(vwap, adv180, 17.9282)))
核心步骤如下:
ts_min(vwap, 16.1219)
:过去16.1219天VWAP的最小值(使用小数窗口)(vwap - ...)
:当前VWAP与历史最低VWAP的差异rank(...)
:对差异进行横截面排名correlation(vwap, adv180, 17.9282)
:VWAP与180天平均交易量的相关性rank(...)
:对相关性进行横截面排名- 比较两个排名的大小关系
这个因子使用精确优化的参数比较两个不同的市场信号:
- 价格恢复信号:VWAP相对于历史最低点的恢复程度
- 流动性关系信号:VWAP与长期平均交易量的关系稳定性
- 信号比较:当价格恢复信号弱于流动性关系信号时,给出看涨信号
这种设计表明当价格恢复不足但流动性关系良好时,可能存在投资机会。
Alpha#61是一个高度优化的比较型因子,使用精确参数比较价格恢复与流动性关系两个维度的信号强度。当价格恢复相对较弱但流动性关系较好时,预期价格可能进一步上涨。这种设计体现了多信号验证的投资逻辑,平均持有期约5-10天。
Alpha 62
((rank(correlation(vwap, sum(adv20, 22.4101), 9.91009)) < rank(((rank(open) + rank(open)) < (rank(((high + low) / 2)) + rank(high))))) * -1)
核心步骤如下:
sum(adv20, 22.4101)
:过去22.4101天的20天平均交易量总和correlation(vwap, ..., 9.91009)
:VWAP与交易量总和的相关性rank(...)
:对相关性进行横截面排名rank(open) + rank(open)
:开盘价排名的两倍rank(((high + low) / 2)) + rank(high)
:中点价格排名加最高价排名- 比较两个价格组合的大小关系
- 比较流动性信号与价格信号的强度
- 结果取负值
这个因子结合了流动性分析和价格结构分析:
- 流动性信号:VWAP与累积交易量的关系
- 价格结构信号:比较开盘价与日内价格的相对强度
- 信号对比:当流动性信号弱于价格结构信号时,经过取负值后给出看涨信号
Alpha#62是一个复杂的多信号比较因子,结合流动性分析和价格结构分析。它通过比较不同维度信号的相对强度,识别市场机会。当流动性信号相对较弱但价格结构良好时,预期可能出现上涨,平均持有期约3-7天。
Alpha 63
((rank(decay_linear(delta(IndNeutralize(close, IndClass.industry), 2.25164), 8.22237)) - rank(decay_linear(correlation(((vwap * 0.318108) + (open * (1 - 0.318108))), sum(adv180, 37.2467), 13.557), 12.2883))) * -1)
核心步骤如下:
IndNeutralize(close, IndClass.industry)
:对收盘价进行行业中性化delta(..., 2.25164)
:中性化收盘价的变化decay_linear(..., 8.22237)
:线性衰减加权rank(...)
:横截面排名(vwap * 0.318108) + (open * (1 - 0.318108))
:VWAP与开盘价的加权组合sum(adv180, 37.2467)
:累积的180天平均交易量correlation(..., ..., 13.557)
:价格组合与交易量的相关性decay_linear(..., 12.2883)
:线性衰减加权rank(...)
:横截面排名- 两个排名相减后取负值
这个因子是一个高度技术化的行业中性因子:
- 行业中性化:消除行业因素对收盘价的影响
- 价格动量信号:分析中性化后的价格变化
- 流动性关系信号:分析价格与流动性的关系
- 信号差异:比较两个信号的相对强度
所有参数都经过精确优化,表明这是一个机器学习优化的结果。
Alpha#63是一个高度优化的行业中性多信号因子。它通过行业中性化处理和精确的参数设置,比较价格动量与流动性关系两个维度的信号。这种设计表明它是通过大量历史数据优化得出的,可能针对特定市场模式进行了精细调节,平均持有期约5-10天。
Alpha 64
((rank(correlation(sum(((open * 0.178404) + (low * (1 - 0.178404))), 12.7054), sum(adv120, 12.7054), 16.6208)) < rank(delta(((((high + low) / 2) * 0.178404) + (vwap * (1 - 0.178404))), 3.69741))) * -1)
核心步骤如下:
(open * 0.178404) + (low * (1 - 0.178404))
:开盘价与最低价的加权组合sum(..., 12.7054)
:该组合价格的累积值sum(adv120, 12.7054)
:120天平均交易量的累积值correlation(..., ..., 16.6208)
:两个累积值的相关性rank(...)
:对相关性进行横截面排名((high + low) / 2) * 0.178404) + (vwap * (1 - 0.178404))
:中点价格与VWAP的加权组合delta(..., 3.69741)
:该组合价格的变化rank(...)
:对变化进行横截面排名- 比较两个排名后取负值
这个因子使用相同的权重系数分析不同价格组合:
- 价格组合一致性:使用相同权重构建不同的价格组合
- 流动性关系:分析价格组合与流动性的累积关系
- 价格动量:分析另一个价格组合的变化动量
- 信号比较:比较关系稳定性与动量强度
Alpha 64是一个基于价格组合分析的复杂因子。它通过构建不同的价格组合,分别分析与流动性的关系和价格动量,然后比较两个信号的相对强度。这种设计体现了对价格结构的深入理解,平均持有期约5-10天。
Alpha 65
((rank(correlation(((open * 0.00817205) + (vwap * (1 - 0.00817205))), sum(adv60, 8.6911), 6.40374)) < rank((open - ts_min(open, 13.635)))) * -1)
核心步骤如下:
(open * 0.00817205) + (vwap * (1 - 0.00817205))
:开盘价与VWAP的加权组合(几乎等于VWAP)sum(adv60, 8.6911)
:60天平均交易量的累积值correlation(..., ..., 6.40374)
:价格组合与交易量的相关性rank(...)
:对相关性进行横截面排名ts_min(open, 13.635)
:过去13.635天开盘价的最小值(open - ...)
:当前开盘价与历史最低开盘价的差异rank(...)
:对差异进行横截面排名- 比较两个排名后取负值
这个因子比较流动性关系与价格恢复两个信号:
- 流动性关系:价格与交易量的相关性(权重几乎全部给VWAP)
- 价格恢复:开盘价相对于历史最低点的恢复程度
- 信号比较:当流动性关系弱于价格恢复时,给出看涨信号
Alpha#65是一个比较流动性关系与价格恢复的因子。它通过分析价格与流动性的关系强度,对比开盘价的恢复程度,寻找投资机会。当流动性关系相对较弱但价格恢复良好时,预期进一步上涨,平均持有期约3-7天。
Alpha 66
((rank(decay_linear(delta(vwap, 3.51013), 7.23052)) + Ts_Rank(decay_linear(((((low * 0.96633) + (low * (1 - 0.96633))) - vwap) / (open - ((high + low) / 2))), 11.4157), 6.72611)) * -1)
核心步骤如下:
delta(vwap, 3.51013)
:VWAP的变化decay_linear(..., 7.23052)
:线性衰减加权rank(...)
:横截面排名(low * 0.96633) + (low * (1 - 0.96633))
:最低价的加权组合(实际等于最低价)... - vwap
:最低价与VWAP的差异open - ((high + low) / 2)
:开盘价与中点价格的差异... / ...
:两个差异的比率decay_linear(..., 11.4157)
:线性衰减加权Ts_Rank(..., 6.72611)
:时间序列排名- 两部分相加后取负值
这个因子结合了VWAP动量和价格结构分析:
- VWAP动量:分析VWAP的变化趋势
- 价格结构:分析最低价与VWAP的关系,相对于开盘价与中点的关系
- 时间维度:使用时间序列排名捕捉时间模式
- 信号合成:将两个信号相加
Alpha#66是一个结合VWAP动量和价格结构的复合因子。它通过分析VWAP的变化趋势和复杂的价格结构关系,识别市场机会。当两个信号都显示强势时,预期回调,体现了反转策略的逻辑,平均持有期约5-10天。
Alpha 67
((rank((high - ts_min(high, 2.14593)))^rank(correlation(IndNeutralize(vwap, IndClass.sector), IndNeutralize(adv20, IndClass.subindustry), 6.02936))) * -1)
核心步骤如下:
ts_min(high, 2.14593)
:过去2.14593天最高价的最小值(high - ...)
:当前最高价与历史最低最高价的差异rank(...)
:对差异进行横截面排名IndNeutralize(vwap, IndClass.sector)
:对VWAP进行板块中性化IndNeutralize(adv20, IndClass.subindustry)
:对平均交易量进行子行业中性化correlation(..., ..., 6.02936)
:两个中性化变量的相关性rank(...)
:对相关性进行横截面排名- 两个排名进行幂运算后取负值
这个因子使用幂运算结合价格强度和行业中性化分析:
- 价格强度:最高价相对于短期历史的强度
- 行业中性化关系:不同行业分类下的价格与流动性关系
- 非线性组合:使用幂运算进行非线性组合
- 反向操作:当两个信号都强时给出看跌信号
Alpha#67是一个使用非线性组合的行业中性因子。它通过幂运算结合价格强度与行业中性化的流动性关系,创造复杂的交互效应。当价格强度和行业关系都较强时,预期回调,平均持有期约3-7天。
Alpha 68
((Ts_Rank(correlation(rank(high), rank(adv15), 8.91644), 13.9333) < rank(delta(((close * 0.518371) + (low * (1 - 0.518371))), 1.06157))) * -1)
核心步骤如下:
rank(high), rank(adv15)
:最高价和15天平均交易量的横截面排名correlation(..., ..., 8.91644)
:两个排名的相关性Ts_Rank(..., 13.9333)
:相关性的时间序列排名(close * 0.518371) + (low * (1 - 0.518371))
:收盘价与最低价的加权组合delta(..., 1.06157)
:该组合价格的变化rank(...)
:对变化进行横截面排名- 比较两个信号后取负值
这个因子比较价量关系的时间模式与价格动量:
- 价量关系时间模式:分析最高价与流动性排名相关性的时间序列特征
- 价格动量:分析收盘价与最低价组合的变化
- 信号比较:当时间模式信号弱于动量信号时,给出看涨信号
Alpha#68是一个比较时间模式与价格动量的因子。它通过分析价量关系的时间序列特征,对比价格组合的动量,寻找投资机会。当时间模式相对较弱但价格动量较强时,预期进一步上涨,平均持有期约5-10天。
Alpha 69
((rank(ts_max(delta(IndNeutralize(vwap, IndClass.industry), 2.72412), 4.79344))^Ts_Rank(correlation(((close * 0.490655) + (vwap * (1 - 0.490655))), adv20, 4.92416), 9.0615)) * -1)
核心步骤如下:
IndNeutralize(vwap, IndClass.industry)
:对VWAP进行行业中性化delta(..., 2.72412)
:中性化VWAP的变化ts_max(..., 4.79344)
:变化的最大值rank(...)
:对最大值进行横截面排名(close * 0.490655) + (vwap * (1 - 0.490655))
:收盘价与VWAP的加权组合correlation(..., adv20, 4.92416)
:价格组合与平均交易量的相关性Ts_Rank(..., 9.0615)
:相关性的时间序列排名- 两个排名进行幂运算后取负值
这个因子使用幂运算结合行业中性化的价格动量和流动性关系:
- 行业中性化动量:消除行业因素后的VWAP动量峰值
- 流动性关系时间模式:价格与流动性关系的时间序列特征
- 非线性组合:使用幂运算创造复杂交互效应
Alpha#69是一个高度复杂的行业中性非线性因子。它通过幂运算结合行业中性化的价格动量峰值与流动性关系的时间模式,创造复杂的信号。当两个维度都显示强势时,预期回调,平均持有期约5-10天。
Alpha 70
((rank(delta(vwap, 1.29456))^Ts_Rank(correlation(IndNeutralize(close, IndClass.industry), adv50, 17.8256), 17.9171)) * -1)
核心步骤如下:
delta(vwap, 1.29456)
:VWAP的短期变化rank(...)
:对变化进行横截面排名IndNeutralize(close, IndClass.industry)
:对收盘价进行行业中性化correlation(..., adv50, 17.8256)
:中性化收盘价与50天平均交易量的相关性Ts_Rank(..., 17.9171)
:相关性的时间序列排名- 两个排名进行幂运算后取负值
这个因子使用幂运算结合VWAP动量和行业中性化的流动性关系:
- VWAP短期动量:分析VWAP的短期变化强度
- 行业中性化流动性关系:消除行业因素后的价格与流动性关系
- 时间序列特征:使用时间序列排名捕捉时间模式
- 非线性组合:通过幂运算创造交互效应
Alpha#70是一个结合短期动量和长期关系的非线性因子。它通过幂运算将VWAP短期动量与行业中性化的流动性关系结合,当两个信号都较强时预期回调,体现了反转策略的逻辑,平均持有期约3-7天。
Alpha 71
max(Ts_Rank(decay_linear(correlation(Ts_Rank(close, 3.43976), Ts_Rank(adv180, 12.0647), 18.0175), 4.20501), 15.6948), Ts_Rank(decay_linear((rank(((low + open) - (vwap + vwap)))^2), 16.4662), 4.4388))
核心步骤如下:
Ts_Rank(close, 3.43976)
:收盘价的短期时间序列排名Ts_Rank(adv180, 12.0647)
:180天平均交易量的时间序列排名correlation(..., ..., 18.0175)
:两个时间序列排名的相关性decay_linear(..., 4.20501)
:相关性的线性衰减加权Ts_Rank(..., 15.6948)
:衰减加权相关性的时间序列排名((low + open) - (vwap + vwap))
:低价与开盘价之和减去VWAP的两倍rank(...)
:对差异进行横截面排名...^2
:排名的平方decay_linear(..., 16.4662)
:平方的线性衰减加权Ts_Rank(..., 4.4388)
:衰减加权平方的时间序列排名- 取两个时间序列排名的最大值
这个因子使用最大值函数选择两个复杂信号中的较强者:
- 价量关系时间模式:分析收盘价与长期流动性的时间序列关系
- 价格结构异常:分析价格结构的异常程度(使用平方放大异常)
- 信号选择:选择两个信号中较强的一个
Alpha#71是一个多信号选择型因子,使用最大值函数在两个复杂的时间序列信号中选择较强者。它结合了价量关系的时间模式和价格结构异常分析,通过信号选择机制提高因子的适应性,平均持有期约5-10天。
Alpha 72
(rank(decay_linear(correlation(((high + low) / 2), adv40, 8.93345), 10.1519)) / rank(decay_linear(correlation(Ts_Rank(vwap, 3.72469), Ts_Rank(volume, 18.5188), 6.86671), 2.95011)))
核心步骤如下:
((high + low) / 2)
:最高价与最低价的中点correlation(..., adv40, 8.93345)
:中点价格与40天平均交易量的相关性decay_linear(..., 10.1519)
:相关性的线性衰减加权rank(...)
:对衰减加权相关性进行横截面排名Ts_Rank(vwap, 3.72469), Ts_Rank(volume, 18.5188)
:VWAP和交易量的时间序列排名correlation(..., ..., 6.86671)
:两个时间序列排名的相关性decay_linear(..., 2.95011)
:相关性的线性衰减加权rank(...)
:对衰减加权相关性进行横截面排名- 第一个排名除以第二个排名
这个因子使用比率形式比较两种不同的价量关系:
- 中点价格与流动性关系:分析理论价格与长期流动性的关系
- 实际价量关系时间模式:分析VWAP与交易量的时间序列关系
- 关系比较:通过比率比较两种关系的相对强度
Alpha#72是一个比率型因子,比较两种不同维度的价量关系强度。它通过分析理论价格与实际价量关系的相对强度,识别市场机会。当理论关系强于实际关系时,可能存在价格发现机会,平均持有期约5-10天。
Alpha 73
(max(rank(decay_linear(delta(vwap, 4.72775), 2.91864)), Ts_Rank(decay_linear(((delta(((open * 0.147155) + (low * (1 - 0.147155))), 2.03608) / ((open * 0.147155) + (low * (1 - 0.147155)))) * -1), 3.33829), 16.7411)) * -1)
核心步骤如下:
delta(vwap, 4.72775)
:VWAP的变化decay_linear(..., 2.91864)
:变化的线性衰减加权rank(...)
:对衰减加权变化进行横截面排名(open * 0.147155) + (low * (1 - 0.147155))
:开盘价与最低价的加权组合delta(..., 2.03608)
:该组合价格的变化... / ...
:变化率计算... * -1
:取负值decay_linear(..., 3.33829)
:负变化率的线性衰减加权Ts_Rank(..., 16.7411)
:衰减加权负变化率的时间序列排名- 取两个信号的最大值后取负值
这个因子使用最大值函数选择两个动量信号中的较强者:
- VWAP动量:分析VWAP变化的强度
- 价格组合反向动量:分析开盘价与最低价组合的反向变化率
- 信号选择:选择两个动量信号中较强的一个
- 反向操作:对选择的信号取负值
Alpha#73是一个动量信号选择型反转因子。它在两个不同的动量信号中选择较强者,然后采用反转策略。当动量信号较强时,预期回调,体现了动量反转的投资逻辑,平均持有期约3-7天。
Alpha 74
((rank(correlation(close, sum(adv30, 37.4843), 15.1365)) < rank(correlation(rank(((high * 0.0261661) + (vwap * (1 - 0.0261661)))), rank(volume), 11.4791))) * -1)
核心步骤如下:
sum(adv30, 37.4843)
:30天平均交易量的累积值correlation(close, ..., 15.1365)
:收盘价与累积交易量的相关性rank(...)
:对相关性进行横截面排名(high * 0.0261661) + (vwap * (1 - 0.0261661))
:最高价与VWAP的加权组合(几乎等于VWAP)rank(...), rank(volume)
:价格组合和交易量的横截面排名correlation(..., ..., 11.4791)
:两个排名的相关性rank(...)
:对相关性进行横截面排名- 比较两个相关性排名后取负值
这个因子比较两种不同的价量关系:
- 价格与累积流动性关系:收盘价与长期累积交易量的关系
- 排名价量关系:价格排名与交易量排名的关系
- 关系比较:当第一种关系弱于第二种关系时,给出看涨信号
Alpha#74是一个比较不同价量关系的因子。它通过分析价格与累积流动性的关系,对比排名层面的价量关系,寻找投资机会。当累积关系相对较弱但排名关系较强时,预期上涨,平均持有期约5-10天。
Alpha 75
(rank(correlation(vwap, volume, 4.24304)) < rank(correlation(rank(low), rank(adv50), 12.4413)))
核心步骤如下:
correlation(vwap, volume, 4.24304)
:VWAP与交易量的短期相关性rank(...)
:对相关性进行横截面排名rank(low), rank(adv50)
:最低价和50天平均交易量的横截面排名correlation(..., ..., 12.4413)
:两个排名的相关性rank(...)
:对相关性进行横截面排名- 比较两个相关性排名的大小关系
这个因子比较两种价量关系的强度:
- 直接价量关系:VWAP与交易量的直接相关性
- 排名价量关系:最低价排名与流动性排名的关系
- 关系比较:当直接关系弱于排名关系时,给出看涨信号
Alpha#75是一个简洁的价量关系比较因子。它通过比较直接价量关系与排名价量关系的强度,识别市场机会。当直接关系相对较弱但排名关系较强时,可能存在投资机会,平均持有期约3-7天。
Alpha 76
(max(rank(decay_linear(delta(vwap, 1.24383), 11.8259)), Ts_Rank(decay_linear(Ts_Rank(correlation(IndNeutralize(low, IndClass.sector), adv81, 8.14941), 19.569), 17.1543), 19.383)) * -1)
核心步骤如下:
delta(vwap, 1.24383)
:VWAP的短期变化decay_linear(..., 11.8259)
:变化的线性衰减加权rank(...)
:对衰减加权变化进行横截面排名IndNeutralize(low, IndClass.sector)
:对最低价进行板块中性化correlation(..., adv81, 8.14941)
:中性化最低价与81天平均交易量的相关性Ts_Rank(..., 19.569)
:相关性的时间序列排名decay_linear(..., 17.1543)
:时间序列排名的线性衰减加权Ts_Rank(..., 19.383)
:衰减加权结果的时间序列排名- 取两个信号的最大值后取负值
这个因子使用最大值函数选择两个复杂信号中的较强者:
- VWAP短期动量:分析VWAP的短期变化强度
- 行业中性化流动性关系时间模式:分析板块中性化后的价格与流动性关系的复杂时间模式
- 信号选择:选择两个信号中较强的一个
- 反向操作:对选择的信号采用反转策略
Alpha#76是一个复杂的信号选择型反转因子。它在VWAP短期动量和行业中性化的复杂流动性关系中选择较强信号,然后采用反转策略。当选择的信号较强时,预期回调,平均持有期约5-10天。
Alpha 77
min(rank(decay_linear(((((high + low) / 2) + high) - (vwap + high)), 20.0451)), rank(decay_linear(correlation(((high + low) / 2), adv40, 3.1614), 5.64125)))
核心步骤如下:
((high + low) / 2) + high
:中点价格加最高价(vwap + high)
:VWAP加最高价... - ...
:两个价格组合的差异decay_linear(..., 20.0451)
:差异的线性衰减加权rank(...)
:对衰减加权差异进行横截面排名correlation(((high + low) / 2), adv40, 3.1614)
:中点价格与40天平均交易量的相关性decay_linear(..., 5.64125)
:相关性的线性衰减加权rank(...)
:对衰减加权相关性进行横截面排名- 取两个排名的最小值
这个因子使用最小值函数选择两个信号中的较弱者:
- 价格结构偏离:分析不同价格组合之间的偏离程度
- 中点价格流动性关系:分析理论价格与流动性的关系
- 信号选择:选择两个信号中较弱的一个
Alpha#77是一个保守的信号选择型因子。它通过选择价格结构偏离和流动性关系中较弱的信号,采用保守的投资策略。这种设计可能用于风险控制或寻找稳健的投资机会,平均持有期约5-10天。
Alpha 78
(rank(correlation(sum(((low * 0.352233) + (vwap * (1 - 0.352233))), 19.7428), sum(adv40, 19.7428), 6.83313))^rank(correlation(rank(vwap), rank(volume), 5.77492)))
核心步骤如下:
(low * 0.352233) + (vwap * (1 - 0.352233))
:最低价与VWAP的加权组合sum(..., 19.7428)
:该组合价格的累积值sum(adv40, 19.7428)
:40天平均交易量的累积值correlation(..., ..., 6.83313)
:两个累积值的相关性rank(...)
:对相关性进行横截面排名rank(vwap), rank(volume)
:VWAP和交易量的横截面排名correlation(..., ..., 5.77492)
:两个排名的相关性rank(...)
:对相关性进行横截面排名- 两个排名进行幂运算
这个因子使用幂运算结合两种价量关系:
- 累积价量关系:价格组合与流动性的累积关系
- 排名价量关系:VWAP排名与交易量排名的关系
- 非线性组合:使用幂运算创造复杂的交互效应
Alpha#78是一个非线性价量关系因子。它通过幂运算将累积价量关系与排名价量关系结合,创造复杂的交互效应。当两种关系都较强时,因子值较高,可能预期继续上涨,平均持有期约5-10天。
Alpha 79
(rank(delta(IndNeutralize(((close * 0.60733) + (open * (1 - 0.60733))), IndClass.sector), 1.23438)) < rank(correlation(Ts_Rank(vwap, 3.60973), Ts_Rank(adv150, 9.18637), 14.6644)))
核心步骤如下:
(close * 0.60733) + (open * (1 - 0.60733))
:收盘价与开盘价的加权组合IndNeutralize(..., IndClass.sector)
:对价格组合进行板块中性化delta(..., 1.23438)
:中性化价格组合的变化rank(...)
:对变化进行横截面排名Ts_Rank(vwap, 3.60973), Ts_Rank(adv150, 9.18637)
:VWAP和150天平均交易量的时间序列排名correlation(..., ..., 14.6644)
:两个时间序列排名的相关性rank(...)
:对相关性进行横截面排名- 比较两个排名的大小关系
这个因子比较板块中性化的价格动量与长期价量关系:
- 板块中性化动量:消除板块因素后的价格组合变化
- 长期价量关系时间模式:VWAP与长期流动性的时间序列关系
- 信号比较:当动量信号弱于关系信号时,给出看涨信号
Alpha#79是一个比较板块中性化动量与长期价量关系的因子。它通过分析消除板块因素后的价格动量,对比长期价量关系的时间模式,寻找投资机会。当动量相对较弱但长期关系较好时,预期上涨,平均持有期约5-10天。
Alpha 80
((rank(Sign(delta(IndNeutralize(((open * 0.868128) + (high * (1 - 0.868128))), IndClass.industry), 4.04545)))^Ts_Rank(correlation(high, adv10, 5.11456), 5.53756)) * -1)
核心步骤如下:
(open * 0.868128) + (high * (1 - 0.868128))
:开盘价与最高价的加权组合IndNeutralize(..., IndClass.industry)
:对价格组合进行行业中性化delta(..., 4.04545)
:中性化价格组合的变化Sign(...)
:变化的符号rank(...)
:对符号进行横截面排名correlation(high, adv10, 5.11456)
:最高价与10天平均交易量的相关性Ts_Rank(..., 5.53756)
:相关性的时间序列排名- 两个排名进行幂运算后取负值
这个因子使用幂运算结合行业中性化的价格方向与价量关系:
- 行业中性化价格方向:消除行业因素后的价格组合变化方向
- 短期价量关系时间模式:最高价与短期流动性关系的时间序列特征
- 非线性组合:使用幂运算创造交互效应
- 反向操作:对组合信号采用反转策略
Alpha#80是一个行业中性化的非线性反转因子。它通过幂运算将行业中性化的价格方向与短期价量关系结合,当两个信号都较强时预期回调。这种设计体现了对行业因素的控制和复杂信号交互的利用,平均持有期约3-7天。
Alpha 81
((rank(Log(product(rank((rank(correlation(vwap, sum(adv10, 49.6054), 8.47743))^4)), 14.9655))) < rank(correlation(rank(vwap), rank(volume), 5.07914))) * -1)
核心步骤如下:
correlation(vwap, sum(adv10, 49.6054), 8.47743)
:VWAP与累积10天平均交易量的相关性rank(...)
:对相关性进行横截面排名...^4
:排名的4次方rank(...)
:对4次方结果再次排名product(..., 14.9655)
:过去14.9655天的乘积Log(...)
:取对数rank(...)
:对对数结果进行横截面排名rank(vwap), rank(volume)
:VWAP和交易量的横截面排名correlation(..., ..., 5.07914)
:两个排名的相关性rank(...)
:对相关性进行横截面排名- 比较两个复杂信号后取负值
这个因子使用极其复杂的数学变换:
- 复杂流动性信号:通过多层排名、幂运算、乘积和对数变换构建复杂信号
- 简单价量关系:VWAP排名与交易量排名的直接相关性
- 信号对比:当复杂信号弱于简单信号时,给出看涨信号
这种设计可能试图捕捉非常特殊的市场异常模式。
Alpha#81是一个极其复杂的数学变换因子。它通过多层非线性变换构建复杂的流动性信号,与简单的价量关系进行比较。这种设计表明它可能针对特定的市场异常进行了高度优化,但解释性极低,平均持有期约5-10天。
Alpha 82
(min(rank(decay_linear(delta(open, 1.46063), 14.8717)), Ts_Rank(decay_linear(correlation(IndNeutralize(volume, IndClass.sector), ((open * 0.634196) + (open * (1 - 0.634196))), 17.4842), 6.92131), 13.4283)) * -1)
核心步骤如下:
delta(open, 1.46063)
:开盘价的变化decay_linear(..., 14.8717)
:变化的线性衰减加权rank(...)
:对衰减加权变化进行横截面排名IndNeutralize(volume, IndClass.sector)
:对交易量进行板块中性化(open * 0.634196) + (open * (1 - 0.634196))
:开盘价的加权组合(实际等于开盘价)correlation(..., ..., 17.4842)
:中性化交易量与开盘价的相关性decay_linear(..., 6.92131)
:相关性的线性衰减加权Ts_Rank(..., 13.4283)
:衰减加权相关性的时间序列排名- 取两个信号的最小值后取负值
这个因子使用最小值函数选择两个信号中的较弱者:
- 开盘价动量:分析开盘价变化的强度
- 板块中性化量价关系时间模式:分析消除板块因素后的量价关系时间特征
- 保守选择:选择两个信号中较弱的一个
- 反向操作:对选择的信号采用反转策略
Alpha#82是一个保守的信号选择型反转因子。它在开盘价动量和板块中性化的量价关系中选择较弱信号,然后采用反转策略。这种设计体现了保守的投资理念和对板块因素的控制,平均持有期约5-10天。
Alpha 83
((rank(delay(((high - low) / (sum(close, 5) / 5)), 2)) * rank(rank(volume))) / (((high - low) / (sum(close, 5) / 5)) / (vwap - close)))
核心步骤如下:
(high - low)
:日内价格区间(sum(close, 5) / 5)
:5天收盘价平均值... / ...
:日内区间相对于5天均价的比率delay(..., 2)
:该比率的2天前值rank(...)
:对延迟比率进行横截面排名rank(volume)
:交易量的横截面排名rank(...)
:对交易量排名再次排名- 两个排名相乘作为分子
(vwap - close)
:VWAP与收盘价的差异- 当前日内区间比率除以VWAP差异作为分母
- 分子除以分母
这个因子使用比率形式结合历史波动性、交易量和当前价格偏离:
- 历史波动性:2天前的日内区间相对于均价的比率
- 交易量强度:交易量的双重排名
- 当前价格偏离:日内区间比率相对于VWAP偏离的比率
- 综合评估:通过比率形式综合多个因素
Alpha#83是一个复杂的比率型因子,结合历史波动性、交易量强度和当前价格偏离。它通过比率形式将多个维度的信息综合,寻找波动性、流动性和价格偏离的最优组合,平均持有期约3-7天。
Alpha 84
SignedPower(Ts_Rank((vwap - ts_max(vwap, 15.3217)), 20.7127), delta(close, 4.96796))
核心步骤如下:
ts_max(vwap, 15.3217)
:过去15.3217天VWAP的最大值(vwap - ...)
:当前VWAP与历史最高VWAP的差异Ts_Rank(..., 20.7127)
:该差异的时间序列排名delta(close, 4.96796)
:收盘价的变化SignedPower(..., ...)
:使用收盘价变化作为指数的有符号幂运算
这个因子使用有符号幂运算创造非线性关系:
- VWAP相对位置时间模式:分析VWAP相对于历史高点的位置及其时间序列特征
- 价格动量指数:使用收盘价变化作为幂运算的指数
- 非线性交互:通过有符号幂运算创造复杂的非线性关系
当VWAP相对位置的时间序列排名与价格动量方向一致时,产生放大效应。
Alpha#84是一个创新的非线性因子,使用有符号幂运算将VWAP相对位置的时间模式与价格动量结合。这种设计创造了独特的非线性交互效应,可能捕捉特殊的价格模式,平均持有期约5-10天。
Alpha 85
(rank(correlation(((high * 0.876703) + (close * (1 - 0.876703))), adv30, 9.61331))^rank(correlation(Ts_Rank(((high + low) / 2), 3.70596), Ts_Rank(volume, 10.1595), 7.11408)))
核心步骤如下:
(high * 0.876703) + (close * (1 - 0.876703))
:最高价与收盘价的加权组合correlation(..., adv30, 9.61331)
:价格组合与30天平均交易量的相关性rank(...)
:对相关性进行横截面排名Ts_Rank(((high + low) / 2), 3.70596)
:中点价格的时间序列排名Ts_Rank(volume, 10.1595)
:交易量的时间序列排名correlation(..., ..., 7.11408)
:两个时间序列排名的相关性rank(...)
:对相关性进行横截面排名- 两个排名进行幂运算
这个因子使用幂运算结合两种不同的价量关系:
- 价格组合与流动性关系:分析加权价格与长期流动性的关系
- 时间序列价量关系:分析中点价格与交易量的时间序列关系
- 非线性组合:使用幂运算创造复杂交互效应
Alpha#85是一个非线性价量关系因子。它通过幂运算将价格组合与流动性的关系和时间序列价量关系结合,创造复杂的交互效应。当两种关系都较强时,因子值较高,平均持有期约5-10天。
Alpha 86
((Ts_Rank(correlation(close, sum(adv20, 14.7444), 6.00049), 20.4195) < rank(((open + close) - (vwap + open)))) * -1)
核心步骤如下:
sum(adv20, 14.7444)
:20天平均交易量的累积值correlation(close, ..., 6.00049)
:收盘价与累积交易量的相关性Ts_Rank(..., 20.4195)
:相关性的时间序列排名(open + close) - (vwap + open)
:开盘价与收盘价之和减去VWAP与开盘价之和,简化为close - vwaprank(...)
:对价格差异进行横截面排名- 比较两个信号后取负值
这个因子比较流动性关系的时间模式与价格偏离:
- 流动性关系时间模式:分析收盘价与累积流动性关系的时间序列特征
- 价格偏离:收盘价与VWAP的偏离程度
- 信号比较:当时间模式信号弱于偏离信号时,给出看涨信号
Alpha#86是一个比较时间模式与价格偏离的因子。它通过分析流动性关系的时间序列特征,对比价格偏离程度,寻找投资机会。当时间模式相对较弱但价格偏离较大时,预期回归,平均持有期约5-10天。
Alpha 87
(max(rank(decay_linear(delta(((close * 0.369701) + (vwap * (1 - 0.369701))), 1.91233), 2.65461)), Ts_Rank(decay_linear(abs(correlation(IndNeutralize(adv81, IndClass.industry), close, 13.4132)), 4.89768), 14.4535)) * -1)
核心步骤如下:
(close * 0.369701) + (vwap * (1 - 0.369701))
:收盘价与VWAP的加权组合delta(..., 1.91233)
:价格组合的变化decay_linear(..., 2.65461)
:变化的线性衰减加权rank(...)
:对衰减加权变化进行横截面排名IndNeutralize(adv81, IndClass.industry)
:对81天平均交易量进行行业中性化correlation(..., close, 13.4132)
:中性化交易量与收盘价的相关性abs(...)
:相关性的绝对值decay_linear(..., 4.89768)
:绝对相关性的线性衰减加权Ts_Rank(..., 14.4535)
:衰减加权绝对相关性的时间序列排名- 取两个信号的最大值后取负值
这个因子使用最大值函数选择两个信号中的较强者:
- 价格组合动量:分析收盘价与VWAP组合的变化强度
- 行业中性化流动性关系强度:分析消除行业因素后的流动性与价格关系的绝对强度
- 信号选择:选择两个信号中较强的一个
- 反向操作:对选择的信号采用反转策略
Alpha#87是一个信号选择型反转因子。它在价格组合动量和行业中性化的流动性关系强度中选择较强信号,然后采用反转策略。当选择的信号较强时,预期回调,平均持有期约5-10天。
Alpha 88
min(rank(decay_linear(((rank(open) + rank(low)) - (rank(high) + rank(close))), 8.06882)), Ts_Rank(decay_linear(correlation(Ts_Rank(close, 8.44728), Ts_Rank(adv60, 20.6966), 8.01266), 6.65053), 2.61957))
核心步骤如下:
rank(open) + rank(low)
:开盘价排名与最低价排名之和rank(high) + rank(close)
:最高价排名与收盘价排名之和... - ...
:两个排名组合的差异decay_linear(..., 8.06882)
:差异的线性衰减加权rank(...)
:对衰减加权差异进行横截面排名Ts_Rank(close, 8.44728), Ts_Rank(adv60, 20.6966)
:收盘价和60天平均交易量的时间序列排名correlation(..., ..., 8.01266)
:两个时间序列排名的相关性decay_linear(..., 6.65053)
:相关性的线性衰减加权Ts_Rank(..., 2.61957)
:衰减加权相关性的时间序列排名- 取两个信号的最小值
这个因子使用最小值函数选择两个信号中的较弱者:
- 价格排名结构:分析不同价格排名组合的差异
- 时间序列价量关系:分析收盘价与流动性的时间序列关系
- 保守选择:选择两个信号中较弱的一个
Alpha#88是一个保守的信号选择型因子。它通过分析价格排名结构和时间序列价量关系,选择较弱的信号。这种设计体现了保守的投资理念,可能用于风险控制,平均持有期约3-7天。
Alpha 89
(Ts_Rank(decay_linear(correlation(((low * 0.967285) + (low * (1 - 0.967285))), adv10, 6.94279), 5.51607), 3.79744) - Ts_Rank(decay_linear(delta(IndNeutralize(vwap, IndClass.industry), 3.48158), 10.1466), 15.3012))
核心步骤如下:
(low * 0.967285) + (low * (1 - 0.967285))
:最低价的加权组合(实际等于最低价)correlation(..., adv10, 6.94279)
:最低价与10天平均交易量的相关性decay_linear(..., 5.51607)
:相关性的线性衰减加权Ts_Rank(..., 3.79744)
:衰减加权相关性的时间序列排名IndNeutralize(vwap, IndClass.industry)
:对VWAP进行行业中性化delta(..., 3.48158)
:中性化VWAP的变化decay_linear(..., 10.1466)
:变化的线性衰减加权Ts_Rank(..., 15.3012)
:衰减加权变化的时间序列排名- 第一个时间序列排名减去第二个时间序列排名
这个因子使用差值形式比较两个时间序列信号:
- 最低价流动性关系时间模式:分析最低价与短期流动性关系的时间序列特征
- 行业中性化VWAP动量时间模式:分析消除行业因素后的VWAP动量时间特征
- 信号差异:通过差值比较两个时间模式的相对强度
Alpha#89是一个时间序列差值因子。它通过比较最低价流动性关系与行业中性化VWAP动量的时间序列特征,识别两个维度信号的相对强度。当流动性关系时间模式强于动量时间模式时,给出看涨信号,平均持有期约5-10天。
Alpha 90
((rank((close - ts_max(close, 4.66719)))^Ts_Rank(correlation(IndNeutralize(adv40, IndClass.subindustry), low, 5.38375), 3.21856)) * -1)
核心步骤如下:
ts_max(close, 4.66719)
:过去4.66719天收盘价的最大值(close - ...)
:当前收盘价与短期历史最高价的差异rank(...)
:对差异进行横截面排名IndNeutralize(adv40, IndClass.subindustry)
:对40天平均交易量进行子行业中性化correlation(..., low, 5.38375)
:中性化交易量与最低价的相关性Ts_Rank(..., 3.21856)
:相关性的时间序列排名- 两个排名进行幂运算后取负值
这个因子使用幂运算结合价格相对位置和子行业中性化的流动性关系:
- 价格相对位置:分析收盘价相对于短期历史高点的位置
- 子行业中性化流动性关系时间模式:分析消除子行业因素后的流动性与价格关系
- 非线性组合:使用幂运算创造交互效应
- 反向操作:对组合信号采用反转策略
Alpha#90是一个子行业中性化的非线性反转因子。它通过幂运算将价格相对位置与子行业中性化的流动性关系结合,当两个信号都较强时预期回调。这种设计体现了对子行业因素的精细控制,平均持有期约3-7天。
Alpha 91
((Ts_Rank(decay_linear(decay_linear(correlation(IndNeutralize(close, IndClass.industry), volume, 9.74928), 16.398), 3.83219), 4.8667) - rank(decay_linear(correlation(vwap, adv30, 4.01303), 2.6809))) * -1)
核心步骤如下:
IndNeutralize(close, IndClass.industry)
:对收盘价进行行业中性化correlation(..., volume, 9.74928)
:中性化收盘价与交易量的相关性decay_linear(..., 16.398)
:相关性的第一次线性衰减加权decay_linear(..., 3.83219)
:第二次线性衰减加权Ts_Rank(..., 4.8667)
:双重衰减加权相关性的时间序列排名correlation(vwap, adv30, 4.01303)
:VWAP与30天平均交易量的相关性decay_linear(..., 2.6809)
:相关性的线性衰减加权rank(...)
:对衰减加权相关性进行横截面排名- 时间序列排名减去横截面排名后取负值
这个因子使用差值形式比较两种不同的价量关系:
- 行业中性化价量关系复杂时间模式:通过双重衰减加权和时间序列排名构建复杂信号
- 直接价量关系:VWAP与长期流动性的直接关系
- 信号差异:比较复杂时间模式与直接关系的相对强度
- 反向操作:对差异信号采用反转策略
Alpha#91是一个复杂的行业中性化差值因子。它通过比较行业中性化的复杂价量关系时间模式与直接价量关系,识别两个维度的相对强度。当复杂时间模式强于直接关系时,经过取负值后给出看跌信号,平均持有期约5-10天。
Alpha 92
min(Ts_Rank(decay_linear(((((high + low) / 2) + close) < (low + open)), 14.7221), 18.8683), Ts_Rank(decay_linear(correlation(rank(low), rank(adv30), 7.58555), 6.94024), 6.80584))
核心步骤如下:
((high + low) / 2) + close
:中点价格与收盘价之和(low + open)
:最低价与开盘价之和... < ...
:比较两个价格组合的大小关系(布尔值)decay_linear(..., 14.7221)
:布尔值的线性衰减加权Ts_Rank(..., 18.8683)
:衰减加权布尔值的时间序列排名rank(low), rank(adv30)
:最低价和30天平均交易量的横截面排名correlation(..., ..., 7.58555)
:两个排名的相关性decay_linear(..., 6.94024)
:相关性的线性衰减加权Ts_Rank(..., 6.80584)
:衰减加权相关性的时间序列排名- 取两个时间序列排名的最小值
这个因子使用最小值函数选择两个时间序列信号中的较弱者:
- 价格结构比较时间模式:分析价格结构比较结果的时间序列特征
- 排名价量关系时间模式:分析最低价与流动性排名关系的时间序列特征
- 保守选择:选择两个时间模式中较弱的一个
Alpha#92是一个保守的时间序列选择型因子。它通过比较价格结构和排名价量关系的时间序列特征,选择较弱的信号。这种设计体现了保守的投资理念和对时间模式的重视,平均持有期约5-10天。
Alpha 93
(Ts_Rank(decay_linear(correlation(IndNeutralize(vwap, IndClass.industry), adv81, 17.4193), 19.848), 7.54455) / rank(decay_linear(delta(((close * 0.524434) + (vwap * (1 - 0.524434))), 2.77377), 16.2664)))
核心步骤如下:
IndNeutralize(vwap, IndClass.industry)
:对VWAP进行行业中性化correlation(..., adv81, 17.4193)
:中性化VWAP与81天平均交易量的相关性decay_linear(..., 19.848)
:相关性的线性衰减加权Ts_Rank(..., 7.54455)
:衰减加权相关性的时间序列排名(close * 0.524434) + (vwap * (1 - 0.524434))
:收盘价与VWAP的加权组合delta(..., 2.77377)
:价格组合的变化decay_linear(..., 16.2664)
:变化的线性衰减加权rank(...)
:对衰减加权变化进行横截面排名- 时间序列排名除以横截面排名
这个因子使用比率形式比较两种不同的信号:
- 行业中性化流动性关系时间模式:分析消除行业因素后的VWAP与长期流动性关系的时间序列特征
- 价格组合动量:分析收盘价与VWAP组合的变化强度
- 信号比率:通过比率比较时间模式与动量的相对强度
Alpha#93是一个比率型行业中性化因子。它通过比率形式将行业中性化的流动性关系时间模式与价格组合动量结合,当时间模式强于动量时,因子值较高,可能预期继续上涨,平均持有期约5-10天。
Alpha 94
((rank((vwap - ts_min(vwap, 11.5783)))^Ts_Rank(correlation(Ts_Rank(vwap, 19.6462), Ts_Rank(adv60, 4.02992), 18.0926), 2.70756)) * -1)
核心步骤如下:
ts_min(vwap, 11.5783)
:过去11.5783天VWAP的最小值(vwap - ...)
:当前VWAP与历史最低VWAP的差异rank(...)
:对差异进行横截面排名Ts_Rank(vwap, 19.6462), Ts_Rank(adv60, 4.02992)
:VWAP和60天平均交易量的时间序列排名correlation(..., ..., 18.0926)
:两个时间序列排名的相关性Ts_Rank(..., 2.70756)
:相关性的时间序列排名- 两个排名进行幂运算后取负值
这个因子使用幂运算结合VWAP相对位置和时间序列价量关系:
- VWAP相对位置:分析VWAP相对于历史最低点的恢复程度
- 时间序列价量关系模式:分析VWAP与流动性的时间序列关系特征
- 非线性组合:使用幂运算创造交互效应
- 反向操作:对组合信号采用反转策略
Alpha#94是一个非线性反转因子。它通过幂运算将VWAP相对位置与时间序列价量关系结合,当两个信号都较强时预期回调。这种设计体现了对价格位置和时间模式的综合考虑,平均持有期约5-10天。
Alpha 95
(rank((open - ts_min(open, 12.4105))) < Ts_Rank((rank(correlation(sum(((high + low) / 2), 19.1351), sum(adv40, 19.1351), 12.8742))^5), 11.7584))
核心步骤如下:
ts_min(open, 12.4105)
:过去12.4105天开盘价的最小值(open - ...)
:当前开盘价与历史最低开盘价的差异rank(...)
:对差异进行横截面排名sum(((high + low) / 2), 19.1351)
:中点价格的累积值sum(adv40, 19.1351)
:40天平均交易量的累积值correlation(..., ..., 12.8742)
:两个累积值的相关性rank(...)
:对相关性进行横截面排名...^5
:排名的5次方Ts_Rank(..., 11.7584)
:5次方结果的时间序列排名- 比较开盘价恢复排名与复杂信号时间序列排名
这个因子比较价格恢复与复杂流动性关系信号:
- 开盘价恢复:分析开盘价相对于历史最低点的恢复程度
- 复杂流动性关系时间模式:通过5次方放大和时间序列排名构建复杂信号
- 信号比较:当价格恢复弱于复杂信号时,给出看涨信号
Alpha#95是一个比较价格恢复与复杂流动性关系的因子。它通过分析开盘价恢复程度,对比经过非线性变换的流动性关系时间模式,寻找投资机会。当价格恢复相对较弱但流动性关系复杂信号较强时,预期上涨,平均持有期约5-10天。
Alpha 96
(max(Ts_Rank(decay_linear(correlation(rank(vwap), rank(volume), 3.83878), 4.16783), 8.38151), Ts_Rank(decay_linear(Ts_ArgMax(correlation(Ts_Rank(close, 7.45404), Ts_Rank(adv60, 4.13242), 3.65459), 12.6556), 14.0365), 13.4143)) * -1)
核心步骤如下:
rank(vwap), rank(volume)
:VWAP和交易量的横截面排名correlation(..., ..., 3.83878)
:两个排名的相关性decay_linear(..., 4.16783)
:相关性的线性衰减加权Ts_Rank(..., 8.38151)
:衰减加权相关性的时间序列排名Ts_Rank(close, 7.45404), Ts_Rank(adv60, 4.13242)
:收盘价和60天平均交易量的时间序列排名correlation(..., ..., 3.65459)
:两个时间序列排名的相关性Ts_ArgMax(..., 12.6556)
:相关性最大值出现的时间位置decay_linear(..., 14.0365)
:时间位置的线性衰减加权Ts_Rank(..., 13.4143)
:衰减加权时间位置的时间序列排名- 取两个时间序列排名的最大值后取负值
这个因子使用最大值函数选择两个复杂时间序列信号中的较强者:
- 排名价量关系时间模式:分析VWAP与交易量排名关系的时间序列特征
- 相关性峰值时间模式:分析收盘价与流动性相关性峰值出现时间的模式
- 信号选择:选择两个复杂时间模式中较强的一个
- 反向操作:对选择的信号采用反转策略
Alpha#96是一个极其复杂的时间序列选择型反转因子。它在两个高度复杂的时间序列信号中选择较强者,然后采用反转策略。这种设计表明它可能针对非常特殊的时间模式进行了优化,平均持有期约5-10天。
Alpha 97
((rank(decay_linear(delta(IndNeutralize(((low * 0.721001) + (vwap * (1 - 0.721001))), IndClass.industry), 3.3705), 20.4523)) - Ts_Rank(decay_linear(Ts_Rank(correlation(Ts_Rank(low, 7.87871), Ts_Rank(adv60, 17.255), 4.97547), 18.5925), 15.7152), 6.71659)) * -1)
核心步骤如下:
(low * 0.721001) + (vwap * (1 - 0.721001))
:最低价与VWAP的加权组合IndNeutralize(..., IndClass.industry)
:对价格组合进行行业中性化delta(..., 3.3705)
:中性化价格组合的变化decay_linear(..., 20.4523)
:变化的线性衰减加权rank(...)
:对衰减加权变化进行横截面排名Ts_Rank(low, 7.87871), Ts_Rank(adv60, 17.255)
:最低价和60天平均交易量的时间序列排名correlation(..., ..., 4.97547)
:两个时间序列排名的相关性Ts_Rank(..., 18.5925)
:相关性的时间序列排名decay_linear(..., 15.7152)
:时间序列排名的线性衰减加权Ts_Rank(..., 6.71659)
:衰减加权结果的时间序列排名- 横截面排名减去时间序列排名后取负值
这个因子使用差值形式比较两个复杂信号:
- 行业中性化价格组合动量:分析消除行业因素后的价格组合变化
- 复杂时间序列价量关系模式:通过多层时间序列变换构建复杂信号
- 信号差异:比较动量信号与复杂时间模式的相对强度
- 反向操作:对差异信号采用反转策略
Alpha#97是一个极其复杂的行业中性化差值因子。它通过比较行业中性化的价格组合动量与高度复杂的时间序列价量关系模式,识别两个维度的相对强度。当动量强于复杂时间模式时,经过取负值后给出看跌信号,平均持有期约5-10天。
Alpha 98
(rank(decay_linear(correlation(vwap, sum(adv5, 26.4719), 4.58418), 7.18088)) - rank(decay_linear(Ts_Rank(Ts_ArgMin(correlation(rank(open), rank(adv15), 20.8187), 8.62571), 6.95668), 8.07206)))
核心步骤如下:
sum(adv5, 26.4719)
:5天平均交易量的累积值correlation(vwap, ..., 4.58418)
:VWAP与累积交易量的相关性decay_linear(..., 7.18088)
:相关性的线性衰减加权rank(...)
:对衰减加权相关性进行横截面排名rank(open), rank(adv15)
:开盘价和15天平均交易量的横截面排名correlation(..., ..., 20.8187)
:两个排名的相关性Ts_ArgMin(..., 8.62571)
:相关性最小值出现的时间位置Ts_Rank(..., 6.95668)
:时间位置的时间序列排名decay_linear(..., 8.07206)
:时间序列排名的线性衰减加权rank(...)
:对衰减加权结果进行横截面排名- 第一个排名减去第二个排名
这个因子使用差值形式比较两种不同的信号:
- VWAP流动性关系:分析VWAP与累积短期流动性的关系
- 排名价量关系最弱时间模式:分析开盘价与流动性排名关系最弱时点的时间模式
- 信号差异:比较直接关系与最弱时间模式的相对强度
Alpha#98是一个差值型因子,比较VWAP流动性关系与排名价量关系的最弱时间模式。它通过分析直接价量关系与最弱关系时点的时间模式,识别两个维度的相对强度。当直接关系强于最弱时间模式时,给出看涨信号,平均持有期约5-10天。
Alpha 99
((rank(correlation(sum(((high + low) / 2), 19.8975), sum(adv60, 19.8975), 8.8136)) < rank(correlation(low, volume, 6.28259))) * -1)
核心步骤如下:
sum(((high + low) / 2), 19.8975)
:中点价格的累积值sum(adv60, 19.8975)
:60天平均交易量的累积值correlation(..., ..., 8.8136)
:两个累积值的相关性rank(...)
:对相关性进行横截面排名correlation(low, volume, 6.28259)
:最低价与交易量的相关性rank(...)
:对相关性进行横截面排名- 比较两个相关性排名后取负值
这个因子比较两种不同的价量关系:
- 累积价量关系:中点价格与长期流动性的累积关系
- 直接价量关系:最低价与交易量的直接关系
- 关系比较:当累积关系弱于直接关系时,给出看涨信号
Alpha#99是一个简洁的价量关系比较因子。它通过比较累积价量关系与直接价量关系的强度,识别市场机会。当累积关系相对较弱但直接关系较强时,预期上涨,平均持有期约3-7天。
Alpha 100
(0 - (1 * (((1.5 * scale(indneutralize(indneutralize(rank(((((close - low) - (high - close)) / (high - low)) * volume)), IndClass.subindustry), IndClass.subindustry))) - scale(indneutralize((correlation(close, rank(adv20), 5) - rank(ts_argmin(close, 30))), IndClass.subindustry))) * (volume / adv20))))
核心步骤如下:
((close - low) - (high - close)) / (high - low)
:收盘价在日内区间的相对位置... * volume
:乘以交易量rank(...)
:横截面排名indneutralize(..., IndClass.subindustry)
:子行业中性化(进行两次)scale(...)
:缩放标准化1.5 * ...
:乘以1.5correlation(close, rank(adv20), 5)
:收盘价与平均交易量排名的相关性ts_argmin(close, 30)
:过去30天收盘价最小值的时间位置rank(...)
:对时间位置进行横截面排名... - ...
:相关性减去时间位置排名indneutralize(..., IndClass.subindustry)
:子行业中性化scale(...)
:缩放标准化- 第一部分减去第二部分
(volume / adv20)
:交易量比率- 乘以交易量比率后取负值
这个因子是一个极其复杂的子行业中性化因子:
- 日内位置与交易量复合信号:分析收盘价在日内区间的位置,结合交易量,进行双重子行业中性化
- 价量关系与时间信号复合:分析收盘价与流动性关系,减去时间位置信号,进行子行业中性化
- 信号差异:比较两个复杂信号的相对强度
- 交易量权重:使用交易量比率进行权重调整
Alpha#100是Alpha101中最复杂的因子之一,使用多重子行业中性化和复杂的信号组合。它通过比较日内位置交易量信号与价量关系时间信号,结合交易量权重,创造高度精细的投资信号。这种设计表明它是经过大量优化的高级因子,平均持有期约3-7天。
Alpha 101
((close - open) / ((high - low) + .001))
核心步骤如下:
1、 (close - open)
:日内收益(收盘价减开盘价)
3、 (high - low)
:日内价格区间
3、 ... + .001
:加上小常数避免除零
4、... / ...
:日内收益除以日内区间
当股票日内收益相对于日内波动较大时,可能预示短期动量延续。
Alpha#101是一个极其简洁的日内动量因子,与前面复杂的因子形成鲜明对比。它通过简单的日内收益与波动比率,衡量日内动量的相对强度。这种设计表明有时最简单的方法可能最有效,体现了"大道至简"的投资哲学,平均持有期约1-2天。
三、 总结
至此,我们已完成对 Alpha 101 全体系 101 个因子的深度解构,从价格趋势、量价关系、多周期共振等维度揭示了量化因子的构建逻辑。每一个因子式背后,都凝结着对市场微观结构的洞察, 无论是通过截面或者时序动态分析,均展现了量化策略对市场规律的数学化表达。
下篇将总结 Alpha101 全体系 101 个因子的合成逻辑与方法论,涵盖因子分类及多因子融合等实战框架,期待与大家共同探讨因子应用中的关键问题。