Binance 量化系统方案 B|一期技术任务拆解清单(正式版)

0. 文档目标

这份文档把《方案 B 一期 MVP 详细设计说明书(正式版)》继续下钻为可执行任务板

目标:

  • 把一期工作拆成明确任务
  • 标注优先级与依赖关系
  • 区分研究端 / 治理层 / 执行端
  • 明确哪些先做、哪些后做、哪些现在不要碰

1. 任务拆解总原则

原则 1:先治理骨架,后研究,最后执行

顺序必须是:

  1. 定 artifact / registry / 状态机 / 风控规则
  2. 跑通 research candidate 输出
  3. 再接本地 execution

原则 2:每个任务必须有产物

不能只写“完成某模块”,必须明确:

  • 文件
  • 配置
  • 脚本
  • 文档
  • 可验证输出

原则 3:优先做闭环,不优先做豪华

一期优先目标是:

  • 研究可产出 candidate
  • candidate 可被审批
  • approved 版本可被本地 paper 运行

2. 一级任务板

T0. 项目骨架初始化(P0)

T1. 治理层(Registry + Artifact)落地(P0)

T2. 研究端数据与回测闭环(P1)

T3. Validator 与 candidate 输出(P1)

T4. 本地执行骨架(P2)

T5. 风控控制面(P2)

T6. Broker Adapter + State Store(P2)

T7. Paper 运行闭环(P3)

T8. Testnet smoke(P4)

T9. Limited live 准备(P5)


3. 详细任务拆解

T0. 项目骨架初始化(P0)

T0-1 建立目录结构

目标

初始化三层目录:

  • quant-research/
  • strategy-registry/
  • quant-execution/

产物

  • 三套根目录
  • 每套目录下基础 README

验收

  • 目录可创建
  • README 说明职责边界

T0-2 建立项目级约定文档

目标

定义全项目统一约定:

  • 命名规范
  • 版本规则
  • 时间与时区规则
  • 数据命名规则
  • 状态机术语

产物

  • docs/project-conventions.md

验收

  • 所有后续模块引用统一术语

T1. 治理层(Registry + Artifact)落地(P0)

T1-1 定义 artifact 标准

目标

把策略工件固定成标准目录和字段结构。

子任务

  • manifest.json 字段
  • strategy_spec.yaml
  • params.yaml
  • risk_limits.yaml
  • metrics.json
  • report.md 模板

产物

  • strategy-registry/templates/artifact-template/
  • strategy-registry/docs/artifact-schema.md

验收

  • 能生成一个空白示例 artifact

T1-2 定义 registry 状态机

目标

明确一期状态与状态流转。

子任务

  • 确定状态集合
  • 确定 allowed transitions
  • 确定每个 transition 的前提条件

产物

  • strategy-registry/docs/lifecycle-state-machine.md
  • strategy-registry/templates/status.json

验收

  • 任意策略版本可以按文档追踪当前状态

T1-3 定义风险预算文件

目标

把 live-limited 的预算规则独立出来。

子任务

  • risk-budget.yaml 字段
  • 定 symbol 级暴露约束
  • 定 live-limited 与 paper 的区别

产物

  • strategy-registry/templates/risk-budget.yaml
  • strategy-registry/docs/risk-budget-spec.md

验收

  • 对单策略单 symbol 能写出完整预算配置

T1-4 定义 release history 规则

目标

所有状态变化必须有书面记录。

产物

  • strategy-registry/templates/release-history.md
  • strategy-registry/docs/release-process.md

验收

  • 任意版本批准/暂停/回滚都能留下审计线索

T2. 研究端数据与回测闭环(P1)

T2-1 历史数据抓取器

目标

下载 Binance Spot 历史 K 线。

范围

  • BTCUSDT
  • ETHUSDT
  • 一期选定 timeframe

产物

  • quant-research/data/raw/
  • quant-research/scripts/fetch_klines.py

验收

  • 能稳定抓到目标历史数据
  • 文件命名统一

T2-2 Dataset Builder

目标

把原始数据整理成统一研究输入。

子任务

  • 时间对齐
  • 缺失处理
  • 数据质量标记
  • 输出 dataset_id

产物

  • quant-research/datasets/
  • quant-research/scripts/build_dataset.py

验收

  • 给定原始数据,可生成标准化 dataset

T2-3 策略核心框架

目标

实现一期主策略的统一接口。

子任务

  • generate_signal(context)
  • regime_filter(context)
  • position_sizing_hint(context, risk_budget)
  • risk_constraints()

产物

  • quant-research/strategies/trend_breakout/strategy.py
  • quant-research/strategies/trend_breakout/README.md

验收

  • 在历史数据上能输出信号序列

T2-4 Backtest Engine

目标

跑通一次完整回测。

子任务

  • 持仓逻辑
  • 费用模型
  • 滑点近似
  • tick / step 精度限制
  • 最小 notional 校验

产物

  • quant-research/backtests/engine.py
  • quant-research/backtests/metrics.py

验收

  • 输入 dataset + strategy + params,可输出 metrics

T3. Validator 与 candidate 输出(P1)

T3-1 参数搜索器

目标

做有限参数搜索,不追求暴力穷举。

产物

  • quant-research/optimization/search.py

验收

  • 能在给定参数空间内输出候选参数集

T3-2 Walk-forward 验证

目标

验证参数在时间滚动下的稳定性。

产物

  • quant-research/validation/walk_forward.py

验收

  • 能输出 walk-forward 指标摘要

T3-3 参数稳定性分析

目标

拒绝“尖峰参数”,只保留稳定区。

产物

  • quant-research/validation/parameter_stability.py

验收

  • 能输出 stability score 或热区分析结果

T3-4 候选策略工件生成

目标

把研究结果打包为 candidate artifact。

产物

  • quant-research/artifacts/build_artifact.py
  • strategy-registry/strategies/<id>/versions/<version>/...

验收

  • 成功生成第一版 candidate artifact

T4. 本地执行骨架(P2)

T4-1 Artifact Loader

目标

本地只加载 approved 版本。

产物

  • quant-execution/runtime/artifact_loader.py

验收

  • 未批准版本被拒绝
  • 已批准版本能被正确解析

T4-2 Market Stream

目标

建立实时行情接收与重连机制。

产物

  • quant-execution/runtime/market_stream.py

验收

  • 行情断开后能恢复
  • stale 数据可被检测

T4-3 Signal Runtime

目标

在本地实时调用已批准策略。

产物

  • quant-execution/runtime/signal_runtime.py

验收

  • 能基于实时数据输出候选信号

T5. 风控控制面(P2)

T5-1 风控状态机实现

目标

支持以下状态:

  • normal
  • degraded
  • risk-lockdown
  • manual-pause

产物

  • quant-execution/runtime/risk_plane.py

验收

  • 状态切换逻辑可触发、可记录

T5-2 Pre-trade OrderSanitizer

目标

在发单前做 Binance filters 校验。

子任务

  • price rounding
  • quantity rounding
  • min/max notional 校验
  • symbol filters 校验

产物

  • quant-execution/runtime/order_sanitizer.py

验收

  • 非法订单在本地直接 reject

T5-3 账户级风控

目标

实现:

  • 单日最大亏损
  • 最大同时持仓数
  • 单 symbol 最大暴露
  • 连续失败暂停

产物

  • quant-execution/runtime/account_risk_rules.py

验收

  • 超阈值时可自动阻止新开仓

T6. Broker Adapter + State Store(P2)

T6-1 Binance Broker Adapter

目标

实现下单 / 查单 / 撤单 / 余额同步。

产物

  • quant-execution/runtime/broker_adapter.py

验收

  • 在 testnet / smoke 场景能完成完整订单生命周期

T6-2 State Store

目标

持久化运行状态。

存储内容

  • 当前持仓
  • 未完成订单
  • 最近 fills
  • 当前策略版本
  • 风控状态
  • kill-switch 状态

产物

  • quant-execution/state/runtime.db
  • quant-execution/runtime/state_store.py

验收

  • 重启后可恢复关键状态

T6-3 Alerting

目标

把运行异常送到 Telegram。

产物

  • quant-execution/alerts/telegram_alerts.py

验收

  • 订单失败、风控触发、数据 stale 能收到提醒

T7. Paper 运行闭环(P3)

T7-1 Paper 模式开关

目标

允许 live 市场数据 + 模拟成交。

产物

  • quant-execution/configs/paper.yaml

验收

  • 可不碰真钱运行全链路

T7-2 Paper 运行报告

目标

输出:

  • 信号次数
  • 假成交
  • 模拟 PnL
  • 风控触发统计

产物

  • quant-execution/reports/paper/

验收

  • 有可复盘报告

T8. Testnet smoke(P4)

T8-1 Testnet 配置

目标

验证 API/session/order 生命周期。

产物

  • quant-execution/configs/testnet.yaml

验收

  • 能下测试单、查单、撤单、同步状态

T8-2 Smoke Checklist

目标

明确 testnet 只验证“链路”,不验证“盈利”。

产物

  • docs/testnet-smoke-checklist.md

T9. Limited live 准备(P5)

T9-1 Live-limited 配置

目标

只允许极小资金上线。

产物

  • quant-execution/configs/live_limited.yaml

验收

  • notional 严格受限
  • 风控阈值严格生效

T9-2 上线前检查清单

目标

上线前必须确认:

  • approved-live 已存在
  • 风险预算已写好
  • kill-switch 可用
  • 告警正常
  • 订单沙箱检查通过

产物

  • docs/live-limited-launch-checklist.md

4. 依赖关系

关键依赖链

  • T0 T1 T2/T3 T4/T5/T6 T7 T8 T9

不能跳过的点

  • 没有 T1,禁止进入 T4
  • 没有 T3,禁止进入 T7
  • 没有 T5,禁止进入 T9

5. 实际优先级裁决

必须先做(绝对优先)

  • T1 Registry / Artifact / 状态机 / 风险预算
  • T2 基础数据与回测
  • T3 Validator 与 candidate 输出

第二优先

  • T4 本地执行骨架
  • T5 风控控制面
  • T6 Broker + State Store + Alerting

第三优先

  • T7 Paper
  • T8 Testnet smoke
  • T9 Limited live

6. 一期不要加进来的任务

以下任务现在全部禁止混入一期:

  • 多交易所抽象层
  • Futures 适配层
  • 复杂 portfolio optimizer
  • 强化学习/深度学习模型服务
  • Web Dashboard
  • 自动灰度扩容
  • 自动晋升 live-full

7. 最终收口

一期的任务板本质上是在保证一件事:

不先追求“复杂又聪明”,而是先建立一个研究可复现、版本可治理、实盘可受控的量化系统骨架。

如果严格按这份任务拆解推进,方案 B 的第一阶段就不会散,也不会因为“功能太多”而迟迟不能上线验证。