首页> 基金 > > 正文

世界观速讯丨解锁大厂量化交易的秘籍:选股因子分析(八)

2023-06-21 11:29:10来源:个人图书馆-常熟老李jlr5mr

今天,我们来继续学习量化选股因子alpha101,alpha101是一组由WorldQuant发表的论文《101 Formulaic Alphas》中给出的101个基于行情数据的因子,这些因子可以结合机器学习来进行量化选股。WorldQuant是一家全球量化资产管理公司,该公司被认为是全球量化界的黄埔军校,培养出了一批顶级的Quant人才。根据资料显示这里面还有不少因子仍然有效,我们先来看看函数定义,然后分析一下公式含义,在后续的系列文章中我们将自己跑一下代码分析这些因子在A股的有效性。

系列文章1:解锁大厂量化交易秘诀:选股因子分析(一)

系列文章2:解锁大厂量化交易秘诀:选股因子分析(二)


(资料图)

系列文章3:解锁大厂量化交易秘诀:选股因子分析(三)

系列文章4:解锁大厂量化交易的秘籍:选股因子分析(四)

系列文章5:解锁大厂量化交易的秘籍:选股因子分析(五)

系列文章6:解锁大厂量化交易的秘籍:选股因子分析(六)

系列文章7:解锁大厂量化交易的秘籍:选股因子分析(七)

Alpha#71max(ts_rank(decay_linear(correlation(ts_rank($close, 3.43976), ts_rank(mean($volume,180),12.0647), 18.0175), 4.20501), 15.6948), ts_rank(decay_linear((rank((($low + $open) - ($vwap +$vwap)))^2), 16.4662), 4.4388))

解析:

$close - 这是股票当日的收盘价

mean($volume,180) - 这是股票过去180天的平均成交量

ts_rank($close, 3.43976) - 这是股票收盘价在过去3.43976天内的排名

ts_rank(mean($volume,180),12.0647) - 这是股票平均成交量在过去12.0647天内的排名

correlation(ts_rank($close, 3.43976), ts_rank(mean($volume,180),12.0647), 18.0175) - 这是在过去18.0175天内,收盘价排名和平均成交量排名之间的时间序列相关性

decay_linear(correlation(ts_rank($close, 3.43976), ts_rank(mean($volume,180),12.0647), 18.0175), 4.20501) - 这是在过去4.20501天内,收盘价排名和平均成交量排名之间的时间序列相关性的加权移动平均值,权重按线性递减

ts_rank(decay_linear(correlation(ts_rank($close, 3.43976), ts_rank(mean($volume,180),12.0647), 18.0175), 4.20501), 15.6948) - 这是在过去15.6948天内,收盘价排名和平均成交量排名之间的时间序列相关性加权移动平均值的排名

$low - 这是股票当日的最低价

$open - 这是股票当日的开盘价

$vwap - 这是股票当日的加权平均价

rank((($low + $open) - ($vwap +$vwap)))^2 - 这是((当日最低价+开盘价)-(加权平均价+加权平均价))的排名平方

decay_linear((rank((($low + $open) - ($vwap +$vwap)))^2), 16.4662) - 这是在过去16.4662天内((当日最低价+开盘价)-(加权平均价+加权平均价))的排名平方的加权移动平均值,权重按线性递减

ts_rank(decay_linear((rank((($low + $open) - ($vwap +$vwap)))^2), 16.4662), 4.4388) - 这是在过去4.4388天内((当日最低价+开盘价)-(加权平均价+加权平均价))的排名平方的加权移动平均值的排名

max(ts_rank(decay_linear(correlation(ts_rank($close, 3.43976), ts_rank(mean($volume,180),12.0647), 18.0175), 4.20501), 15.6948), ts_rank(decay_linear((rank((($low + $open) - ($vwap +$vwap)))^2), 16.4662), 4.4388)) - 这是上述两个排名的最大值

总体而言,这个公式用了许多不同的技术和数据点,包括移动平均线、时间序列相关性、排名等等。

Alpha#72
(rank(decay_linear(correlation((($high + $low) / 2), mean($volume,40), 8.93345), 10.1519)) /rank(decay_linear(correlation(ts_rank($vwap, 3.72469), ts_rank($volume, 18.5188), 6.86671),2.95011)))

解析:

$high - 这是股票当日的最高价

$low - 这是股票当日的最低价

mean($volume,40) - 这是股票过去40天的平均成交量

($high + $low) / 2 - 这是股票当日的平均价

correlation((($high + $low) / 2), mean($volume,40), 8.93345) - 这是在过去8.93345天内,股票平均价和平均成交量之间的时间序列相关性

decay_linear(correlation((($high + $low) / 2), mean($volume,40), 8.93345), 10.1519) - 这是在过去10.1519天内,股票平均价和平均成交量之间的时间序列相关性的加权移动平均值,权重按线性递减

ts_rank($vwap, 3.72469) - 这是股票加权平均价在过去3.72469天内的排名

ts_rank($volume, 18.5188) - 这是股票成交量在过去18.5188天内的排名

correlation(ts_rank($vwap, 3.72469), ts_rank($volume, 18.5188), 6.86671) - 这是在过去6.86671天内,加权平均价排名和成交量排名之间的时间序列相关性

decay_linear(correlation(ts_rank($vwap, 3.72469), ts_rank($volume, 18.5188), 6.86671),2.95011) - 这是在过去2.95011天内,加权平均价排名和成交量排名之间的时间序列相关性的加权移动平均值,权重按线性递减

rank(decay_linear(correlation((($high + $low) / 2), mean($volume,40), 8.93345), 10.1519)) - 这是在过去10.1519天内,股票平均价和平均成交量之间的时间序列相关性的加权移动平均值的排名

rank(decay_linear(correlation(ts_rank($vwap, 3.72469), ts_rank($volume, 18.5188), 6.86671),2.95011)) - 这是在过去2.95011天内,加权平均价排名和成交量排名之间的时间序列相关性的加权移动平均值的排名

(rank(decay_linear(correlation((($high + $low) / 2), mean($volume,40), 8.93345), 10.1519)) /rank(decay_linear(correlation(ts_rank($vwap, 3.72469), ts_rank($volume, 18.5188), 6.86671),2.95011))) - 这是两个排名的比值

总的来说,这个公式通过综合考虑不同的量化因子来预测股票价格变化,其中包括移动平均线、时间序列相关性和排名等等。

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)

解析:

$vwap 表示成交量加权平均价,delta($vwap, 4.72775) 表示 $vwap 在 4.72775 天前和今天的差值。

decay_linear(delta($vwap, 4.72775), 2.91864) 表示对 $vwap 在 4.72775 天前和今天的差值进行加权移动平均,权重呈线性递减,最近一天的权重是 1,最远的一天的权重是 1/2.91864。

rank(decay_linear(delta($vwap, 4.72775), 2.91864)) 表示将加权移动平均的结果在所有股票中排名。

$open 和 $low 分别表示开盘价和最低价,($open * 0.147155) + ($low * (1 - 0.147155)) 表示将开盘价和最低价按比例组合起来。

delta((($open * 0.147155) + ($low * (1 - 0.147155))), 2.03608) 表示上面组合后的价格在 2.03608 天前和今天的差值。

(($open *0.147155) + ($low * (1 - 0.147155))) 表示上面的价格。

((delta((($open * 0.147155) + ($low * (1 - 0.147155))), 2.03608) / (($open *0.147155) + ($low * (1 - 0.147155)))) * -1) 表示将组合后的价格在 2.03608 天前和今天的变化率乘以 -1。

decay_linear(((delta((($open * 0.147155) + ($low * (1 - 0.147155))), 2.03608) / (($open *0.147155) + ($low * (1 - 0.147155)))) * -1), 3.33829) 表示对上面的变化率进行加权移动平均,权重呈线性递减,最近一天的权重是 1,最远的一天的权重是 1/3.33829。

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) 表示将加权移动平均的结果在过去 16.7411 天中排名。

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)) 表示将步骤 3 和 9 中的排名结果取最大值。

(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) 表示将最大值取负数。

综上所述,这个量化因子的思路是比较复杂的,它综合了成交量加权平均价和开盘价、最低价的组合,并对它们的变化率进行加权移动平均,然后取排名最高的结果并乘以 -1。

Alpha#74
((rank(correlation($close, sum(mean($volume,30), 37.4843), 15.1365)) 

解析:

$close 表示收盘价,mean($volume,30) 表示过去 30 天的平均成交量,sum(mean($volume,30), 37.4843) 表示过去 30 天到 37.4843 天的成交量总和。

correlation($close, sum(mean($volume,30), 37.4843), 15.1365) 表示在过去 15.1365 天内,收盘价和成交量总和之间的时间序列相关系数。

(($high * 0.0261661) + ($vwap * (1 - 0.0261661))) 表示将最高价和成交量加权平均价按照一定比例组合起来。

rank((($high * 0.0261661) + ($vwap * (1 - 0.0261661)))) 表示将上面的组合结果排名。

rank($volume) 表示将成交量排名。

correlation(rank((($high * 0.0261661) + ($vwap * (1 - 0.0261661)))), rank($volume), 11.4791) 表示在过去 11.4791 天内,上面的两个排名序列之间的时间序列相关系数。

rank(correlation($close, sum(mean($volume,30), 37.4843), 15.1365))

综上所述,这个量化因子的思路是将收盘价和成交量之间的时间序列相关系数和最高价、成交量加权平均价之间的时间序列相关系数进行排名,并判断它们的排名关系,最后将结果取负数。

Alpha#75(rank(correlation($vwap, $volume, 4.24304)) < rank(correlation(rank($low), rank(mean($volume,50)),12.4413)))

解析:

$vwap 表示成交量加权平均价,$volume 表示成交量。

correlation($vwap, $volume, 4.24304) 表示在过去 4.24304 天内,成交量加权平均价和成交量之间的时间序列相关系数。

rank(correlation($vwap, $volume, 4.24304)) 表示将上面的相关系数结果排名。

$low 表示最低价,mean($volume,50) 表示过去 50 天的平均成交量。

rank($low) 表示将最低价排名。

rank(mean($volume,50)) 表示将过去 50 天的平均成交量排名。

correlation(rank($low), rank(mean($volume,50)),12.4413) 表示在过去 12.4413 天内,最低价的排名序列和平均成交量的排名序列之间的时间序列相关系数。

rank(correlation(rank($low), rank(mean($volume,50)),12.4413)) 表示将上面的相关系数结果排名。

rank(correlation($vwap, $volume, 4.24304)) < rank(correlation(rank($low), rank(mean($volume,50)),12.4413)) 表示将步骤 3 和步骤 8 中的排名结果进行比较,判断排名是否小于。

综上所述,这个量化因子的思路是比较成交量加权平均价和成交量之间的时间序列相关系数和最低价和平均成交量的排名序列之间的时间序列相关系数,并判断它们的排名关系。

Alpha#76
(max(rank(decay_linear(delta($vwap, 1.24383), 11.8259)),ts_rank(decay_linear(ts_rank(correlation(indneutralize($low, indclass.sector), mean($volume,81),8.14941), 19.569), 17.1543), 19.383)) * -1)

解析:

$vwap 表示成交量加权平均价。

delta($vwap, 1.24383) 表示成交量加权平均价在过去 1.24383 天内的一阶差分。

decay_linear(delta($vwap, 1.24383), 11.8259) 表示对上面的一阶差分序列进行加权平均,权重为过去 11.8259 天的线性衰减权重,使得权重加总为 1。

rank(decay_linear(delta($vwap, 1.24383), 11.8259)) 表示对上述加权平均结果进行排名。

$low 表示最低价,mean($volume,81) 表示过去 81 天的平均成交量,indclass.sector 表示行业分类。

indneutralize($low, indclass.sector) 表示将最低价在行业内进行中性化处理,即对每个行业内的最低价进行平均,然后减去该平均值。

correlation(indneutralize($low, indclass.sector), mean($volume,81),8.14941) 表示在过去 8.14941 天内,最低价和成交量的时间序列相关系数,其中最低价经过行业内中性化处理。

ts_rank(correlation(indneutralize($low, indclass.sector), mean($volume,81),8.14941), 19.569) 表示对上面的相关系数序列进行排名,时间窗口为过去 19.569 天。

decay_linear(ts_rank(correlation(indneutralize($low, indclass.sector), mean($volume,81),8.14941), 19.569), 17.1543) 表示对上述排名结果进行加权平均,权重为过去 17.1543 天的线性衰减权重,使得权重加总为 1。

ts_rank(decay_linear(ts_rank(correlation(indneutralize($low, indclass.sector), mean($volume,81),8.14941), 19.569), 17.1543), 19.383) 表示对上述加权平均结果进行时间序列排名,时间窗口为过去 19.383 天。

max(rank(decay_linear(delta($vwap, 1.24383), 11.8259)),ts_rank(decay_linear(ts_rank(correlation(indneutralize($low, indclass.sector), mean($volume,81),8.14941), 19.569), 17.1543), 19.383)) 表示将步骤 4 和步骤 10 中的排名结果进行比较,取其中的最大值。

max(rank(decay_linear(delta($vwap, 1.24383), 11.8259)),ts_rank(decay_linear(ts_rank(correlation(indneutralize($low, indclass.sector), mean($volume,81),8.14941), 19.569), 17.1543), 19.383)) * -1 表示将上述结果取负数。

综上所述,这个量化因子考虑了成交量加权平均价和最低价在行业内中性化后与成交量之间的时间序列相关系数,在此基础上,使用了加权平均和排名等方法进行处理,最后取最大值并取负数。

Alpha#77min(rank(decay_linear((((($high + $low) / 2) + $high) - ($vwap + $high)), 20.0451)),rank(decay_linear(correlation((($high + $low) / 2), mean($volume,40), 3.1614), 5.64125)))

解析:

$high 表示最高价,$low 表示最低价,$vwap 表示成交量加权平均价。

(($high + $low) / 2) 表示最高价和最低价的平均值,((($high + $low) / 2) + $high) 表示最高价和最低价的平均值加上最高价,(($high + $low) / 2) + $high) - ($vwap + $high) 表示将这个值减去成交量加权平均价加上最高价的值,即 (((($high + $low) / 2) + $high) - ($vwap + $high))。

decay_linear((((($high + $low) / 2) + $high) - ($vwap + $high)), 20.0451) 表示将上述值进行衰减平均,时间窗口为过去 20.0451 天,使得权重加总为 1。

rank(decay_linear((((($high + $low) / 2) + $high) - ($vwap + $high)), 20.0451))) 表示对上述平均结果进行排名。

mean($volume,40) 表示过去 40 天的平均成交量。

correlation((($high + $low) / 2), mean($volume,40), 3.1614) 表示在过去 3.1614 天内,最高价和最低价的平均值和成交量的时间序列相关系数。

decay_linear(correlation((($high + $low) / 2), mean($volume,40), 3.1614), 5.64125) 表示对上述相关系数进行衰减平均,时间窗口为过去 5.64125 天,使得权重加总为 1。

rank(decay_linear(correlation((($high + $low) / 2), mean($volume,40), 3.1614), 5.64125))) 表示对上述平均结果进行排名。

min(rank(decay_linear((((($high + $low) / 2) + $high) - ($vwap + $high)), 20.0451)),rank(decay_linear(correlation((($high + $low) / 2), mean($volume,40), 3.1614), 5.64125))) 表示将步骤 4 和步骤 8 中的排名结果进行比较,取其中的最小值。

综上所述,这个量化因子主要考虑了最高价和最低价的平均值、成交量加权平均价以及成交量之间的关系。使用了衰减平均和排名等方法进行处理,并最终取其中的最小值。

Alpha#78
(rank(correlation(sum((($low * 0.352233) + ($vwap * (1 - 0.352233))), 19.7428),sum(mean($volume,40), 19.7428), 6.83313))^rank(correlation(rank($vwap), rank($volume), 5.77492)))

解析:

$low 表示最低价,$vwap 表示成交量加权平均价,mean($volume,40) 表示过去 40 天的平均成交量。

(($low * 0.352233) + ($vwap * (1 - 0.352233))) 表示将最低价和成交量加权平均价进行加权平均,其中最低价的权重为 0.352233,成交量加权平均价的权重为 1-0.352233。

sum((($low * 0.352233) + ($vwap * (1 - 0.352233))), 19.7428) 表示对上述加权平均值在过去 19.7428 天内进行累加求和。

sum(mean($volume,40), 19.7428) 表示对过去 40 天的平均成交量在过去 19.7428 天内进行累加求和。

correlation(sum((($low * 0.352233) + ($vwap * (1 - 0.352233))), 19.7428),sum(mean($volume,40), 19.7428), 6.83313) 表示对上述两个序列在过去 6.83313 天内的时间序列相关系数。

rank(correlation(sum((($low * 0.352233) + ($vwap * (1 - 0.352233))), 19.7428),sum(mean($volume,40), 19.7428), 6.83313)) 表示对上述时间序列相关系数结果进行排名。

rank($vwap) 表示对成交量加权平均价进行排名。

rank($volume) 表示对成交量进行排名。

correlation(rank($vwap), rank($volume), 5.77492) 表示对上述两个排名结果在过去 5.77492 天内的时间序列相关系数。

rank(correlation(rank($vwap), rank($volume), 5.77492)) 表示对上述时间序列相关系数结果进行排名。

(rank(correlation(sum((($low * 0.352233) + ($vwap * (1 - 0.352233))), 19.7428),sum(mean($volume,40), 19.7428), 6.83313))^rank(correlation(rank($vwap), rank($volume), 5.77492))) 表示将步骤 6 和步骤 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(mean($volume,15)0,9.18637), 14.6644)))

解析:

$close 表示收盘价,$open 表示开盘价,indclass.sector 表示股票所属的行业。

(($close * 0.60733) + ($open * (1 - 0.60733))) 表示将收盘价和开盘价进行加权平均,其中收盘价的权重为 0.60733,开盘价的权重为 1-0.60733。

(($close * 0.60733) + ($open * (1 - 0.60733))) 在行业内进行横截面去中心化。

indneutralize((($close * 0.60733) + ($open * (1 - 0.60733))),indclass.sector) 表示对上述去中心化结果进行行业内中性化处理。

delta(indneutralize((($close * 0.60733) + ($open * (1 - 0.60733))),indclass.sector), 1.23438) 表示对上述中性化结果进行一天的差分计算。

ts_rank($vwap, 3.60973) 表示过去 3.60973 天内成交量加权平均价的时间序列排名。

mean($volume,15) 表示过去 15 天的平均成交量。

ts_rank(mean($volume,15),9.18637) 表示过去 9.18637 天内平均成交量的时间序列排名。

correlation(ts_rank($vwap, 3.60973), ts_rank(mean($volume,15),9.18637), 14.6644) 表示对上述两个序列在过去 14.6644 天内的时间序列相关系数。

rank(correlation(ts_rank($vwap, 3.60973), ts_rank(mean($volume,15),9.18637), 14.6644)) 表示对上述时间序列相关系数结果进行排名。

(rank(delta(indneutralize((($close * 0.60733) + ($open * (1 - 0.60733))),indclass.sector), 1.23438)) < rank(correlation(ts_rank($vwap, 3.60973), ts_rank(mean($volume,15),9.18637), 14.6644))) 表示将步骤 5 和步骤 10 中的排名结果进行比较,取其中较小的一项。

综上所述,这个量化因子主要考虑了收盘价、开盘价、成交量加权平均价、平均成交量和股票所属行业之间的关系。使用了加权平均、去中心化、中性化、差分、时间序列排名和时间序列相关系数等方法进行处理。

Alpha#80
((rank(sign(delta(indneutralize((($open * 0.868128) + ($high * (1 - 0.868128))),indclass.industry), 4.04545)))^ts_rank(correlation($high, mean($volume,10), 5.11456), 5.53756)) * -1)

解析:

$open 表示开盘价,$high 表示最高价,indclass.industry 表示股票所属的行业。

(($open * 0.868128) + ($high * (1 - 0.868128))) 表示将开盘价和最高价进行加权平均,其中开盘价的权重为 0.868128,最高价的权重为 1-0.868128。

(($open * 0.868128) + ($high * (1 - 0.868128))) 在行业内进行横截面去中心化。

indneutralize((($open * 0.868128) + ($high * (1 - 0.868128))),indclass.industry) 表示对上述去中心化结果进行行业内中性化处理。

delta(indneutralize((($open * 0.868128) + ($high * (1 - 0.868128))),indclass.industry), 4.04545) 表示对上述中性化结果进行四天的差分计算。

sign(delta(indneutralize((($open * 0.868128) + ($high * (1 - 0.868128))),indclass.industry), 4.04545)) 表示对上述四天差分结果进行符号函数(即正负号)计算。

rank(sign(delta(indneutralize((($open * 0.868128) + ($high * (1 - 0.868128))),indclass.industry), 4.04545))) 表示对上述符号函数结果进行排名。

$high 表示最高价,mean($volume,10) 表示过去 10 天的平均成交量。

correlation($high, mean($volume,10), 5.11456) 表示对上述两个序列在过去 5.11456 天内的时间序列相关系数。

ts_rank(correlation($high, mean($volume,10), 5.11456), 5.53756) 表示上述时间序列相关系数结果在过去 5.53756 天内的时间序列排名。

(rank(sign(delta(indneutralize((($open * 0.868128) + ($high * (1 - 0.868128))),indclass.industry), 4.04545)))^ts_rank(correlation($high, mean($volume,10), 5.11456), 5.53756)) 表示将步骤 7 和步骤 10 中的排名结果进行幂运算。

(rank(sign(delta(indneutralize((($open * 0.868128) + ($high * (1 - 0.868128))),indclass.industry), 4.04545)))^ts_rank(correlation($high, mean($volume,10), 5.11456), 5.53756)) * -1 表示将步骤 11 中的结果乘以 -1。

综上所述,这个量化因子主要考虑了开盘价、最高价、平均成交量和股票所属行业之间的关系。使用了加权平均、去中心化、中性化、差分、符号函数、时间序列相关系数、时间序列排名和幂运算等方法进行处理。

TODO

标签:

上一篇:空心阴极灯是什么光源(空心阴极灯)
下一篇:最后一页