策略合规性审计报告
来源: Obsidian Vault
策略合规性审计报告
对照《量化策略规划及管理.md》七层框架+管理规范,逐条检查3个策略的实际实现状态 审计日期: 2026-06-09
一、总览
| 维度 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 第1层 数据基础 | ⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 第2层 市场制度适配 | ⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 第3层 策略逻辑 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 第4层 统计有效性 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 第5层 统计陷阱 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 第6层 迭代方法论 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 第7层 工程运营 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 管理规范合规 | ⭐⭐⭐ | ⭐⭐⭐ | ⭐⭐⭐⭐ |
| 总分(满分63) | 39 | 41 | 51 |
二、逐条对比
第1层:数据基础
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 1.1 数据质量 | ⚠️ 部分 | ✅ 是 | ✅ 是 |
| 无清洗校验逻辑,依赖CH入库质量 | cleaner.py 5步清洗(ST/停牌/涨跌停/零量/OHLC) | MySQL+CH+Parquet三级,排除指数非个股 | |
| 1.2 数据粒度 | ✅ 是 | ✅ 是 | ✅ 是 |
| 日线匹配策略 | 日线+周线resample | 日线+分钟线(盘中) | |
| 1.3 复权一致性 | ❌ 否 | ⚠️ 部分 | ✅ 是 |
| 无复权处理,依赖CH后复权价 | CH/tdx混用但无显式统一 | YAML配置adjust_type="pre"明确前复权 | |
| 1.4 数据量充足 | ✅ 是 | ✅ 是 | ✅ 是 |
| 2.4年/18只/105笔 | min_bars=60/len<120跳过 | 3.5年/393笔 |
关键差距: - fractal-system 1.3复权 — 未处理复权,可能导致信号偏移。CH用后复权,但策略未显式声明 - Ross-trade 1.3复权 — CH后复权 vs TDX不复权混用,DataManager降级时可能不一致
第2层:市场制度适配
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 2.1 T+1/涨跌停 | ❌ 否 | ✅ 是 | ✅ 是 |
| 无涨跌停检查;日线以收盘价入场(实际不可行) | cleaner.py标记涨跌停,排除不可交易日 | 黑名单过滤跌停,排除ST/停牌,100股整手 | |
| 2.2 交易成本 | ⚠️ 部分 | ✅ 是 | ✅ 是 |
| 有佣金万1+滑点,缺印花税 | 买0.03%/卖0.03%/印花税0.1%/滑点0.02% | 佣金万2.5+印花税0.1%+最低5元+滑点 | |
| 2.3 多空方向 | ✅ 是 | ✅ 是 | ✅ 是 |
| LONG_ONLY=True | if direction!="long": continue | 仅做多,弱市停止买入 | |
| 2.4 交易时间 | ❌ 否 | ⚠️ 部分 | ✅ 是 |
| 日线模式无交易时间检查 | paper trading用收盘价模拟 | 竞价9:25/盘前10min/尾盘14:45时间窗 |
关键差距: - fractal-system 2.1 — 日线以当日收盘价入场,实际T+1下应以次日开盘价入场 - fractal-system 2.2 — 缺少印花税(卖出千分之一),影响净利 - fractal-system 2.4 — 日线模式无盘中时间窗
第3层:策略逻辑
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 3.1 入场可量化 | ✅ 是 | ✅ 是 | ✅ 是 |
| LSwing触碰+斜率+amp过滤 | 1-2-3结构→RH→2B→4层过滤→评分 | S2黑名单→S4大盘→S1四池→S3删减→Phase C | |
| 3.2 出场完整 | ✅ 是 | ✅ 是 | ✅ 是 |
| SL/TP1/TP2/TIME_EXIT | ATR止损+追踪止损+固定止盈+分批止盈 | 11层卖出优先级(大盘/ATR/止损/时间/MA5...) | |
| 3.3 信号过滤 | ✅ 是 | ✅ 是 | ✅ 是 |
| amp<2%+斜率+冷却期 | 趋势+量+波动率+布林4层 | Phase C入场质量+成本过滤 | |
| 3.4 左侧vs右侧 | ⚠️ 部分 | ✅ 是 | ✅ 是 |
| 本质左侧但未明确标注 | TTE右侧确认,参数化确认K线数 | 尾盘买入(右侧)+止跌确认 |
第4层:统计有效性
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 4.1 样本量 | ✅ 是 | ⚠️ 部分 | ✅ 是 |
| 105笔(≥30) | 有回测脚本但未产出统计报告 | 393笔 | |
| 4.2 股票池广度 | ✅ 是 | ✅ 是 | ✅ 是 |
| 79只中18只 | 全市场top100 | 全市场(排除指数) | |
| 4.3 盈亏平衡 | ⚠️ 部分 | ✅ 是 | ✅ 是 |
| WR42.9%超线但未显式计算 | profit_factor/calmar_ratio | 成本过滤(min_profit_after_cost=0.5%) | |
| 4.4 收益归因 | ✅ 是 | ⚠️ 部分 | ✅ 是 |
| 区分毛利/佣金/滑点/净利 | 基础统计,无分板块归因 | 按卖出原因拆解+6种市场环境归因 |
第5层:统计陷阱
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 5.1 前视偏差 | ⚠️ 部分 | ⚠️ 部分 | ⚠️ 部分 |
| 振幅过滤OK;但收盘价入场有隐含前视 | 信号日close入场(应用次日开盘) | 当日收盘后选股→次日开盘买入 | |
| 5.2 过拟合 | ⚠️ 部分 | ✅ 是 | ✅ 是 |
| 有WFV和Optuna但未系统化 | MonteCarlo 1000次+参数网格+帕累托 | 两段式验证+7组参数稳定性测试 | |
| 5.3 幸存者偏差 | ⚠️ 部分 | ⚠️ 部分 | ⚠️ 部分 |
| 实盘刚开始(1天) | paper trading模拟中 | 明确标注"有幸存者偏差" | |
| 5.4 选择偏差 | ⚠️ 部分 | ⚠️ 部分 | ✅ 是 |
| 人工选79只 | 选股流水线但受CH覆盖限制 | 动态黑名单+追高过滤+成交额下限 |
第6层:迭代方法论
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 按优先级迭代 | ✅ 是 | ✅ 是 | ✅ 是 |
| 架构(15min→日线)>逻辑(只做多+amp)>参数 | 信号→止损→Regime→Paper Trading | V1→V5按回撤优先级迭代 | |
| 根因诊断 | ⚠️ 部分 | ⚠️ 部分 | ✅ 是 |
| 有但非系统化 | 有analyzer但无迭代文档 | 明确根因→修复→验证全流程 |
第7层:工程运营
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 7.1 可配置参数 | ✅ 是 | ✅ 是 | ✅ 是 |
| TOML外部化 | 139个参数YAML/JSON | ht_strategy_params.yaml 184行 | |
| 7.2 回测框架 | ✅ 是 | ✅ 是 | ✅ 是 |
| 独立回测引擎+脚本 | 完整引擎+MonteCarlo+参数扫描 | 882行回测引擎 | |
| 7.3 版本控制 | ✅ 是 | ✅ 是 | ✅ 是 |
| Git commit 402e93b | Git 5个commit | Git commit 4cafb4a | |
| 7.4 自动化部署 | ✅ 是 | ❌ 否 | ✅ 是 |
| 日扫描15:05+周报周五18:00 | 无Cron任务 | 5个Cron任务(67次运行) | |
| 7.5 评估节点 | ✅ 是 | ⚠️ 部分 | ✅ 是 |
| 2026-06-22评估WR阈值 | report.py有指标但无自动评估 | 每日复盘+盘中监控+CHANGELOG |
管理规范合规
| 条件 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|
| 3.1 目录结构 | ✅ 是 | ✅ 是 | ✅ 是 |
| 代码+cards+.md+INDEX.html | 代码+cards+.md+INDEX.html | 代码+cards+.md+INDEX.html | |
| 3.6 资金管理 | ⚠️ 部分 | ✅ 是 | ✅ 是 |
| position_manager.py存在但未启用 | 1%风险/20%上限/15%熔断/5只上限 | 单票20%/总仓80%/弱市8%/净值止损8% | |
| 3.7 淘汰规则 | ❌ 否 | ❌ 否 | ⚠️ 部分 |
| 无淘汰机制 | 无淘汰机制 | 有实盘检查清单但无策略停用标准 |
三、汇总得分
| 层级 | 满分 | fractal-system | Ross-trade | eod-overnight |
|---|---|---|---|---|
| L1 数据基础 | 4 | 2.5 | 3.5 | 4 |
| L2 市场制度 | 4 | 1.5 | 3.5 | 4 |
| L3 策略逻辑 | 4 | 3.5 | 4 | 4 |
| L4 统计有效 | 4 | 3.5 | 3 | 4 |
| L5 统计陷阱 | 4 | 2.5 | 2.5 | 3.5 |
| L6 迭代方法 | 2 | 1.5 | 1.5 | 2 |
| L7 工程运营 | 5 | 4 | 3.5 | 5 |
| 管理规范 | 3 | 1.5 | 2 | 2.5 |
| 总计 | 30 | 20.5 | 23.5 | 29 |
合规率: - fractal-system: 68% (20.5/30) - Ross-trade: 78% (23.5/30) - eod-overnight: 97% (29/30)
四、关键差距与优先修复建议
🔴 必须修复(影响策略正确性)
| # | 策略 | 差距 | 影响 | 修复建议 |
|---|---|---|---|---|
| 1 | fractal-system | 2.1 收盘价入场 | 回测收益虚高,实际T+1无法当日收盘价买入 | 改用次日开盘价入场 |
| 2 | fractal-system | 2.2 缺印花税 | 卖出成本少算0.1%,影响净利 | 加入stamp_tax=0.001 |
| 3 | fractal-system | 1.3 复权未处理 | CH后复权价与实盘价不同 | 显式声明复权方式或统一为前复权 |
| 4 | Ross-trade | 5.1 信号日close入场 | 同上,前视偏差 | run_from_signals改用次日open |
🟡 建议修复(影响可靠性)
| # | 策略 | 差距 | 修复建议 |
|---|---|---|---|
| 5 | fractal-system | 1.1 无数据清洗 | 加入OHLC校验/零量过滤/涨跌停标记 |
| 6 | fractal-system | 3.6 资金管理未启用 | 在回测中启用position_sizer |
| 7 | Ross-trade | 7.4 无Cron自动化 | 部署日扫描+周报Cron |
| 8 | Ross-trade | 4.1 未产出回测统计 | 跑一次全量回测,产出标准报告 |
| 9 | 全部 | 3.7 无淘汰机制 | 编写策略淘汰规则文档 |
🟢 可选优化
| # | 策略 | 差距 | 修复建议 |
|---|---|---|---|
| 10 | fractal-system | 5.4 人工选股 | 全市场扫描替代手动79只 |
| 11 | fractal-system | 5.2 WFV未系统化 | 建立滚动验证流水线 |
| 12 | Ross-trade | 1.3 复权混用 | DataManager降级时统一复权处理 |
五、结论
eod-overnight 合规率最高(97%),是三个策略中工程最成熟的。唯一差距是策略淘汰规则未完全文档化。
Ross-trade 合规率78%,策略逻辑和架构设计最完善(5层信号+MonteCarlo+参数扫描),但工程运营薄弱(无Cron、无实盘验证、无回测统计报告)。
fractal-system 合规率最低(68%),主要因为市场制度适配不完整(收盘价入场/缺印花税/无涨跌停检查)。这些在回测中可能导致收益虚高,建议在6月22日评估前修复。