QuantDinger 完全指南:自托管 AI 量化交易平台从入门到精通
posts posts 2026-04-29T20:14:04+08:00QuantDinger 是一个开源自托管 AI 量化操作系统,集 AI 市场研究、Python 策略开发、回测与实盘交易于一体,支持加密货币、IBKR 股票和 MT5 外汇。一键 Docker 部署,适合想完整掌控策略研发到执行全流程的量化开发者与团队。技术笔记AI, 量化交易, Python, Docker, 加密货币, IBKR, MT5学习目标
读完本文后,你将能够:
- 说清 QuantDinger 的产品定位,以及它与传统量化工具栈的根本区别
- 理解系统架构各层(前端 / Flask API / PostgreSQL / Redis / 交易层)
- 配置 AI 层,接入 OpenRouter、OpenAI、Gemini、DeepSeek 等 LLM 提供商
- 用 Docker Compose 完成从零部署,包含密钥生成与首次验证
- 编写
IndicatorStrategy(基于 DataFrame 的信号策略)和ScriptStrategy(事件驱动的运行时策略) - 接入加密货币交易所( Binance、OKX、Bitget、Bybit 等)、IBKR 股票和 MT5 外汇
- 配置多用户系统、会员计划、积分和 USDT 计费体系
- 评估 QuantDinger 是否适合你的交易场景,并制定进阶路径
什么是 QuantDinger
QuantDinger 是一个自托管的本地优先量化平台:AI 辅助研究、Python 原生策略、回测验证和实盘执行(加密货币 / IBKR 股票 / MT5 外汇),全部集中在同一个产品里——不是一堆互不关联的脚本和 SaaS 标签页的拼接。
它解决的核心问题是:大多数量化交易者拼凑出来的工具链,割裂得厉害。图表工具一套、Python 脚本一套、Bot 运行器一套、通知堆栈又一套。QuantDinger 把这些整合进同一个可部署栈,并让 AI 真正嵌入工作流内部,而不是在旁边旁观。
项目于 2025-12-28 创建,2026-04-29 仍有活跃更新,目前 2568 Stars、576 Fork,是当前 GitHub 趋势项目。
系统架构详解
QuantDinger 的架构在同类型开源项目中属于完整度较高的。整栈包含前端、应用层、数据层和外部集成四大块。
前端层
前端是预编译的 Vue 应用,由 Nginx 在 Docker 容器内提供服务。开发者不需要安装 Node.js,因为 frontend/dist/ 目录里已经包含了构建好的静态资源。这降低了部署门槛,也意味着你可以直接用 docker-compose up 拉起整栈,而不需要关心前端构建流水线。
如果你需要定制前端 UI,官方在 QuantDinger-Vue 仓库提供了前端源码,采用独立的源码可用许可证(QuantDinger Frontend Source-Available License v1.0),非商业用途可免费使用,商业用途需单独授权。
应用层(Flask API)
后端核心是 Flask API 网关,用 Python 实现。路由层(app/routes/)暴露 REST 接口,供前端调用;服务层(app/services/)则承载了 AI 分析、交易执行、计费、回测等核心逻辑。
这种 Flask + Python 服务的结构,对量化开发者非常友好。如果你熟悉 Flask 或 FastAPI,可以相对容易地理解接口设计逻辑,甚至自行扩展新的交易接口或数据源适配器。
数据层(PostgreSQL + Redis)
| 组件 | 用途 |
|---|---|
| PostgreSQL 16 | 用户数据、策略快照、交易历史、会员信息、计费记录 |
| Redis 7 | Worker 支撑、运行时状态协调、缓存 |
Redis 在架构中主要承担两类职责:一是作为 Celery 等异步任务的消息队列(如果启用了 pending order worker、portfolio monitor 等);二是作为运行时缓存层,存储正在运行策略的状态信息。PostgreSQL 则是唯一的事实来源,所有用户、策略、订单数据都持久化在其中。
交易层
交易层的核心设计是适配器模式。不同交易所、券商和 MT5 作为外部集成,通过统一的执行适配器与 API 交互。目前支持的交易接口包括:
- 加密货币:Binance(现货 / 期货 / 杠杆)、OKX、Bitget、Bybit、Coinbase、Kraken、KuCoin、Gate.io、Deepcoin、HTX
- 传统市场:IBKR(美国股票,通过 IBKR API)、MT5(外汇)、Finnhub(数据源)
- 预测市场:Polymarket(仅作为研究工作流,不是实盘执行)
这种适配器设计的好处是:策略代码本身与具体交易接口解耦。同一个 Python 策略,可以在回测时用历史数据跑,在实盘时无缝切换到 Binance 或 IBKR,无需改动策略逻辑。
AI 层
AI 层不是简单把 LLM ChatGPT 加到交易 App 里,而是深度嵌入到研究与策略工作流中:
- AI 市场分析:结构化输出,支持配置多个 LLM 提供商(OpenRouter / OpenAI / Gemini / DeepSeek 等)
- 自然语言 → Python 策略代码:用自然语言描述策略思路,AI 生成初始代码骨架
- 回测反馈 AI 分析:回测结果可以喂给 AI,由 AI 给出参数优化或风险调整建议
- 多模型 Ensemble:支持多模型 Ensemble 配置、置信度校准和 Reflection 风格 Worker
安装与部署
QuantDinger 最友好的地方之一就是一键部署。核心依赖只有 Docker + Docker Compose,不需要 Node.js,不需要 Python 环境(构建在 Docker 镜像内),不需要手动初始化数据库(init.sql 由 migrations 自动处理)。
环境准备
确保宿主机已安装:
- Docker + Docker Compose v2
- Git
部署步骤(macOS / Linux)
git clone https://github.com/brokermr810/QuantDinger.git
cd QuantDinger
cp backend_api_python/env.example backend_api_python/.env
chmod +x scripts/generate-secret-key.sh
./scripts/generate-secret-key.sh
docker-compose up -d --build第一步是克隆代码仓库;第二步把官方环境变量模板复制为实际配置文件;第三步生成一个随机的 SECRET_KEY,API 启动时如果发现 SECRET_KEY 仍是默认值,会拒绝启动——这是一个防止意外裸奔的安全设计;第四步构建并启动全栈。
部署步骤(Windows)
Windows 用户推荐使用 PowerShell(不是 CMD):
git clone https://github.com/brokermr810/QuantDinger.git
cd QuantDinger
Copy-Item backend_api_python\env.example -Destination backend_api_python\.env
$key = py -c "import secrets; print(secrets.token_hex(32))"
(Get-Content backend_api_python\.env) -replace '^SECRET_KEY=.*$', "SECRET_KEY=$key" | Set-Content backend_api_python\.env -Encoding utf8
docker-compose up -d --build验证安装
| 检查项 | 地址 |
|---|---|
| Web UI | http://localhost:8888 |
| API 健康检查 | http://localhost:5000/api/health |
| 查看后端日志 | docker-compose logs -f backend |
默认管理员账号:quantdinger / 123456。首次登录后立即修改密码,不要在生产环境使用默认凭证。
自定义端口与镜像源
在项目根目录创建 .env 文件(与 docker-compose.yml 同级):
FRONTEND_PORT=3000
BACKEND_PORT=127.0.0.1:5001
IMAGE_PREFIX=docker.m.daocloud.io/library/如果 Docker Hub 拉取较慢,可以用 IMAGE_PREFIX 指定镜像加速源。
启用 AI 功能
AI 分析和自然语言生成策略需要至少一个 LLM 提供商。打开 backend_api_python/.env,找到 AI / LLM 区块,填入对应密钥:
LLM_PROVIDER=openrouter
OPENROUTER_API_KEY=sk-your-key-here支持的提供商包括 OpenRouter、OpenAI、Gemini、DeepSeek 等。修改后重启后端:docker-compose restart backend。
云端生产部署
官方提供了详细的云端部署指南(docs/CLOUD_DEPLOYMENT_EN.md),覆盖域名、HTTPS、反向代理(如 Nginx / Caddy)和生产级 TLS 配置。如果你要面向外部用户提供服务,这是必读的文档。
Python 策略开发
QuantDinger 支持两种策略编写模式,开发者应根据场景选择合适的模式。
IndicatorStrategy:基于 DataFrame 的信号策略
这种模式适合研究阶段、指标逻辑验证和可视化策略原型。策略核心逻辑围绕 DataFrame 计算,df 列包含历史 K 线数据(open、high、low、close、volume 等)。
策略通过返回 df["buy"] 和 df["sell"] 布尔列来标记交易信号,平台自动将信号渲染到图表上并执行信号风格回测。
示例:双均线交叉策略
# @param sma_short int 14 短期均线周期
# @param sma_long int 28 长期均线周期
sma_short_period = params.get('sma_short', 14)
sma_long_period = params.get('sma_long', 28)
my_indicator_name = "Dual Moving Average Strategy"
my_indicator_description = f"SMA {sma_short_period}/{sma_long_period} crossover"
df = df.copy()
sma_short = df["close"].rolling(sma_short_period).mean()
sma_long = df["close"].rolling(sma_long_period).mean()
buy = (sma_short > sma_long) & (sma_short.shift(1) <= sma_long.shift(1))
sell = (sma_short < sma_long) & (sma_short.shift(1) >= sma_long.shift(1))
df["buy"] = buy.fillna(False).astype(bool)
df["sell"] = sell.fillna(False).astype(bool)@param 注解声明策略参数,参数在 UI 上以表单形式暴露给运营者调节。策略名称和描述用于在平台内标识和检索。完整的示例脚本见 docs/examples/dual_ma_with_params.py、docs/examples/multi_indicator_composite.py 和 docs/examples/cross_sectional_momentum_rsi.py。
ScriptStrategy:事件驱动的运行时策略
这种模式适合需要状态管理、精确订单控制、与实盘运行逻辑严格对齐的策略。核心接口是两个事件钩子:
on_init(ctx):策略初始化时执行,用于设置参数、订阅合约、初始化状态on_bar(ctx, bar):每根 K 线到达时执行,策略在此判断并执行交易动作
订单通过 ctx.buy()、ctx.sell()、ctx.close_position() 显式控制。平台负责处理订单路由、交易所适配和持仓跟踪,策略作者只需要关心交易逻辑本身。
跨截面策略
QuantDinger 还支持跨截面(Cross-Sectional)策略,即在多个标的之间比较信号强度,选取最优者交易。官方文档中有专门的跨截面策略指南,适合多标的轮动或相对强弱类策略。
多市场接入
加密货币
QuantDinger 通过统一的执行适配器接入主流加密货币交易所。Binance、OKX、Bitget、Bybit、Coinbase、Kraken、KuCoin、Gate.io、Deepcoin、HTX 均已在支持列表中,覆盖了现货、期货和杠杆交易。
接入时在平台 UI 的 Profile → API Keys 页面配置交易所 API Key 和 Secret,然后通过"测试连接"验证连通性。建议先用现货小额度测试,确认信号和下单逻辑正确后,再考虑启用期货或大额仓位。
IBKR 股票
美国股票通过 IBKR(Interactive Brokers)接入。需要先在本地安装 IBKR Gateway 或 TWS(Trader Workstation),QuantDinger 通过 IBKR API 与其通信。
官方提供了详细的英文集成指南:docs/IBKR_TRADING_GUIDE_EN.md。核心步骤包括:配置 IBKR Gateway 连接信息、验证账户权限、在平台内绑定 IBKR 账户、测试订单路由。
MT5 外汇
MT5(MetaTrader 5)用于外汇交易。QuantDinger 提供了中英文集成指南(docs/MT5_TRADING_GUIDE_EN.md 和 docs/MT5_TRADING_GUIDE_CN.md)。
MT5 接入通常需要:一台 Windows 或 Windows Server(MT5 本身是 Windows 软件)、MT5 终端保持在线并连接经纪商服务器、QuantDinger 通过 MT5 API(mt5api)与之通信。
Polymarket 预测市场
Polymarket 作为研究工作流集成进来,不提供平台内实盘执行。通过 AI 分析预测市场的隐含概率,与主流资产价格交叉比较,发现偏差和机会信号。这是目前量化平台中相对少见的能力,适合做宏观事件驱动研究的团队。
多用户与计费系统
多用户系统
QuantDinger 内置基于 PostgreSQL 的多用户系统,支持基于角色的访问控制(RBAC)。不同用户可以看到自己的策略、持仓和交易历史,管理员可以看到全局数据。
支持 OAuth 登录(Google 和 GitHub),在 backend_api_python/.env 中配置 GOOGLE_CLIENT_ID / GITHUB_CLIENT_ID 即可开启。
会员与积分体系
计费系统可通过 BILLING_ENABLED=true 开启。内置功能包括:
- 会员计划:月度会员设置价格
MEMBERSHIP_MONTHLY_PRICE_USD和每月积分MEMBERSHIP_MONTHLY_CREDITS - 积分消费:每次 AI 分析扣减积分
BILLING_COST_AI_ANALYSIS,支持按行为计费 - USDT TRC20 支付:通过 TronGrid API 集成,启用
USDT_PAY_ENABLED=true,配置USDT_TRC20_XPUB和TRONGRID_API_KEY
这套计费体系对于想基于 QuantDinger 构建商业化量化工具的团队很有价值。你可以直接面向终端用户提供会员订阅或按次付费,而不需要从零实现支付和计费模块。
安全配置
生产部署强烈建议修改以下配置项:
ADMIN_PASSWORD=your-strong-password-here
ENABLE_REGISTRATION=false # 或 true,但开启 CAPTCHA
TURNSTILE_SITE_KEY=your-cloudflare-turnstile-key同时确保 FRONTEND_URL 设置为你实际对外提供服务的 URL(包括 https://),否则 CORS 和重定向可能异常。
AI 能力深度解析
为什么说 AI 真正嵌入了工作流
大多数"AI 交易工具"的做法是把 LLM 对话窗口放在界面上,用户自己去问"BTC 会不会涨"。这种做法有两个问题:一是 AI 输出与实际策略没有连接,二是分析结果无法沉淀为可执行的策略代码。
QuantDinger 的做法不同。AI 市场分析结果会存入历史记录,供后续对比和校准;AI 生成的策略代码直接在 Indicator IDE 或 Script IDE 中可编辑、可回测、可实盘——不是生成一段描述,而是生成真正可执行的 Python;回测结果可以反馈给 AI,AI 根据亏损来源和参数敏感性给出改进建议。
多模型 Ensemble
通过配置 ENABLE_AI_ENSEMBLE=true 和 AI_ENSEMBLE_MODELS 参数,可以同时让多个 LLM 响应同一个分析请求,聚合输出以提高稳定性。这类似于机器学习中的集成学习——单一模型可能产生幻觉,但多模型投票的结论可信度更高。
Reflection Worker
ENABLE_REFLECTION_WORKER=true 启用 Reflection 风格 Worker,AI 会主动审视自己的历史分析,发现偏差和矛盾,供后续分析参考。这是更进阶的自校准机制,适合对 AI 分析质量要求较高的专业用户。
适用场景与优势
适合谁用
- 有 Python 基础的量化开发者:不想学艰深的量化框架语法,直接用自己熟悉的 Python 写策略
- 自托管交易者:不想把账户密钥交给第三方 SaaS,希望基础设施完全自主可控
- 小团队或工作室:需要多用户、计费、会员体系,但不想从零搭建产品后台
- AI 原生开发者:想把 AI 分析、NLP → 代码生成、回测反馈串成完整工作流
不适合谁
- 完全不懂 Python 的交易者:QuantDinger 的策略层要求用户能阅读和修改 Python 代码
- 追求"保证盈利策略"的投机者:平台提供的是研究和执行工具,不是已验证的 Alpha 策略库
- 高频交易者:当前架构不适合极低延迟(HFT)场景,更适合日频到低频的量化策略
相比拼凑方案的优势
| 拼凑方案 | QuantDinger |
|---|---|
| AI 工具与策略逻辑割裂 | AI 生成代码 → 直接在 IDE 编辑 → 回测,全链路连通 |
| 图表、脚本、Bot、通知各在一处 | 同一个平台,共享同一套数据层 |
| SaaS 平台密钥不在自己手里 | 自托管,PostgreSQL + Redis 全在本地 |
| 商业化需要另起后台 | 内置多用户 + 会员 + USDT 计费,开箱即用 |
首次使用建议路线
官方文档建议了一个合理的上手路径,按这个顺序操作可以尽早暴露配置问题:
- 先跑 AI 资产 / 市场分析:验证 LLM 接口和数据通路是否正常
- 打开 Indicator IDE,加载一个交易标的,运行信号回测(缩小日期范围)
- 用 AI 代码生成起草一个指标,然后在 Python 编辑器里手动修改,验证修改生效
- 配置交易所 API Key(Profile → Credentials),点"测试连接"确认连通性
- 用 Quick Trade(非自动化的手动交易)走一遍从分析到下单的完整流程
- 启用实盘策略,从模拟或极小仓位开始验证策略行为
按这个顺序上手,可以在不冒真实资金风险的前提下,把整条链路跑通。
进阶路径
扩展数据源
目前平台已支持 Finnhub、Tiingo、Twelve Data 等数据 API。配置对应的 FINNHUB_API_KEY、TIINGO_API_KEY、TWELVE_DATA_API_KEY 后即可接入。还可以通过自定义数据适配器接入其他数据源,满足特殊市场或数字资产的数据需求。
策略迭代与参数优化
利用 AI 回测反馈识别策略的参数敏感性。用 IndicatorStrategy 做粗粒度的参数扫描,找到 promising 区间后,再用 ScriptStrategy 实现更精细的执行逻辑。
多策略组合
平台支持多个策略同时运行(通过 STRATEGY_MAX_THREADS 控制并发上限)。可以尝试将趋势跟随策略和均值回归策略同时跑在不同标的或时间周期上,构建一个简单的多策略组合。
云端弹性部署
随着策略和用户量增长,可以将 Docker Compose 部署迁移到云服务器(如 AWS EC2、阿里云 ECS),使用 Nginx 或 Caddy 做反向代理和 HTTPS 终结。官方云端部署指南覆盖了这一场景。
商业化探索
利用内置的会员计划、积分体系和 USDT 支付,构建面向他人的量化工具订阅服务。Apache 2.0 许可证对后端商业使用友好,前端需单独评估 QuantDinger Frontend Source-Available License 的适用范围。
文档与社区资源
小结
QuantDinger 是一个在开源量化领域中完整度相当高的项目。它真正有辨识度的地方在于三点:
第一,AI 不是旁观者,而是工作流内部的参与者。 从市场分析、策略代码生成,到回测反馈和置信度校准,AI 贯穿研究与执行的各个阶段,而不是仅作为一个聊天框存在。
第二,Python 策略层与交易执行层彻底解耦。 IndicatorStrategy 和 ScriptStrategy 两套模式,覆盖了从研究到实盘的完整策略研发路径,而交易所适配器让同一条策略可以在不同市场、不同券商之间无缝切换。
第三,开箱即用的商业化 primitives。 多用户系统、会员计划、积分消费和 USDT 支付,对于想基于量化平台做商业化产品的团队来说,这套基础设施已经相当完整。
如果你正在寻找一个可以真正从想法到实盘、一站式托管、且 AI 深度嵌入的量化平台,QuantDinger 值得认真研究。