架构与项目结构
内置能力模块
单循环运行时的完整链路:
- 策略层 —
strategy_sdk(Strategy+populate_indicators+on_bar → Signal)、strategy_runtime编译器(AST 校验、防前视、required_history一致性检查) - 执行层 —
execution:订单意图校验 → 风控引擎 → 审批闸门 → 执行适配器(PaperExecutionAdapter内存撮合 /QmtExecutionAdapter真实下单) - 回测引擎 —
backtest:与实盘同构,支持 walk-forward / 样本外验证 / 迭代建议 - AI 助手 —
assistant:主 Agent + in-process 工具 + CLI 工具面 + Skill 加载 + Cron 调度 - 多智能体 swarm —
swarm:DAG 编排 + preset 投研团(investment_committee / quant_strategy_desk) - 可观测性 —
observability/debug:OpenTelemetry span 导出、调试会话、模型调用记录,全部按run_id贯穿
React 控制台页面
frontend/ · React 18 + Vite + TypeScript:
| 页面 | 用途 |
|---|---|
| Assistant | 对话式选股 / 写策略 / 回测,含 trace / 工具调用 / debug 导出 |
| MarketReview(打板复盘) | 情绪温度计 / 连板梯队 / 龙虎榜 / 资金流 / 题材热度一页看盘 |
| Knowledge(复盘工作台) | 交割单归因 / 知识图谱(邻域 · 寻路 · 溯源)/ 战法库 / 全库文件(本地私有) |
| Tasks / TaskDetail | 交易任务生命周期、回测配置与结果 |
| Strategies | 策略定义(sd-…)管理与源码查看 |
| Accounts | QMT 连接与账户配置(accounts 表唯一来源) |
| Agents / ModelSettings | 智能体配置、模型 Provider / Route |
| Settings(设置) | 系统全局配置与 QMT 服务端配置在网页里直接改 |
| Approvals | 需审批订单的人工审批 |
| Stocks / StockDetail / StockMonitor | 行情、个股详情、盘中监控 |
| Watchlist / CronJobs | 自选股(含盘口列)、定时任务 |
| ModelInvocations / Swarm | 模型调用日志、多智能体运行 |
可观测性贯穿关系
每一次 cycle / 回测 / 模型调用都可按 run_id 或 OpenTelemetry trace_id 追溯:
cycle_runs ↔ debug_sessions ↔ debug_session_spans ↔ model_invocations ↔ trade_fills
排查时用 doyoutrade-cli debug get-run-view <run_id> / get-trace-view <trace_id> 拉三层 span(HTTP / 数据层 / SDK 层)。
项目结构
doyoutrade/
├── core/ # 单循环 TradingWorker + CycleRunState(run_id 起点)
├── strategy_sdk/ # 策略 SDK
├── strategy_runtime/# 策略编译器:AST 校验、防前视
├── execution/ # 订单意图 → 风控 → 审批 → 执行适配器
├── data/ # 多源数据层与 auto 降级
├── backtest/ # 回测引擎(与实盘同构)
├── assistant/ # AI 助手主 Agent、prompt、工具面
├── knowledge/ # 私有知识库与图谱
├── swarm/ # 多智能体 DAG 编排
├── tools/ # in-process 工具
├── observability/ # OpenTelemetry
├── debug/ # 调试会话与结构化事件
├── models/ # 模型调用记录
├── persistence/ # SQLAlchemy 模型 / repository / serializer
├── api/ # FastAPI app
└── cli/ # doyoutrade-cli
frontend/ # React 控制台
qmt-proxy/ # Windows 端 QMT REST 代理
alembic/ # 数据库迁移
docs/ # 设计文档、E2E 指南
tests/ # stdlib unittest + E2E
测试与进阶文档
make test # Python 单元测试
make test-e2e # E2E(isolated profile)
npm --prefix frontend run build # 前端 type check
npm --prefix frontend run test # 前端 vitest
源码仓库内: