参数敏感性报告:高原与孤峰的正式画法
我的掌握程度:
先掌握这个答案
标准做法:①一维扫描:主参数取标准档(5/10/20/40/60/120——对数间隔)逐档回测,指标看样本外年化与夏普;②二维扫描:两个关键参数的网格(如窗口×阈值)出热力图;③呈现:表+图,标注"选用值"及其上下档成绩。判定标准:高原=选用值与相邻两档的成绩差<20%(相对)且方向一致;孤峰=选用值显著高于全部相邻档(>50%)——参数在"背答案"。报告规范进档案:敏感性表附在策略文档的"参数"节——写明扫描范围、选用理由(高原中点/标准档惯例);决策流程:孤峰参数一律回炉(q-509剃刀或放弃);高原参数微调无需重新验证。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
本阶段实战方法 · 回测先过时序、成交与成本三道关
把信号变成策略收益时,每笔收益必须能追溯到当时能下出的订单。
- 画出时间线:数据可得→算信号→下单→成交→持仓收益;收盘信号不能倒用当天完整收益。
- 明确交易价格、T+1可卖数量、停牌涨跌停、仓位上限和实际成交量约束。
- 同时报告毛/净收益、换手、最大回撤、基准和样本外结果;对滑点与费率做压力测试。
使用边界
- 简单shift(1)只解决部分时序问题;次日开盘成交还要区分隔夜和日内收益。
- 成本应按成交金额与买卖方向计提;0.15%是教学情景,不是统一市场费率。
不懂的术语:回测(Backtest)
背景 · 从一个困惑说起
q-466/509多次引用"参数高原vs孤峰"——这一题给出它的正式工程:敏感性不是"感觉参数还行",而是一张系统扫描的表/图,它决定参数选择的合法性,也是研究档案的标准件。
由此产生的问题
一维/二维敏感性扫描的标准做法(网格、指标、呈现)?高原与孤峰的判定标准?敏感性报告怎么进研究档案与决策流程?
核心概念
标准做法:①一维扫描:主参数取标准档(5/10/20/40/60/120——对数间隔)逐档回测,指标看样本外年化与夏普;②二维扫描:两个关键参数的网格(如窗口×阈值)出热力图;③呈现:表+图,标注"选用值"及其上下档成绩。判定标准:高原=选用值与相邻两档的成绩差<20%(相对)且方向一致;孤峰=选用值显著高于全部相邻档(>50%)——参数在"背答案"。报告规范进档案:敏感性表附在策略文档的"参数"节——写明扫描范围、选用理由(高原中点/标准档惯例);决策流程:孤峰参数一律回炉(q-509剃刀或放弃);高原参数微调无需重新验证。
为什么需要它
①把"选择"变成"证明":参数是回测最大的合法自由度——敏感性报告是这个自由度的纳税证明;②孤峰=局部的数据挖掘:选在峰顶=对那段历史的精确拟合——样本外均值回归到高原水平(甚至更低);③档案的复利:敏感性表让三个月后的你(或接手的同事)知道参数为什么是20天——可维护性的具体形态。
实际应用场景
执行:scan(parameter_grid)→输出表与图→判定(高原/斜坡/孤峰)→选用(高原中点优先)→归档;后续每季度复扫一次(高原漂移=因子衰减的早期信号)。
与之前知识的联系
q-466(首次提出)/q-509(剃刀的第一判据)的工程完全体;孤峰判定与q-508(数据挖掘)呼应;季度复扫连接q-443(因子衰减监控)。
⚠ 常见误解
- 扫描出最优参数就行:扫描的目的恰是反"最优"——选最优=选孤峰=选拟合;目标是证明高原存在并取稳健点
- 敏感性=多跑几个数:没有标准档网格、没有判定标准、没有归档的扫描=没有发生过的扫描
- 参数稳定就不用再扫:市场结构变化会让高原漂移甚至塌陷——季度复扫是策略体检项
🛠 本题实践任务
为你的主参数做正式敏感性报告(标准档网格+判定+归档);若发现孤峰诱惑——记录你拒绝它的心路(这行记录未来会值钱)。
💡 提示(先自己想5分钟再看)
网格用对数均匀的标准档(5/10/20/40/60)而非连续微调——标准档自带稳健性;二维热力图留给双参数策略。
✅ 验收标准
一份归档的敏感性报告(表+判定+选用理由)。参数选择从"自由"变成"有据"。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(参数敏感性概念、奥卡姆剃刀),再用案例、公式和代码帮助理解。此功能需要先启用服务。