Workflow
量价指纹模型
icon
搜索文档
量化专题报告:“机器学习”选股模型系列研究(一):量价指纹模型的构建与应用初探
国盛证券· 2026-01-16 21:34
量化模型与构建方式 1. 量价指纹生成模型 * **模型名称**:量价指纹生成模型[1][8] * **模型构建思路**:借鉴大语言模型的语义理解思想,将市场分钟级交易数据视为一种特殊“语言”,通过自监督学习框架,迫使模型理解日内量价行为中蕴含的动态语义与因果结构,最终生成一个低维、高信息密度的日度语义表征向量(即“量价指纹”)[1][8][9]。 * **模型具体构建过程**: 1. **输入数据**:每只股票每日的分钟级特征序列 $X \in \mathbb{R}^{T \times D}$,其中 $T=237$(交易分钟数),$D=32$(特征维度,包括4维价格特征和28维交易特征)[16]。 2. **特征预处理**: * **价格特征标准化**:除价格位置外,其余价格特征用当日开盘价进行标准化。$$ \tilde{p}_{t,d} = \frac{p_{t,d}}{p_{\mathrm{open}}} - 1 $$[16] * **交易特征标准化**:将每分钟特征值除以该特征过去20日所有分钟数值之和的均值。$$ {\tilde{f}}_{t,d} = {\frac{f_{t,d}}{S_{d}}}, \quad S_{d} = {\frac{1}{N_{\mathrm{hist}}}} \sum_{i=1}^{N_{\mathrm{hist}}} \sum_{t=1}^{T} f_{t,d}^{(i)} $$[17] 3. **模型架构**:采用编码器-双分支解码器架构的因果Transformer模型[26]。 * **固定正交投影层**:将输入 $X$ 投影到隐藏维度 $d_{\mathrm{model}}=128$,投影权重 $W_p$ 正交初始化并永久冻结。$$ H^{(0)} = X W_{p}, \quad W_{p}^{T}W_{p}=I $$[27][28] * **因果Transformer编码器**:共4层($L=4$),每层包含带因果掩码的多头自注意力机制和前馈网络[30][33]。 * 多头注意力($h=4$头):$$ \mathrm{MultiHead}(Q,K,V) = \mathrm{Concat}(\mathrm{head}_{1}, \mathrm{head}_{2}, \ldots, \mathrm{head}_{h}) W_{O} $$ $$ \mathrm{head}_{i} = \mathrm{softmax}\left( \frac{Q_{i}K_{i}^{T}}{\sqrt{d_{k}}} + M \right) V_{i} $$ 其中因果掩码矩阵 $M$ 确保只能关注过去信息[30][31]。 * 前馈网络:$$ \mathrm{FFN}(x) = \mathrm{GELU}(xW_1 + b_1)W_2 + b_2 $$[33] * **双分支输出**: * **日度指纹生成分支**:提取编码器最后一层最后一个时间步的输出作为128维日度指纹向量 $e$。$$ e = H_{:,T}^{(L)} \in \mathbb{R}^{B \times d_{\mathrm{model}}} $$[35] * **序列重建分支**:对编码器输出进行层归一化后,通过线性层重建原始输入序列 $\widehat{X}$[37]。 4. **损失函数设计**:采用双任务自监督学习损失与防坍缩正则项相结合的总损失函数[42][47]。 * **前向损失(价格特征因果预测)**:$$ {\mathcal{L}}_{\mathrm{forward}} = {\frac{1}{N_{forward}}} \sum_{b=1}^{B} \sum_{t=1}^{T} \sum_{k=1}^{D_{r}} M_{f}[b,t,k] \cdot {\frac{(r_{b,t,k} - {\hat{r}}_{b,t,k})^{2}}{\sigma_{k}^{2}}} $$[42] * **后向损失(交易特征重建)**:$$ {\mathcal{L}}_{\mathrm{backward}} = {\frac{1}{N_{backward}}} \sum_{b=1}^{B} \sum_{t=1}^{T} \sum_{k=1}^{D_{f}} M_{b}[b,t,k] \cdot {\frac{(x_{b,t,k} - {\hat{x}}_{b,t,k})^{2}}{\sigma_{k}^{2}}} $$[42] * **防坍缩正则化**: * **多样性损失**:鼓励嵌入向量在特征空间中分散。$$ {\mathcal{L}}_{\mathrm{diversity}} = \lambda_{d} \cdot \mathbb{I}(\sigma_{e} < 0.1) \cdot (-\mathrm{log}(\sigma_{e} + \epsilon)) $$[44] * **正交性约束**:防止特征维度间冗余。$$ \mathcal{L}_{\mathrm{orthogonality}} = \lambda_{o} \cdot \parallel C - I \parallel_{F} $$[45] * **均匀性损失**:避免嵌入向量过度相似。$$ \mathcal{L}_{\mathrm{uniformity}} = \lambda_{u} \cdot \mathbb{I}(\bar{s} > \tau) \cdot \bar{s} $$[46] * **总损失**:$$ {\mathcal{L}}_{\mathrm{total}} = \lambda_{f}{\mathcal{L}}_{\mathrm{forward}} + \lambda_{b}{\mathcal{L}}_{\mathrm{backward}} + {\mathcal{L}}_{\mathrm{diversity}} + {\mathcal{L}}_{\mathrm{orthogonality}} + {\mathcal{L}}_{\mathrm{uniformity}} $$[47] 5. **训练细节**:采用滚动训练框架,每年年初使用过去三年的数据对模型进行微调,以维持嵌入空间的连续性[48]。具体参数如batch_size=512,学习率1e-4,使用Adam优化器等[49]。 2. 单流GRU预测模型 (模型1与模型2) * **模型名称**:单流GRU预测模型[51] * **模型构建思路**:使用过去20个交易日的日频特征(基础价量特征+量价因子或量价指纹),通过双层GRU网络捕捉时序依赖,预测股票未来5日的收益率,以生成选股因子[51][52]。 * **模型具体构建过程**: 1. **输入特征**: * **模型1(量价因子)**:过去20个交易日的每日高开低收、成交量、成交额(共6个基础特征)以及137个量价因子[51][52]。 * **模型2(量价指纹)**:过去20个交易日的每日高开低收、成交量、成交额(共6个基础特征)以及128维量价指纹[52]。 2. **特征预处理**: * **价格类特征**:采用对数变化率的时序标准化(样本内每个价格除以最新价格取对数)[52]。 * **成交量/额**:每日值除以20日均值[52]。 * **量价因子**:进行时序标准化、MAD去极值、截面zscore标准化[52]。 * **量价指纹**:作为预训练生成的语义表征,无需标准化[52]。 3. **模型结构**:双层GRU + 全连接层 + LayerNorm + ReLU激活 + dropout + 全连接输出层[53]。 4. **训练细节**:使用可微分RankIC作为损失函数,每年年初使用过去数据训练,并行训练3个不同随机种子的模型并集成预测,以提升稳健性[53]。 3. 双流GRU融合预测模型 (模型3) * **模型名称**:双流GRU融合预测模型[67] * **模型构建思路**:为了融合量价因子和量价指纹两类异构特征,采用双流GRU设计,让两个GRU流分别处理各自擅长的特征,最后将两个流的隐藏状态进行加权融合,再通过全连接层预测收益率,以充分利用信息的互补性[67]。 * **模型具体构建过程**: 1. **输入特征**:两个独立的数据流,一流输入基础特征+量价因子,另一流输入基础特征+量价指纹[67]。 2. **模型结构**:两个独立的单流GRU模块(结构与上述单流GRU相同)并行处理两个特征流,将两个GRU的最终隐藏状态通过可配置的权重进行融合,然后将融合后的特征输入全连接预测层[67][69]。 3. **训练与集成**:训练策略与单流GRU模型一致,每年训练3个集成模型[68]。 量化因子与构建方式 1. 模型1因子 * **因子名称**:基于量价因子的GRU预测因子[51] * **因子构建思路**:将预处理后的历史量价因子序列输入单流GRU预测模型,模型输出的预测值即为该因子[51][52]。 * **因子具体构建过程**:如上述“单流GRU预测模型 (模型1)”所述,模型每日根据过去20日数据生成的预测信号即为因子值[52]。 2. 模型2因子 * **因子名称**:基于量价指纹的GRU预测因子[52] * **因子构建思路**:将历史量价指纹序列输入单流GRU预测模型,模型输出的预测值即为该因子[52]。 * **因子具体构建过程**:如上述“单流GRU预测模型 (模型2)”所述,模型每日根据过去20日数据生成的预测信号即为因子值[52]。 * **因子评价**:该因子与市值风格因子的相关性极低,表明其捕捉的市场语义信息与传统市值维度存在差异,可能更多与日内资金节奏、多空博弈等动态特征相关[54][55]。 3. 模型3因子 (融合因子) * **因子名称**:量价因子与量价指纹融合预测因子[67] * **因子构建思路**:将量价因子和量价指纹分别输入双流GRU融合模型,模型融合两类信息后输出的预测值即为该因子[67]。 * **因子具体构建过程**:如上述“双流GRU融合预测模型 (模型3)”所述,模型每日生成的预测信号即为因子值[67]。 * **因子评价**:融合因子结合了量价因子的显式统计规律与量价指纹的隐式语义模式,提升了预测能力和模型稳定性[68][86]。 模型的回测效果 (回测期:2017/01/01-2025/12/31,全市场A股,周度换仓,暂不考虑交易费用)[59][68] | 模型 | 周度RankIC均值 | 年化RankICIR | 多空对冲年化收益 | 多空对冲年化波动率 | 多空对冲IR | 多空对冲周度胜率 | 多空对冲最大回撤率 | 多头超额年化收益 | 多头超额年化波动率 | 多头超额IR | 多头超额周度胜率 | 多头超额最大回撤率 | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | **模型1 (量价因子)** | 0.106[65] | 6.64[65] | 81.23%[65] | 15.25%[65] | 5.33[65] | 74.95%[65] | 12.66%[65] | 19.00%[65] | 8.46%[65] | 2.24[65] | 65.01%[65] | 15.09%[65] | | **模型2 (量价指纹)** | 0.106[65] | 6.62[65] | 83.88%[65] | 15.50%[65] | 5.41[65] | 73.87%[65] | 11.65%[65] | 21.35%[65] | 7.45%[65] | 2.87[65] | 69.76%[65] | 12.09%[65] | | **模型3 (融合因子)** | 0.109[68] | 6.85[68] | 90.89%[68] | 15.27%[68] | 5.95[68] | 76.46%[68] | 11.54%[68] | 28.09%[74] | 不适用 | 不适用 | 不适用 | 不适用 | 因子的回测效果 (回测期:2017/01/01-2025/12/31,全市场A股,周度换仓,暂不考虑交易费用)[59][68] | 因子 | 周度RankIC均值 | 年化RankICIR | 多空对冲年化收益 | 多空对冲年化波动率 | 多空对冲IR | 多空对冲周度胜率 | 多空对冲最大回撤率 | | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | | **模型3融合因子** | 0.109[68] | 6.85[68] | 90.89%[68] | 15.27%[68] | 5.95[68] | 76.46%[68] | 11.54%[68] | 指数增强组合表现 (基于模型3融合因子构建,回测期:2017/01/01-2025/12/31)[75][78][82] | 指数增强组合 | 超额年化收益 | 跟踪误差 | IR | 月度胜率 | 最大回撤 | | :--- | :--- | :--- | :--- | :--- | :--- | | **沪深300指数增强** | 7.12%[75] | 1.74%[75] | 4.10[75] | 86.11%[75] | 1.85%[75] | | **中证500指数增强** | 11.38%[78] | 3.47%[78] | 3.28[78] | 83.33%[78] | 4.76%[78] | | **中证1000指数增强** | 14.84%[82] | 3.45%[82] | 4.30[82] | 83.33%[82] | 2.95%[82] |