QuantCell 是一款 AI 原生的量化交易系统,以 axon-quant(Rust 核心)为交易引擎,以 FastAPI 为服务框架、React + TypeScript 为前端,提供从策略开发、回测验证到实盘部署的全流程能力。
核心设计理念:让量化交易变得简单、高效、智能——自然语言即可描述策略,AI 自动生成代码并完成回测验证。
支持 macOS / Windows / Linux 桌面端。桌面版复用同一套 frontend/ 代码,通过 Tauri 壳内嵌,
并在壳内自动拉起本地 backend(FastAPI + axon-quant)sidecar 进程,local 模式免登录直达。
按 CPU 架构选择安装包:
| 平台 | 架构 | 安装包 |
|---|---|---|
| macOS(Apple 芯片 M1/M2/M3/M4) | aarch64 | QuantCell_<ver>_aarch64.dmg |
| macOS(Intel) | x86_64 | QuantCell_<ver>_x64.dmg |
| Windows | x86_64 | QuantCell_<ver>_x64.msi / .exe |
| Linux | x86_64 | quantcell_<ver>_amd64.deb / .AppImage |
- 下载位置:GitHub Actions artifacts(
quantcell-desktop-*),tagv*触发时自动生成 - 未签名:macOS 首次打开需右键 → 打开;Windows 提示未知发布者,点击「仍要运行」
- CI 打包 workflow:
.github/workflows/desktop-build.yml,手动workflow_dispatch或打v*tag 触发
详细桌面端开发与打包说明见 desktop/README.md。
- 自然语言策略生成:中文描述交易想法,AI 自动生成可执行策略代码
- 思维链推理:多步骤策略生成与指标生成,逻辑可解释、可追溯
- 代码质量自检:自动校验语法与运行时安全,拒绝不安全代码
- 智能 Agent:具备记忆与工具调用能力的 AI Agent,可进行多轮对话与操作编排
- Rust 核心驱动:底层采用
axon-quant 0.11.1,事件驱动架构 - 多数据源回测:支持 K 线、Tick、衍生数据(Deriv)、OrderBook 等数据适配器
- Walk-Forward 验证:滚动窗口回测,防止过拟合
- HPO 超参优化:内置超参数优化框架
- Gymnasium 量化环境:内置交易 Gym 环境
- Stable-Baselines3:支持 PPO / SAC / DQN 等主流算法
- 完整生命周期:训练 → 回测 → 评估,支持 Walk-Forward 验证
- 插件安装与管理:通过
quantcell plugin命令安装、打包、管理插件 - 事件总线:插件间通过统一事件总线通信
- 安全沙箱:插件在受限沙箱中运行,保障主进程安全
- 凭证加密存储:交易所 API 密钥加密入库,
quantcell account统一管理 - 风险引擎:交易风险指标监控、止损与持仓风控
- 多语言界面:内置 i18n 国际化
- 多交易所:Binance(实盘 / 纸面 / 归档)、OKX 适配器
- 实时行情:WebSocket 实时订阅、分发与持久化
- Parquet 存储:列式存储,高效读写
- 数据质量检测:缺失值检测、自动回补与归档修复
- React 18 + TypeScript + Vite:类型安全的组件化开发
- Ant Design 6:企业级 UI 组件库
- KLineCharts / ECharts:专业级 K 线与指标图表
- Zustand + Immer:轻量高效的全局状态
- i18n 国际化:中英文无缝切换(i18next)
- Monaco 编辑器:内置代码编辑器
┌──────────────────────────────────────────────────────────┐
│ 前端 (React + TypeScript) │
│ Ant Design 6 · KLineCharts · Zustand · i18n │
└──────────────────────────┬───────────────────────────────┘
│ HTTP / WebSocket
┌──────────────────────────▼───────────────────────────────┐
│ API Layer (FastAPI) │
│ CORS · JWT 校验 · 异常处理 · 多组业务路由 · /ws/worker │
└──────┬───────────────┬────────────────┬───────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 策略与回测 │ │ 实时交易 │ │ 数据采集 │
│ strategy/ │ │ realtime/ │ │ collector/ │
│ backtest/ │ │ engine/ │ │ quality/ │
│ rl / factor │ │ worker/ │ │ model/ │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────────────────┐
│ axon-quant (Rust) · Binance / OKX · DuckDB + Parquet │
└──────────────────────────────────────────────────────────┘
▲ ▲ ▲
┌──────┴──────┐ ┌──────┴──────┐ ┌──────┴──────┐
│ Agent │ │ CLI │ │ 插件 │
│ agent/ │ │ quantcell │ │ plugins/ │
│ ai_model/ │ │ 13 组命令 │ │ 事件总线 │
└─────────────┘ └─────────────┘ └─────────────┘
| 类别 | 技术 |
|---|---|
| 后端语言 | Python 3.14 |
| Web 框架 | FastAPI 0.136(uvicorn) |
| 交易引擎 | axon-quant 0.11.1(Rust 核心) |
| 数据库 | DuckDB 1.4 + Parquet + SQLAlchemy 2 + Alembic |
| 数据处理 | Pandas 2.3 / PyArrow 22 |
| 强化学习 | Gymnasium 1.3 + Stable-Baselines3 2.9 |
| 命令行 | Typer 0.20 |
| 前端框架 | React 18 + TypeScript + Vite 7 |
| UI 组件 | Ant Design 6 + TailwindCSS 4 |
| 图表 | KLineCharts 10 + ECharts 5.5 |
| 状态管理 | Zustand 5 + Immer |
| 国际化 | i18next / react-i18next |
| 包管理 | uv(后端)/ bun(前端) |
| 代码规范 | ruff(lint + format) |
| 测试 | pytest 9 + coverage(覆盖率基线 57%) |
QuantCell/
├── backend/ # FastAPI 后端
│ ├── main.py # 应用入口(路由注册、CORS、异常处理)
│ ├── pyproject.toml # 依赖与 quantcell CLI 入口(uv 管理)
│ ├── init_db.py / run_migrations.py # 数据库初始化和迁移
│ ├── alembic/ # 数据库迁移脚本
│ ├── agent/ # AI Agent(会话、技能、工具、API)
│ ├── ai_model/ # 策略生成(思维链、代码校验、模板库)
│ ├── api/ # 服务路由(模型注册/集成/风控/RL)
│ ├── axon_bridge/ # axon-quant 桥接层
│ ├── backtest/ # 回测(事件驱动、HPO、滚动验证)
│ ├── cli/ # quantcell 命令 (13 组)
│ ├── collector/ # 数据采集(K线/衍生/归档/质量)
│ ├── common/ # 公共服务(通知等)
│ ├── core/ # 生命周期、端口管理、调度器
│ ├── credentials/ # 账户凭证加密存储
│ ├── engine/ # 交易引擎与部署
│ ├── exchange/ # 交易所适配(Binance/OKX)
│ ├── factor/ indicators/ model/ # 因子/指标计算/模型服务
│ ├── plugins/ # 插件系统(事件总线、沙箱、API)
│ ├── realtime/ # 实时行情引擎
│ ├── rl/ # 强化学习(训练/评估/滚动验证)
│ ├── services/ # 业务服务层(风控/OMS/集成)
│ ├── settings/ # 系统设置与配置 API
│ ├── share/ # 分享系统
│ ├── strategy/ # 策略系统(模板/循环/实盘)
│ ├── websocket/ # WebSocket 路由
│ ├── worker/ # Worker 系统(实盘执行)
│ └── tests/ # 单元与集成测试
├── frontend/ # React 前端(Vite + antd 6)
├── docs/ # 技术文档
├── scripts/ # 辅助脚本
├── ui/ # 微前端壳
├── i18n/ # 国际化资源
├── logs/ # 运行日志
├── agent_workspace/ # Agent 工作区
├── install.sh # 一键安装脚本
└── README.md # 本文件
| 组件 | 版本 |
|---|---|
| Python | 3.14 |
| Node.js | 18+ |
| uv | latest |
| bun | latest |
git clone https://github.com/pengwow/quantcell.git
cd quantcell
bash install.shinstall.sh 支持 --minimal / --full / --extra 安装模式,并自动处理 uv、bun 工具链与前后端环境。
后端
cd backend
uv sync # 安装依赖并生成 quantcell CLI 入口
python init_db.py # 初始化数据库前端
cd frontend
bun installcd backend
uvicorn main:app --host 0.0.0.0 --port 8000访问接口文档:http://localhost:8000/docs
前端(开发模式):
cd frontend
bun run dev安装后(uv sync)即生成 quantcell 命令,共 13 组子命令:
$ quantcell --help
Usage: quantcell [OPTIONS] COMMAND [ARGS]...
QuantCell 命令行工具
Commands:
agent Agent 管理命令行工具
market 市场数据命令行工具
news 新闻与市场情绪工具
plugin 插件管理命令行工具
rl RL 命令行工具
web Web 搜索与抓取工具
worker Worker 管理命令行工具
tests QuantCell 测试运行脚本
account 凭证管理(add/list/remove)
migrate 数据库迁移(SQLite schema 升级)
strategy 策略管理命令行工具
backtest QuantCell 回测工具(事件驱动引擎 axon-quant)
data 数据管理命令行工具
安装完成后(
uv sync),quantcell可执行文件即生成于 Python 环境 bin 目录(如backend/.venv/bin/quantcell),可直接在任意目录使用,例如quantcell --help。
| 任务 | 命令 |
|---|---|
| 列出策略 | quantcell strategy list |
| AI 生成策略 | quantcell strategy generate --requirement "双均线金叉买入" --name my_strategy |
| 运行回测 | quantcell backtest run --symbols BTCUSDT --timeframes 1h --initial-capital 100000 |
| 下载行情数据 | quantcell data download --symbol BTCUSDT --interval 1d |
| 数据质量检查 | quantcell data quality check --start 20240101 --end 20241231 |
| 从 CSV 导入数据 | quantcell data import csv <文件路径> |
| 查看市场行情 | quantcell market fetch --symbol BTCUSDT --interval 1h |
| 训练 RL 模型 | quantcell rl train --symbol BTCUSDT --algorithm ppo --timesteps 100000 |
| 启动 Worker | quantcell worker start <worker_id> |
| 查看 Worker | quantcell worker list-workers |
| 查看账户 | quantcell account list |
| 迁移数据库 | quantcell migrate -y |
| 跑单元测试 | quantcell tests main --unit |
| 安装插件 | quantcell plugin install x.zip |
在【前端对话界面】输入,或在命令行直接生成:
quantcell strategy generate \
--requirement "基于双均线的趋势跟踪策略,快线 10 天、慢线 30 天,金叉买入、死叉卖出" \
--name dual_ma系统自动完成:理解需求 → 生成代码 → 安全校验 → 回测验证 → 输出报告。
quantcell backtest run \
--symbols BTCUSDT \
--timeframes 1h \
--initial-capital 100000Python 方式(详细用法见 backend/backtest/README.md):
from backtest.engine_service import BacktestEngine
from backtest.data_provider import BacktestDataProvider
provider = BacktestDataProvider() # 数据提供者(Parquet/CSV)
engine = BacktestEngine(data_provider=provider)
result = engine.run_backtest(
strategy_name="dual_ma",
strategy_params={"fast": 10, "slow": 30},
symbols=["BTCUSDT"],
timeframes=["1h"],
data_type="kline",
market="spot",
)
print(result) # 返回含收益率/最大回撤/成交记录等指标的 dictquantcell rl train \
--symbol BTCUSDT \
--algorithm ppo \
--timesteps 100000 \
--reward sharpe
# 一键生命周期: 训练 → 回测 → 评估 → 重训练
quantcell rl lifecycle --symbol BTCUSDT --train-steps 30000 --retrain-steps 10000项目内置多种策略模板(backend/strategy/templates/),可直接使用或作为开发参考:
| 模板 | 说明 |
|---|---|
dual_ma.py |
双均线交叉策略 |
sma_crossover.py |
SMA 交叉策略 |
grid.py |
网格交易策略 |
mean_reversion.py |
均值回归策略 |
momentum.py |
动量策略 |
trend_follow.py |
趋势跟踪策略 |
cross_sectional.py |
截面策略 |
llm_signal.py |
LLM 信号策略 |
funding_arbitrage.py |
资金费率套利 |
mean_reversion_rl.py |
强化学习均值回归 |
from plugins.plugin_base import PluginBase
class MyPlugin(PluginBase):
name = "my-plugin"
version = "1.0.0"
def on_load(self):
self.event_bus.subscribe("strategy:created", self.handle_strategy_created)
def handle_strategy_created(self, event):
pass打包并安装:
quantcell plugin pack ./my-plugin
quantcell plugin install my-plugin.zip后端服务启动后,访问:
- Swagger UI:
http://localhost:8000/docs - ReDoc:
http://localhost:8000/redoc - 健康检查:
http://localhost:8000/health
cd backend
# 单元测试
.venv/bin/python -m pytest tests/unit/ -v
# 集成测试
.venv/bin/python -m pytest tests/integration/ -v
# 或者使用 CLI
quantcell tests main --unit
quantcell tests main --integration覆盖率基线:pyproject.toml 中 fail_under = 57——作为防回归门槛,新增代码应逐步提高覆盖率。
- 在
backend/strategy/templates/创建策略模板(参考dual_ma.py) - 或直接创建新策略文件(如
backend/strategies/my_strategy.py),实现on_bar() - 用
quantcell backtest run验证
- 在
backend/<module>/routes.py中定义APIRouter - 在
backend/main.py中注册 - 业务逻辑放 Service 层,路由层只接收参数调 Service
- 参数校验交 Pydantic Schema
- 编写单元测试和集成测试
- 在
backend/cli/<name>.py定义app = typer.Typer(...)及其命令 - 在
backend/cli/__init__.py的register_commands()中注册子命令 uv sync后即可使用
项目使用 ruff(lint + format):
# 检查
ruff check backend/
# 自动修复
ruff check backend/ --fix
# 格式化
ruff format backend/优雅地使用结构化日志:统一通过 backend/utils/logger.py 记录,不要使用 print。
系统集成了 PortManager,默认自动分配可用端口。也可通过 --port 参数手动指定。
通过前端「设置 → 交易所」页面配置,或在 backend/config/binance_example.yaml 中配置。API 密钥使用 backend/credentials/ 模块加密存储。
检查:1) 数据完整性(quantcell data quality check)2) 用 Walk-Forward 验证 3) 尝试多数据源(data_type / market 参数)。
# Web 服务
uvicorn main:app --reload
# CLI
LOG_LEVEL=DEBUG quantcell backtest run ...utils/timestamp_utils.py 提供统一的时间戳处理工具:
convert_to_datetime()— 自动检测 µs/ms/ns 单位normalize_timestamp_column()— 统一时间列名为timestampvalidate_timestamp_column()— 校验时间列完整性
系统会自动将损坏的 .parquet 文件归档为 .bak 并重新下载。手动恢复可查看 quantcell data archive --help 相关命令。
- Fork 项目到自己的账号
- 创建功能分支:
git checkout -b feat/amazing-feature - 提交代码:
git commit -m 'feat: add amazing feature' - 运行测试:
quantcell tests main - 推送分支并创建 Pull Request
本项目采用 Apache License 2.0。详见 LICENSE 文件。
QuantCell — AI 原生量化交易系统,让量化交易更简单、更高效、更智能。
