罗伯特·卡弗系统工程实现手册 v2.4

Phase 0–3 工程实现细化:数据、信号、组合、执行与 QA。

系列目录:/carver/
上一篇:数据流水线 | 下一篇:无

说明:本文发布自个人研究笔记;文中出现的 docs/...sys... 等文件名仅用于定位概念/实现位置,公开站点不提供对应仓库链接。

(System Implementation Guide)

文档定位:LLD (详细设计)。用于指导代码开发、QA 测试及参数配置。

对应蓝图:carver-blueprint.md

1. 术语映射 (Terminology Mapping)

为了确保三份文档的语言一致性,请遵循以下层级映射:

Quick Reference LevelImplementation TermIncluded Strategies
Level 0 (Benchmark)BenchmarkS04 (见附录 A)
Level 1 (Core)Core EngineS09, S10 (Signals); S13, S25 (Modifiers)
Level 2 (Enhancement)SatellitesS14 (price_source mode), S21, S23, S22, S19/20
Level 3 (Research)ExperimentalS26/27, S28-30 (需严格准入)

说明:

  • Quick Reference 中的 Level 0–3 主要用于横向区分策略等级(基准 / 核心 / 卫星 / 研究),不参与计算流水线的纵向分层。

  • 本实现手册中的 Phase 0–3 与蓝图中的 Layer 1–4 共同描述从数据到执行的纵向流水线,粗略对应关系为:

    • Phase 0–1 ≈ Layer 1(资金与风控层,风险语言统一);

    • Phase 1–2 ≈ Layer 2–3(信号工厂与组合优化层);

    • Phase 3 ≈ Layer 4(执行与安全层)。

2. 核心计算流水线 (The Pipeline)

Phase 0: 数据预处理 (Preprocessing)

  • 统一风险指标计算:

    • 在读取每日收盘价后,计算全账户 DailyCashRisk 与各品种 InstValVol,作为后续各 Phase 的标准化输入。
  • S14 Synthetic Spot 实现:

    • 这是一个数据源开关,而非独立策略类。

    • Config 示例: trend_ewmac: { price_source: "synthetic_spot" }

  • Phase 0 数据资产与 PST 对接:roll calendars / multiple prices / adjusted prices / FX / costs 的依赖链与质量断言见 carver-data-pipeline.md

Phase 1: 信号与基础头寸

  • Core Engine: 优先实现 S09 (EWMAC) 和 S10 (Carry)。

  • Modifiers:

    • S13 Vol Regime: 作用于 Phase 1 末尾,Forecast_Final = Forecast_Raw * Scalar。仅改变强度,不改变方向。

Phase 2: 组合与风控 (The Assembly)

  • S11 Style MVP: 初始版本仅需 60% S09 + 40% S10

  • IDM: 核心系统 IDM 上限建议 2.5

Phase 3: 优化与执行 (Optimization & Execution)

  • S25 动态优化: 作用于 Phase 3。输入连续头寸,输出整数头寸。核心目标是最小化 TrackingError + TurnoverCost

3. Speed & Size 监管逻辑 (两级阈值)

本节对应蓝图中的「横向监管层:速度与容量 (Speed & Size)」。为了统一“0.30 vs 0.40”的定义,我们执行严格的 Two-Tier Logic

Tier 1: 限速 (Throttle)

  • 阈值: SR Cost $\ge$ 0.30

  • 触发条件: 任意生产策略。

  • 动作:

    1. 发出 Warning 警报。

    2. 强制增大该策略的时间窗口(如 EWMAC 速度变慢)或降低其在组合中的权重。

Tier 2: 熔断 (Kill Switch)

  • 阈值: SR Cost $\ge$ 0.40

  • 触发条件: 主要是 Fast Strategies (如 S23 Accel, S26 Fast MR)。

  • 动作:

    1. 发出 Critical 警报。

    2. 直接禁用 (Disable) 该策略模块。

    3. 其权重自动重新分配给 Core Engine (S09/S10)。

容量约束 (Capacity Limit, Draft)

  • 监控指标: 单品种持仓名义规模 / 市场 Open Interest。

  • 建议阈值: > 1% Open Interest 视为容量压力上限。

  • 动作 (草案):

    1. 对该品种目标头寸进行截断 (Cap Position)。

    2. 若频繁触达容量上限,考虑下调该品种或相关策略在组合中的权重。

系统约束与告警阈值 (System Invariants)

  • 成本约束:

    • 理想目标:生产策略在长期内应保持 SR Cost < 0.30

    • 硬性上限:不接受 SR Cost 持续 $\ge$ 0.40;达到该水平时,必须执行限速、降权或直接禁用该策略。

    • 说明:0.30 作为强制告警阈值(触发人工干预),0.40 作为熔断阈值(Kill Line),与蓝图和速查卡中的 Two-Tier 逻辑保持一致。

4. 关键参数配置 (Configuration Examples)

# sysdata/config/strategies.yaml

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# --- Level 1: Core Engine ---
trend_ewmac:
  af_strategy_id: 9
  enabled: true
  role: "core"
  price_source: "back_adjusted" # 默认源
  cost_ceiling: 0.30            # 核心策略触达 0.30 即需人工介入

carry_term_structure:
  af_strategy_id: 10
  enabled: true
  cost_ceiling: 0.30

# --- Level 2: Satellites ---
trend_breakout:
  af_strategy_id: 21
  enabled: false
  weight: 0.10

trend_synthetic:
  af_strategy_id: 14            # 实为 S09 的一个实现版本(price_source 切换为 synthetic_spot)
  price_source: "synthetic_spot"
  weight: 0.0                   # 初始权重

# --- Level 3 / Fast Strategies ---
trend_accel:
  af_strategy_id: 23
  enabled: false
  cost_ceiling: 0.40            # 允许跑得快一点,但 0.40 必杀

5. 附录 A:基准策略实现 (S04)

  • 逻辑: 直接设置 Forecast ≡ +10,不做空、不择时。

  • 流水线位置: 绕过 Phase 1(不使用任何预测模型),仅使用风险与资金层的 DailyCashRiskInstValVol

  • 组合与风控: 采用风险平价权重,IDM = 1.0,不参与主动 Alpha 组合,仅作为 Level 0 基准。