构造多空股票投资组合 种新的排序学习算法【集思广译·第24期】
创建于 更新于
摘要
本文基于中国A股2006-2019年数据,提出了一种新的多空排序学习算法ListFold及其损失函数,注重多空组合头尾排名的准确性,具有平移不变性和概率解释。实证显示该算法优于MLP和ListMLE,构建的多空策略年化收益38%,夏普比率2,且在市场波动中表现稳定,验证了IC指标对alpha策略评估的优越性[page::0][page::6][page::7][page::8][page::11].
速读内容
- 研究背景及创新点 [page::0][page::1]
- 多因子策略通过因子组合预测股票排名,而非绝对收益,提升横截面选股能力。
- 传统ListMLE及翻转排名模型存在买卖同一只股票的逻辑冲突,本文提出平等重视排序头尾的新排序损失函数ListFold,增强多空策略一致性。
- ListFold损失函数及理论分析 [page::3][page::4][page::5]
- ListFold损失函数基于头尾对应的股票对差分概率,具有平移不变性和概率解释(飞镖实验模型)。
- 理论证明当变换函数取sigmoid时,与二分类损失一致;当取指数函数时,证实其与排列级别0-1损失在倒序排列下最小化,契合股票收益横截面分布特征。
- 数据与模型构建 [page::6][page::7]
- 使用中国A股3712只股票,631周,共68个因子数据,训练时间2006-2019年。
- 构建4层全连接神经网络作为评分函数,层结构为[68-136-272-34-1],激活函数为ReLU。
- 训练采用滚动窗口,训练集300周,测试集16周,32个小批量,训练迭代1000批。
- 多空策略构建 [page::7][page::8]
- 两种多空组合策略:
1. 多头排名前10%股票,空头排名后10%股票。
2. 多头排名前10%股票,空头做空所有股票平均值。
- 权重均等分配,每周固定投入1美元,无交易费用条件下回测。
- 回测表现与比较 [page::7][page::8][page::11]
- 做空尾部10%股票时,ListFold-exp策略净值持续领先,收益约为MLP的1.5倍以上。

- 做空平均值策略中,ListFold-exp和ListFold-sgm表现优于ListMLE和MLP,后者收益较低或负向。

- 风险调整指标(年化超额收益、夏普比率、最大回撤、换手率)显示ListFold-exp领先,夏普率达2,换手率略高但波动较低。
| 指标 | ListFold-exp | ListFold-sgm | ListMLE | List2MLE | MLP |
|------------|--------------|--------------|---------|----------|------|
| μ-rf(年化) | 0.38 | 0.26 | 0.20 | 0.26 | 0.16 |
| σ | 0.19 | 0.20 | 0.22 | 0.20 | 0.22 |
| 夏普比率(SR)| 2.01 | 1.27 | 0.91 | 1.29 | 0.72 |
| 最大回撤(MDD)| 0.14 | 0.25 | 0.23 | 0.21 | 0.28 |
| 换手率(TRV)| 0.48 | 0.45 | 0.45 | 0.46 | 0.39 |
- 量化因子构建与策略设计 [page::5][page::6][page::7]
- 因子输入为68维,涵盖基本面、技术指标和交易数据。
- ListFold基于多空对排序构造损失函数,通过神经网络学习股票相对排名评分。
- 策略通过季度滚动训练,保证模型稳健且无未来数据泄露。
- 鲁棒性与适应性分析 [page::9][page::10]
- 投资组合表现对选取多空头尾k值表现鲁棒(k=1至40均有较好收益),ListFold-exp和ListFold-sgm表现优越。
- 小批量大小调整测试表明较大批量更适合此复杂损失函数。
- 策略在中国A股牛熊周期下表现稳定,具有实用性和通用性。
- 排序指标评价与业界启示 [page::8][page::9]
- IC指标相较NDCG类型指标更适合评价多空alpha排序策略。
- 本文排序算法为非顺序敏感损失函数的新尝试,有助于统一排序损失框架。
- 做空尾部准确性对收益稳定贡献显著,建议未来将此损失与额外模块组合以提升表现。
深度阅读
深度分析报告:《构造多空股票投资组合:一种新的排序学习算法》
---
一、元数据与概览
- 报告标题:《构造多空股票投资组合 种新的排序学习算法【集思广译·第24期】》
- 作者:张欣慰、杨北锋
- 发布机构:量化藏经阁,国信证券研究所整理
- 发布日期:2021年11月25日
- 研究主题:提出一种基于学习排序算法的多空股票组合构建新方法,特别是针对机器学习中的listwise排序方法设计新的损失函数ListFold,并在中国A股市场进行实证验证。
- 核心论点:
- 传统因子多空策略通常依赖于数值预测,不关注排名的尾部准确性;本文提出的排序学习算法强调排名队列的头部和尾部同等重要,以更好适应多空策略。
- 创新设计的替代损失函数ListFold,具有平移不变性和一致性,能够统一pairwise和listwise损失函数的框架。
- 实证中,基于ListFold算法构建的多空组合在中国A股表现出显著优于传统方法的收益表现,样本外年化收益率高达38%,夏普比率接近2。
- 经验验证中,IC指标比NDCG更适合用于alpha策略的排名评估。
---
二、逐节深度解读
2.1 研究背景与现状(p0-p2)
- 内容要点:
- 学习排序算法起源于信息检索,尤其是在文本排序、机器翻译等领域表现突出,但在因子投资领域应用不足。
- 传统的多因子策略侧重于对股票预期收益值的预测,而非专注于排名的准确性。
- 多空策略强调在同时买入预期表现好的股票(头部)和卖空表现差的股票(尾部),因此排序模型应同时考虑两端的准确度。
- 现有方法(如Song等2017年)尝试通过训练两套模型分别拟合头部和尾部,存在可能买卖同一只股票矛盾的风险。
- 提出动机:针对多空策略提出一种新的学习排序算法,使得头部和尾部的排序在同一模型中得到一致且同等重视。
- 逻辑与假设:
- 排名对投资组合构建更直接有效,尤其是在多空对策略中,尾部准确预测极为关键。
- 现有双模型方法可能导致交易逻辑冲突,需统一且协调的排序模型。
- 学习排序算法若能考虑整体排序的一致性并平衡头尾权重,将更适合多空因子策略。
2.2 理论模型与损失函数设计(p3-p5)
- 核心内容:
- 提出ListFold损失函数,区别于经典ListMLE的自上而下选择,ListFold同时考虑排名列表的头部和尾部,采用对称概率模型。
- 对偶数股票数量,将列表视作n对多空配对,强调每对股票的评分差异,避免在同一时点买卖同一只股票。
- ListFold损失的定义为负对数似然估计,具有平移不变特性(默认转换函数为指数函数时),这是多数排序损失函数所不具备的。
- 提出指数转换函数下的投掷飞镖多级实验模型为ListFold概率解释(图1),直观表现了该损失函数的多对选择自然过程。
- 理论分析:
- 推导了当转换函数为sigmoid和指数函数时,ListFold损失函数分别与二分类损失和排列级别的0-1损失一致。
- 这一性质保障了损失函数对预测序列的正确排序具有理论上的合理性和一致性。
- 复杂排列情况下,损失允许较难区分的股票对排在中间,反映市场中股票的收益波动近似正态,难以准确排序的中间股票自然容忍排序误差。
2.3 实证研究设计(p6-p7)
- 数据集:
- 样本覆盖中国A股市场3712只股票,631周数据,时间跨度2006-12-29至2019-04-19。
- 包括68个综合因子,涵盖价格、流动性、财务指标等广泛类别。
- 剔除缺失率超过0.1%的样本,80只股票,多为沪深300成份股。
- 模型结构:
- 参照相同神经网络结构(4层全连接网络;神经元数目为68-136-272-34-1),采用ReLU激活。
- 采用小批量随机梯度下降,滑动训练技术,避免未来信息泄露。
- 训练-测试划分采用滚动窗口,训练300周,预测16周,共计得到320周测试序列。
- 打分函数:
- 网络生成的评分函数对同一时间点内股票打分,分值用于排序,并由此选择多空配对。
2.4 多空投资组合构建与回测表现(p7-p9)
- 组合构建策略:
- 策略一:多头排名前10%的股票,空头排名后10%的股票。
- 策略二:多头排名前10%的股票,空头对所有股票求平均值进行卖空。
- 同方向股票权重平均,每周固定投入1美元,不计算交易成本。
- 回测结果:
- 图4:以做空尾部10%股票为例,ListFold-exp获得最高累计净值,明显优于MLP、ListMLE及List2MLE。
- 图5:以做空所有股票平均为例,ListFold系列仍表现优越,且自2016年以来效果更突出。
- 交易成本纳入后,ListFold-exp策略年化净收益38%,夏普比率2,领先于对比模型。
- 统计表展示各模型收益、波动性、夏普比率与换手率,ListFold-exp相对换手率有轻微上升,但收益与稳定性优势显著。
2.5 排序指标及鲁棒性分析(p9-p11)
- 评价指标:
- 使用传统的Spearman相关系数和NDCG,创新提出NDCG±k指标,强调排名列表头尾的均衡准确率。
- 经验显示NDCG在ListMLE表现较好,但其NDCG±8不佳,List2MLE由于组合long-short leg的策略,NDCG±8最低。
- 信息系数(IC)表现与组合PNL较为接近,验证了IC可作为更合理的alpha策略排名绩效指标。
- 鲁棒性测试:
- 不同头部尾部仓位截止参数k从1至40个股票均进行了损益热力图表示,ListFold-exp持续表现稳定,且对k变化不敏感。
- 小批量尺寸变化的测试发现,ListFold-exp和ListFold-sgm在较大批次下具有更好的收益表现,凸性与优化稳定性有一定联系。
2.6 结论与未来展望(p11)
- ListFold损失函数为多空排序学习提供理论和实证的有力工具,具有平移不变性和概率解释。
- 在中国A股市场长期实证验证其优越性能,展示排序预测明显优于传统的数值预测模型。
- IC指标胜过NDCG作为alpha策略的评价指标。
- 展望未来,将探索不同转换函数下的理论一致性,更灵活整合各种损失形式,以及将辅助神经网络模块引入以提高尾部排序准确度。
---
三、图表深度解读
图1(p4)—— ListFold概率解释示意图
- 描述:绘制了基于指数转换函数的ListFold概率解释,其中蓝色色板堆叠代表2n个细分指标的多级实验堆栈,A和B代表两个端点的对称配对。
- 解读:图形象征投掷飞镖到两排木板的过程,体现了ListFold通过对立排序对的生成机制,权重分配反映概率分布。
- 意义:直观呈现该损失函数的概率结构,体现其对称性和平移不变性,为数学推导提供形象支持。
- 溯源:[page::4]
图2(p6)——使用因子名称表格
- 内容:列举68个因子名称,包括价格动量(如rt10、rt252)、波动性指标(如stddeviation100w)、财务比率等。
- 解析:覆盖范围广泛,体现因子多样性,说明模型输入信息充分,体现了其在数据维度上的丰富性。
- 作用:支持模型学习打分功能各方面特征,保证排序任务基础稳健。
- 溯源:[page::6]
图3(p7)—— 神经网络结构示意图
- 描述:四层全连接神经网络输入层68维,隐藏层分别为136、272、34维,输出层为1维评分向量。
- 解读:隐藏层层数和节点数设计合理,支持因子交互和特征扩展,ReLU激活函数确保非线性表达能力。
- 联系文本:体现了评分函数学习的技术细节,保障了排序性能的模型化表达。
- 溯源:[page::7]
图4(p7)——多空组合净值曲线(做空尾部10%)
- 描绘:六条曲线展示ListFold-exp(蓝)、ListFold-sgm(橙)、ListMLE(灰)、List2MLE(黄)、MLP(浅蓝)和基准平均值。
- 解读:从2013年开始,ListFold-exp曲线持续向上,明显领先其他模型,说明其策略收益最高。MLP表现最弱,验证排序训练优于数值预测。
- 意义:实证支撑新的排序损失函数对投资组合构建的有效性。
- 溯源:[page::7]

图5(p8)——多空组合净值曲线(做空所有股票平均值)
- 描述:类似图4,但卖空组合改为空头做空全市场平均值。
- 分析:在这种较为“宽松”的空头配置下,ListFold方法仍表现优异,MLP表现尤其差,验证排序算法的鲁棒性。
- 联系文本:强调多空对排行准确性的贡献,而非单个个股绝对收益预测。
- 溯源:[page::8]

图6(p8)——策略统计指标表
- 内容:比较不同算法在两种策略下的年化超额收益率、年化波动率、夏普比率、最大回撤、换手率。
- 发现:
- ListFold-exp表现最佳,特别是在收益和夏普比率上,夏普超过2。
- 换手率较高但仍在可接受范围内,策略稳健。
- MLP、ListMLE等均逊色,夏普比率低且波动较大。
- 意义:指标全面论证策略有效性、风险控制和交易成本考量。
- 溯源:[page::8]
表格(p10)——仓位k参数热力图
- 描述:各模型不同多空头尾k值对应的平均周收益(bps)。
- 解读:ListFold-exp表现随k值变化温和,体现策略稳定性。其他模型收益下降更明显。
- 联系理论:反映头尾多空对的合理性,强调选择合适k值对策略效果的影响。
- 溯源:[page::10]
---
四、估值分析
本报告为量化策略研究类技术报告,未涵盖公司估值、现金流折现或可比公司分析等估值内容,因而该部分不适用。
---
五、风险因素评估
- 模型风险:
- 机器学习模型存在过拟合风险,尽管采用了滚动训练和小批量方法,模型的泛化能力依然受限。
- 损失函数复杂度与非凸优化可能导致局部最优,影响交易信号准确率。
- 市场风险:
- 该策略主要针对中国A股市场,跨市场适用性未知。
- 多空策略本身风险包括做空成本、市场流动性风险和做空限制。
- 交易成本:
- 30个基点交易成本假设合理,但极端市场环境下成本可能升高,影响策略净收益。
- 因子样本选择偏差:
- 剔除流动性不足股票可能导致策略过度拟合较热门股票,降低抗风险能力。
- 风险缓释:
- 报告通过敏感性测试和换手率指标体现策略表现稳定。
- 提出未来结合辅助任务和损失权重调整,拟提高尾部排序准确度以降低尾部做空风险。
---
六、批判性视角与细微差别
- 创新之处:
- 提出针对多空投资排序优化的ListFold损失函数,具有理论的新颖性和平移不变性。
- 在实证中突破了传统预测收益值的局限,勇于使用排序指标进行投资组合构建。
- 潜在局限:
- 损失函数设计复杂,实际训练稳定性和计算资源要求偏高,文中虽提及小批量影响未做详尽技术参数披露。
- 过于依赖大量因子和深层神经网络,模型解释性尚需加强。
- 实证测试时间虽长,但未涉及严苛极端风险环境细节(如金融危机期间表现)。
- 内在假设有待验证:
- 假设排名尾部股票预测准确性对多空策略同等关键,但实际尾部做空可能因限制而受限。
- IC比NDCG更适合alpha评分,基于本报告样本和方法,但对其它场景通用性尚未验证。
---
七、结论性综合
本文通过创新性地设计适合多空策略的学习排序损失函数——ListFold,明显提升了因子多空组合构建的准确性和有效性。新损失函数强调同时准确排序列表的头尾,解决了传统排序算法中头尾关注度不均衡的问题,并具备理论一致性和概率解释优势。基于该算法构建的神经网络评分函数,在包含68个因子、涵盖中国A股3712只股票的长期数据集上回测,展现了年化收益38%、夏普比率2的优越业绩,显著超过经典基准MLP和ListMLE模型。
报告对模型训练过程、因子选取、网络结构、投资组合构建策略及交易成本设定进行了详尽叙述,并用图表系统对比了策略收益表现、风险指标及模型鲁棒性。特别是图4和图5清晰展示了不同多空策略下,ListFold算法相较其他排序损失和数值回归模型的较大超额收益。热力图分析优化了多空头尾部分股票数量参数,进一步确认了模型的稳定性。
此外,本文强化了IC指标在多空alpha策略排名评估中的适用性,提出了未来可对ListFold进行更深层理论和实务研究的方向,包括进一步统一损失函数框架和加强尾部排序准确性。
总的来看,该报告为量化多空策略引入基于排序学习的先进算法提供了理论创新与实证支撑,展现了机器学习与金融投资策略融合的新高度。该研究成果不仅推动了因子多空组合构建方法的前沿,也为实际投资管理提供了一种切实可行的强力工具。
---
参考文献溯源
- 报告各论述和数据图表来源于原文对应页码,详见页码标注。
---
(全文共计约1800字)