Progressive Validator

Polar Sponsor
爱发电 赞助
.NET 9.0

多阶段回测验证框架——在提交昂贵的完整周期回测前,使用短期窗口(冒烟/压力/中等/完整)快速筛选,节省...

渐进验证器 : 停止在从开始就注定要进行的反向测试上浪费3小时

功能概述

渐进验证器 : 停止在从开始就注定要进行的反向测试上浪费3小时是一项面向实际任务的技能,主要用于这种技能执行一个多阶段验证管道, 15分钟内消除不良策略。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

渐进式验证器(Progressive Validator)

停止在注定失败的回测上浪费 3 小时。本技能实现了一个多阶段验证流水线,可在 15 分钟内淘汰无效策略,而非耗时 3 小时。

适用场景

  • “验证该策略”
  • “运行渐进式测试流水线”
  • “该策略是否值得执行完整回测?”
  • 为新策略变体规划验证顺序时

验证流水线

     15 分钟                30 分钟               1 小时              3 小时
  +-----------+       +-----------+       +-----------+       +-----------+
  |   SMOKE   | 通过  |  STRESS   | 通过  |  MEDIUM   | 通过  |   FULL    |
  |  3 个月   |------>|  5 个月   |------>| 18 个月   |------>|  3 年     |
  |  最大回撤 < 50% |       |  最大回撤 < 45% |       |  最大回撤 < 42% |       |  最大回撤 < 40% |
  +-----------+       +-----------+       +-----------+       +-----------+
       | 失败              | 失败              | 失败              | 失败
       v                   v                   v                   v
    拒绝                拒绝                拒绝                拒绝
   (损失 15 分钟)    (损失 45 分钟)    (损失 1.5 小时)   (损失 3 小时以上)

无渐进式验证时:每个失败策略均耗费 3 小时。 启用渐进式验证后:绝大多数失败可在 15–45 分钟内捕获。

验证阶段

第一阶段:冒烟测试(Smoke Test)

  • 时间范围:2024-01-01 至 2024-03-31(3 个月)
  • 耗时:约 15–20 分钟
  • 阈值:最大回撤 < 50%
  • 目的:捕获编译错误、逻辑缺陷及灾难性结构问题
  • 覆盖范围:2024 年第一季度(含主要科技股上涨行情)

第二阶段:压力测试(Stress Test)

  • 时间范围:2024-02-01 至 2024-06-30(5 个月)
  • 耗时:约 25–30 分钟
  • 阈值:最大回撤 < 45%
  • 目的:检验策略在最严峻市场环境下的生存能力
  • 覆盖范围:2024 年上半年 —— 历史上对期权策略而言最严酷的“绞肉机”时期

第三阶段:中等测试(Medium)

  • 时间范围:2024-01-01 至 2025-06-30(18 个月)
  • 耗时:约 45–60 分钟
  • 阈值:最大回撤 < 42%
  • 目的:在牛市/熊市转换及季节性效应下验证策略稳健性
  • 覆盖范围:完整 2024 年波动周期 + 2025 年初复苏阶段

第四阶段:全周期测试(Full Period)

  • 时间范围:2023-01-01 至 2026-01-31(3 年)
  • 耗时:约 2–3 小时
  • 阈值:最大回撤 < 40%,夏普比率 ≥ 2.0,收益率 ≥ 300%
  • 目的:最终准入测试 —— 与已验证有效的策略对标
  • 覆盖范围:完整市场周期,包括 2023 年 AI 行情、2024 年回调、2025 年复苏

使用方法

配置时间窗口

在配置中定义验证窗口:

BACKTEST_WINDOWS = {
    "smoke_test": {
        "start": "2024-01-01",
        "end": "2024-03-31",
        "max_dd": 0.50,
        "expected_time": "15-20 min",
        "purpose": "Eliminate garbage fast",
    },
    "stress_test": {
        "start": "2024-02-01",
        "end": "2024-06-30",
        "max_dd": 0.45,
        "expected_time": "25-30 min",
        "purpose": "Survive worst conditions",
    },
    "medium": {
        "start": "2024-01-01",
        "end": "2025-06-30",
        "max_dd": 0.42,
        "expected_time": "45-60 min",
        "purpose": "Bull/bear transition stability",
    },
    "full": {
        "start": "2023-01-01",
        "end": "2026-01-31",
        "max_dd": 0.40,
        "expected_time": "2-3 hours",
        "purpose": "Final benchmark acceptance",
    },
}

逐阶段执行

前提条件:本技能协调各验证阶段;实际回测提交由 backtest-poller 技能(cli.py)处理。请确保该技能已安装并位于系统 PATH 中,再运行以下命令。

# 第一阶段:冒烟测试(Smoke)
# (调用 backtest-poller 技能的 cli.py)
python3 ../backtest-poller/cli.py submit 
  --main-file strategy.py --name "M31_smoke"

# 查询下一步应执行的阶段:
python3 validator.py next M31 strategy.py

# 冒烟测试完成后记录结果:
python3 validator.py record M31 smoke_test --status passed --drawdown 0.32 --sharpe 2.1

# 第二阶段:压力测试(Stress)——仅当冒烟测试通过后执行
python3 ../backtest-poller/cli.py submit 
  --main-file strategy.py --name "M31_stress"

python3 validator.py record M31 stress_test --status passed --drawdown 0.38 --sharpe 2.0

# 第三阶段:中等测试(Medium)——仅当压力测试通过后执行
python3 ../backtest-poller/cli.py submit 
  --main-file strategy.py --name "M31_medium"

python3 validator.py record M31 medium --status passed --drawdown 0.35 --sharpe 2.3

# 第四阶段:全周期测试(Full)——仅当中等测试通过后执行
python3 ../backtest-poller/cli.py submit 
  --main-file strategy.py --name "M31_full"

python3 validator.py record M31 full --status passed --drawdown 0.30 --sharpe 2.5 --profit 3.2

跳过规则

并非所有修改都需从冒烟测试开始:

变更类型 起始阶段
入场逻辑变更 冒烟测试(Stage 1)
结构性变更(仓位管理、生存机制) 冒烟测试(Stage 1)
仅盈利管理逻辑变更 中等测试(Stage 3)
日期或参数微调 与此前相同阶段

早停(Early-Stop)集成

本技能与 backtest-poller 技能(独立包)协同工作。backtest-poller 的早停功能实时监控最大回撤,若在任务完成进度达 20% 后即突破阈值,则立即终止该回测任务 —— 无需等待注定失败的完整执行。本验证器在本地追踪各阶段的通过/失败状态,因此您始终清楚应从何处恢复验证流程。

依赖项:请安装 backtest-poller 技能以启用提交(submit)和早停(early-stop)功能。本验证器自身不执行回测提交操作。

时间节省示例

测试 5 个策略变体,其中 3 个为无效策略:

方法 耗时
仅执行全周期回测 5 × 3 小时 = 15 小时
采用渐进式验证 3 × 15 分钟 + 1 × 45 分钟 + 1 × 3 小时 = 约 4.5 小时

节省:约 70% 的计算时间。

规则

  • 未经充分理由,不得跳过任何阶段。 上述跳过规则表定义了唯一允许的例外情形。若入场逻辑或生存结构发生变更,必须从冒烟测试(Smoke)开始。
  • 策略必须通过当前阶段,方可进入下一阶段。 若当前阶段因早停或失败而未通过,则不得推进至下一阶段。
  • 验证过程中禁止修改阶段阈值。 在不同阶段间更改 max_dd 将破坏渐进式验证的保障机制。所有阈值须在验证启动前确定。
  • 每次验证运行仅限一个策略变体。 各阶段之间不得修改策略代码 —— 其目的在于对同一份代码,在日益严苛的时间窗口下持续验证其表现。
  • 务必记录每一次结果,包括失败情形。 使用命令 python3 validator.py record --status passed|failed 持久化保存结果。未记录的结果将导致 next 和 status 命令失效。

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习