Panda Quantflow 全量源码深度解析文档
本文档集是对 PandaAI QuantFlow 量化交易系统的全方位代码审计与架构解析。文档基于源码工程编写,旨在为开发者提供从系统启动、核心模块实现到扩展开发的完整指南。
📖 目录 (Table of Contents)
🔭 项目概览 (Project Overview)
Panda QuantFlow 是一个基于 Python 的模块化量化交易系统,集成了工作流编排、事件驱动回测、实盘交易与 AI 赋能(LLM/ML)功能。
- 核心语言: Python 3.12
- 前端框架: Vue/React (SPA)
- 数据存储: MongoDB (行情/交易记录), Redis (实时状态/缓存)
- 消息队列: RabbitMQ (分布式通信)
📂 项目结构 (Project Structure)
src/ ├── panda_server/ # [中枢] FastAPI 后端,负责 API、工作流编排与消息分发 ├── panda_web/ # [界面] 前端静态资源、构建产物与 Monaco Editor 引擎 ├── panda_plugins/ # [插件] 工作流节点集合 ├── panda_trading/ # [实盘] 交易引擎,包含 CTP 接口、风控层与订单路由 ├── panda_backtest/ # [回测] 事件驱动回测引擎,支持股票/期货模拟撮合 ├── panda_ml/ # [算法] 机器学习模型抽象基类与接口定义 ├── common/ # [基建] 日志、配置管理、数据库连接器 (Mongo/Redis) ├── panda_schedule/ # [调度] 任务调度服务,负责定时任务管理与执行 └── main.py # 系统统一启动入口
🧩 核心模块详解 (Modules)
系统源码按功能模块划分为以下子文档,点击链接查看深度解析:
| 模块 | 职责与核心功能 | 核心文档 |
|---|---|---|
| Panda Server | 中枢大脑。提供 RESTful API、工作流引擎 (Workflow Engine)、LLM 助手接口。 | 📄 panda_server.md |
| Panda Backtest | 回测引擎。基于事件驱动架构,支持多品种(股票/期货)历史回测与模拟撮合。 | 📄 panda_backtest.md |
| Panda Trading | 实盘引擎。对接 CTP 柜台,实现多层级风控、算法交易与订单路由管理。 | 📄 panda_trading.md |
| Panda Plugins | 插件系统。基于 BaseWorkNode 规范,提供丰富的内置节点(因子/ML)及动态加载机制。 |
📄 panda_plugins.md |
| Panda Web | 前端界面。基于 Vue/React 的可视化编排器,集成 Monaco Editor 代码编辑体验。 | 📄 panda_web.md |
| Common | 基础设施。提供全局配置加载、结构化日志、数据库连接池及通用工具库。 | 📄 common.md |
| Panda ML | 机器学习。定义 ML 模型的统一接口规范,支持 XGBoost/LSTM 等算法集成。 | 📄 panda_ml.md |
| Panda Schedule | 任务调度。定时任务管理接口(底层主要复用 common/cron 或 Server 调度器)。 |
📄 panda_schedule.md |
🔗 启动链路 (Startup Chain)
🚀 启动链路深度逆向分析
- 入口分析: 从
main.py开始,详解 FastAPI 生命周期 (lifespan)。 - 初始化流程: 数据库连接 -> 插件动态加载 (
load_all_nodes) -> 路由注册 -> 中间件挂载。 - 包含图表: 启动时序图 (Sequence Diagram) 与 核心依赖图谱。
💡 关键概念交叉索引 (Key Concepts)
核心流程
- 工作流执行:
panda_server/utils/run_workflow_utils.py-> Server 文档 - 节点注册:
@work_node装饰器 -> Plugins 文档 - 实盘风控:
RiskControlManager-> Trading 文档
数据流向
- 行情接入:
panda_backtest(回测) /real_trade_api(实盘) - 因子计算:
panda_plugins/internal/factor_build_node.py - 信号生成:
panda_plugins(ML模型 / 规则) - 订单执行:
panda_trading/extensions/real_trade-> CTP