Binance 量化系统方案 B|一期技术任务拆解清单(正式版)
0. 文档目标
这份文档把《方案 B 一期 MVP 详细设计说明书(正式版)》继续下钻为可执行任务板。
目标:
- 把一期工作拆成明确任务
- 标注优先级与依赖关系
- 区分研究端 / 治理层 / 执行端
- 明确哪些先做、哪些后做、哪些现在不要碰
1. 任务拆解总原则
原则 1:先治理骨架,后研究,最后执行
顺序必须是:
- 定 artifact / registry / 状态机 / 风控规则
- 跑通 research candidate 输出
- 再接本地 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.mdstrategy-registry/templates/status.json
验收
- 任意策略版本可以按文档追踪当前状态
T1-3 定义风险预算文件
目标
把 live-limited 的预算规则独立出来。
子任务
- 定
risk-budget.yaml字段 - 定 symbol 级暴露约束
- 定 live-limited 与 paper 的区别
产物
strategy-registry/templates/risk-budget.yamlstrategy-registry/docs/risk-budget-spec.md
验收
- 对单策略单 symbol 能写出完整预算配置
T1-4 定义 release history 规则
目标
所有状态变化必须有书面记录。
产物
strategy-registry/templates/release-history.mdstrategy-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.pyquant-research/strategies/trend_breakout/README.md
验收
- 在历史数据上能输出信号序列
T2-4 Backtest Engine
目标
跑通一次完整回测。
子任务
- 持仓逻辑
- 费用模型
- 滑点近似
- tick / step 精度限制
- 最小 notional 校验
产物
quant-research/backtests/engine.pyquant-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.pystrategy-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 风控状态机实现
目标
支持以下状态:
normaldegradedrisk-lockdownmanual-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.dbquant-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 的第一阶段就不会散,也不会因为“功能太多”而迟迟不能上线验证。