概念笔记
多回测与参数网格分析(分位回测、超额评估)
把「一组参数组合」自动跑成一批回测,汇总成指标表与曲线,并用「相对匹配基准的超额收益」判断参数好坏——替代「手调一两个参数、只看原始收益」的挑参数方式。
一句话
写一个调度器:给定策略和要调的参数名/取值表,自动跑所有组合(笛卡尔积)的回测,把每个回测的收益、夏普、最大回撤、波动率收进一张表,画成曲线和柱状图。关键动作是选对基准:拿等权策略直接比市值加权的上证指数不公平,要自建「等权全指」,然后看「策略净值 ÷ 基准净值」的超额收益和超额回撤——这样才能看出因子/参数到底贡献了多少、什么时候失效。
当前理解
框架与参数(量化课堂 18)
parameter_analysis类(研究模块里),核心是get_backtest_data(...)。- 关键输入:algorithm_id(策略 id)、benchmark_id(自定义基准回测 id,起止须与回测吻合)、file_name(pickle,默认 results.pkl)、running_max(并发上限,默认 10,超出排队)、start/end/frequency/initial_cash、param_names/param_values。
- param_names 写策略全局变量名(如 ['abc','x_y_z'],对应 g.abc、g.x_y_z);param_values 是各参数的取值表;框架自动取笛卡尔积(3 值 × 2 值 = 6 个回测)。
- 结果对象:params_df(参数表)、evaluations / evaluations_df(收益、夏普、最大回撤等指标)、backtest_ids、dates、benchmark_returns、returns / excess_returns / log_returns / log_excess_returns(超额 = 策略净值 ÷ 基准净值)、excess_max_drawdown / excess_annual_return(超额曲线的回撤与年化)。
- 免重跑:
read_backtest_data(file_name)读回 pickle。 - 画图:get_eval4_bar(收益/回撤/夏普/波动四图)、get_eval / get_excess_eval(年化+回撤柱状,后者看超额口径)、plot_returns / plot_excess_returns / plot_log_returns / plot_log_excess_returns(对数轴在看大膨胀后仍能比较相对波动)。
为什么要「匹配的基准 + 超额口径」(18 篇 BP 实例)
- 问题:策略把分位内股票等权买入,小市值暴露比上证指数(市值加权、偏大盘)高得多——直接比原始收益不公平。
- 解法:自建「等权全指」基准(每月初等权买入过去约 21 个交易日未停牌的股票),把市值暴露对齐。
- 用超额收益看图得到的发现(BP 因子十分位回测,2006-02 至 2016-11):
- BP 分位收益大致单调但不是绝对的——(10,20) 分位收益最高。
- BP 最小 10% 波动极大、超额不多(不是好选择)。
- 各分位超额在 06–10 年拉开,10 年后没有明显区别 → 因子基本失效(超额对数曲线走平)。
- 按净值算各分位最大回撤都 70% 多(同经历股灾),剥掉基准后才能比较超额回撤。
- 结论:不能单用 BP 指望超额;但它不必然无用——分行业算或结合其它方法可能还有空间。
在参数/因子研究中的角色
- 18 篇的动机来自因子研究:把全市场按分位回测、比较各分位收益(factor 与 quantile 作为参数传进去)。因子研究一~三(part 27–29)单因子两端回测、因子研究四(part 30)市值/行业中性化后的分组回测,用的都是这套框架(W6 已编译,见 因子研究四:市值与行业的中性化)。
- part 30 示范了一个重要补强:「匹配基准」不止是自建等权全指——还可以按市值分三组建三个等权基准,在每组内再按 BP 分十组回测,看「市值暴露剥掉后 BP 还剩多少信息」;因子先做去极值/中性化再分位回测(因子预处理(去极值、标准化与市值/行业中性化)),分位区分度与时序一致性明显变好。
- 它把「挑参数」从手调变成网格穷举 + 统一评估——减少挑到顺眼的参数的偏见;但仍是样本内操作,过拟合风险要靠样本外/纪律控制(对照 QuantStart 回测偏差方法论,W9)。
来源
- 多回测运行和参数分析框架 — 框架、数据项、可视化与 BP 实例(量化课堂 18,postId=4351)
- 关联:回测评价三指标(收益 / 最大回撤 / 交易次数)(从收益/回撤/次数到夏普、波动、超额的扩展)、因子选股(排名 / 打分 / 阈值筛选)(分位回测的对象:因子)、指标效果的历史频率统计(赢平输频次与最佳区间)(信号层的阈值检验,17 篇)
- 展开预告:因子研究一~三(part 27–29,W6)会实际用此框架;QuantStart 回测偏差(W9)补过拟合一面。
常见混淆
- 调出最高收益的参数 ≠ 好参数:网格里总有一个样本内最优,可能是过拟合(见 QuantStart 的过拟合/优化讨论)。
- 策略收益 ≠ 超额收益:涨市里人人都赚,那是 β 不是策略能力;看相对匹配基准的超额才公平。
- 最大回撤要在同样基准下比:都经历股灾时净值口径回撤都 70% 多,剥掉基准才能看出谁的超额回撤小。
- 参数网格 ≠ 智能搜索:它只是笛卡尔积穷举,组合数 = 各参数取值数相乘,会爆炸;不是随机搜索或贝叶斯优化。
- 「匹配基准」不是可选项:等权 vs 市值加权、大盘 vs 小盘暴露不同,基准不匹配会把「风格」错当成「策略能力」。
- 因子失效 ≠ 因子无用:BP 在 10 年后没超额,但分行业或组合其它方法仍可能有效——失效的是「裸用单因子」这一用法。
开放问题
- 参数组合爆炸时怎么办(网格穷举的组合数增长)——18 篇没有展开降维/分层策略。
- 「等权全指」只校正了市值暴露这一个偏差源;行业、风格等其它暴露怎么对齐 [需要验证]。
- running_max=10 与并发规则是 2016–17 平台语境,现行平台能力可能不同 [需要验证]。
- 网格内最优参数的样本外表现如何验证(与 QuantStart 方法论、part 17 的分股/每日更新纪律如何合成一套完整流程)。
修订记录
- 2026-09-06|量化课堂 W6:接入 part 30(因子研究四)应用——「在参数/因子研究中的角色」补分市值等权基准/分组回测与去极值中性化前置的用法,sources 未变(该 part 由 factor-preprocessing concept 与 source 页承担)。
来源
更新 2026-09-06