> 开源 AI 交易操作系统(Open-source AI Trading OS)。一句话定性:它想把你脑子里「AI 研究 → 策略代码 → 回测 → 模拟/实盘 → 监控」这一整条链路,都收进一套你自己掌控的 Docker 栈里。
—
一、此物何来
QuantDinger 出自 Open Byte Inc.,名字尾缀致敬薛定谔(Schrödinger)——未触发的策略,如匣中之猫,生死未卜。这倒是个贴切的隐喻:量化策略在跑出结果前,谁也不知道它会不会咬人。
它盯着的人群很明确:独立交易者、会写 Python 的策略作者、小团队。这些人有个共同点——想要 GUI、想要 AI 帮忙、想要把 API 密钥攥在自己手里,但不想把策略逻辑和凭证交给任何黑盒信号服务。QuantDinger 反复强调一句话:策略代码、风险设置、凭证、部署,全归操作员所有。
当前主线仓库是 OpenByteInc/QuantDinger,版本 v5.0.17(2026-08-17 提交),490 次提交,仍在密集迭代。值得留一笔:官网「官方渠道」一栏列的是 github.com/brokermr810/QuantDinger,与主线程 OpenByteInc/QuantDinger 路径不一致。做尽调时这点要记上——八成是早先的个人 fork 升格成了组织仓,但对外口径没完全对齐。
—
二、全景速览
| 项 | 内容 |
|---|---|
| 定位 | 自托管 AI 交易操作系统(Trading OS) |
| 星标 | 逾万(各榜单口径 10k–11k),Fork 约 2.1k |
| 许可证 | 后端 Apache 2.0;前端(QuantDinger-Vue)/移动端(QuantDinger-Mobile)为源码可见许可,不含商标权 |
| 主语言 | Python(后端);前端为独立仓,Vue + Ant Design Vue |
| 运行时 | Python 3.12 / PostgreSQL 18 / Redis 8 / Docker Compose |
| 市场 | 加密(Binance、OKX、Bitget、Bybit、Gate、HTX)、股票(IBKR、Alpaca)、外汇 |
| 数据栈 | ccxt、yfinance、akshare、ta-lib、exchange-calendars、finnhub |
| AI 层 | litellm 统一路由,接 OpenRouter / OpenAI 兼容 / Google / DeepSeek / Grok / MiniMax |
| 访问面 | Web、Mobile H5、Human API、Agent Gateway、MCP |
技术选型偏「稳」而非「新」:Flask + Gunicorn 顶 HTTP,Celery 顶有限重试任务,PostgreSQL 落状态,Redis 分缓存与任务两实例。监控可选挂 Prometheus / Grafana / Alertmanager。前端用 KLineCharts 画 K 线、ECharts 画图表,Capacitor 包移动端。这套组合对会 Docker 的工程师很友好,对纯看图表的人则重了些。
—
三、架构拆解:v5 把「长活」从 API 里剔了出去
v5 最有价值的一改,是重画了运行时边界。早先版本 HTTP API 自己攥着长周期交易和调度循环,出了事牵一发动全身。v5 把它们拆成六个各司其职的进程:
| 进程 | 职责 |
|---|---|
migration | 跑完库表结构即退 |
backend | 管 HTTP、鉴权、校验、落持久命令 |
trading-worker | 攥着策略运行时、挂单、券商会话、对账 |
scheduler-worker | 跑组合、部署、付费、信号调度 |
celery-worker | 跑有限可重试的 AI / 回测 / 实验 / 报告 / 维护任务 |
celery-beat | 派发周期性 Celery 任务 |
要点在于分工:长生命周期的策略留在 trading-worker,有限可重试的脏活交给 Celery;缓存 Redis 与任务 Redis 分家,用不同淘汰策略。生产覆盖层还要求非 root、只读根文件系统、丢能力、限资源。这些信号都指向一个判断——作者在认真把它当生产系统打磨,不是玩具。
数据流向大致如此:
flowchart LR C[客户端] –> N[Web/移动前端] N –> A[Flask API] A –> PG[(PostgreSQL)] A –> RC[(Redis 缓存)] A –> RJ[(Redis 任务)] A –> TW[trading-worker] A –> SW[scheduler-worker] CB[celery-beat] –> RJ RJ –> CW[celery-worker] TW –> PG SW –> PG A –> AG[Agent Gateway /api/agent/v1] MCP[MCP Server] –> AG TW –> P[(行情/券商适配器)] A –>|指标| PR[(Prometheus)] PR –> G[Grafana / Alertmanager]
架构文档写得挺老实:它列了一串「高危遗留文件」——trading_executor.py、backtest.py、ai_chat.py、pending_order_worker.py 等,明确说这些是重构靶子,别再往里加功能。对一个开源项目,主动把自家技术债摆上台面,比粉饰要可信。
—
四、策略引擎:Strategy API V2
策略侧是 QuantDinger 的内核。V2 的写法长这样:
def initialize(context): context.set_universe([…]) # 静态宇宙 context.subscribe(“1h”) # 订阅时间框架 context.set_warmup(200) # 预热条数 context.allow_leverage(5) # 仅加密 swap 可声明
def handle_data(context, data): hist = context.get_history(…) context.order_target_percent(…)
三个回调分工清楚:initialize 只做声明式配置(宇宙、订阅、预热、调度、杠杆),不碰行情不下一单,且 context.params 此时还读不到;handle_data 每根完成 bar 触发一次,算信号、下目标仓位单;on_rebalance 给组合策略做定期再平衡(比如每周因子选股)。
编译清单(manifest) 是 V2 的精髓。你写的代码会被静态分析,抽出 universe、subscriptions、frequencies、factors、warmup、leverage 等字段,写进 manifest。POST /api/strategies/verify 能回给你 valid:true 加这张清单。这层设计的好处是:回测和实盘都按同一张清单跑,避免「回测一套、实盘另一套」的漂移。
时间框架 原生支持 1m/3m/5m/15m/30m/1h/4h/1d/1w,最多 8 个,没有月度。多框架不是默认开——作者特意写「Keep multi-timeframe strategies opt-in」,最快的订阅框架当 drivingFrequency 驱动 handle_data。高阶 bar 只在它的 close 不晚于驱动 bar close 时才可见。这套可见性规则细到有点啰嗦,但回测里「未来函数泄漏」恰是最常见的坑,把规则写死反而省心。
风控 是实打实落了地的:单笔可挂 stop_loss_pct、take_profit_pct、trailing_stop_pct、time_limit_seconds;方向模式 long_only / short_only / both / neutral 加密 swap 必须写明,现货强制 long_only;账户层能按总名义、预估保证金、总杠杆、单标名义拒单;strict(默认)模式下手动仓不为零就暂停同侧开仓。回测里 gap 穿阈按 bar 开盘填、intrabar 触价按触发价,保守顺序固定为「止损 → 跟踪 → 时限 → 止盈」。这些不是文档里的漂亮话,是 strategy_live_guard.py、backtest_limits.py 这类文件里真正在跑的逻辑。
—
五、回测与实盘:别把模拟当真金
回测与实盘共享同一套 Order API,差异集中在几处:
– 数据可见性都只有 point-in-time 的完成 bar,订单次根开盘成交,杜绝未来泄漏。
– 保护引擎回测按 bar 回放,实盘走独立价格时钟,不等策略 bar。
– 加密 funding 费在回测里 not_modeled——文档直说没建模,得你自己另算。这是个实打实的坑:做 swap 策略若只看回测曲线,资金费率会悄悄吃掉你一大块收益。
– 调度时区回测用市场数据时钟,实盘走「用户时区 → 服务器 TZ → UTC」。
– 部署起点不同:新建 deployment 默认 stopped,得显式启动。
TechMoon 2026 年 7 月的梳理点得很准:回测引擎的时间处理与绩效 metric 计算,是那波议题的「主战场」。正式上实盘前,先在 paper trading 把你想用的策略类型完整跑一遍。这话不中听但中肯。
—
六、Agent 与 MCP:把授权闸门焊死
这是 QuantDinger 区别于老牌框架(Freqtrade 之流)的地方。它专门开了 Agent 入口 /api/agent/v1,并配套一个独立 MCP server(quantdinger-mcp),能让 Cursor、Claude Code、Codex 这类客户端调用「已批准的工具」,而不是直接摸到券商凭证或管理员 JWT。
MCP 工具面铺得很开:市场发现、K 线、因子、自选、指标编写、策略模板/源码库、回测提交、任务流、运行时巡检、券商观测、信号告警、快速下单、组合读取、紧急停止。每个会改状态(W/B/N/T)的工具都要求调用方自带 idempotency_key;stop_strategy 要 confirm_stop=true,place_quick_order 要 confirm_order=true,实盘能力 token 还要 confirm_live_trading=true。
想把 Agent 放出去做实盘,得过四道关:交易范围 token + paper_only=false + 服务端 AGENT_LIVE_TRADING_ENABLED=true + 操作员限额/白名单。紧急停止更狠——确认后尝试撤销 Agent 发起的实盘单、清掉 paper 单、吊销租户内所有 T token,并报告哪些交易所撤单还需人跟。这套「确认即意图」的设计,对我这种担心智能体半夜乱动仓的人来说,是加分项。
—
七、安全模型
– 券商凭证 / MFA 密钥用 CREDENTIAL_ENCRYPTION_KEY 加密落库。
– Agent token 哈希存储、带范围、有审计。
– 策略所有权用租约(lease)/心跳(heartbeat)/围栏 token 管,防止孤儿进程持续下单。
– 生产容器非 root、无 Linux capabilities。
– 端口默认只绑 loopback,公网流量终止于 TLS 反代。
docker-compose.production.yml 之外还配了 check_production_config.py 做上线前校验,逼你把 SECRET_KEY、CREDENTIAL_ENCRYPTION_KEY、各密码都填齐。默认遗留凭证 quantdinger / 123456 仅作兼容,文档明言不可暴露公网。
—
八、横向看:AI 量化四层,它站在执行那层
把 QuantDinger 和几个常被一并提起的开源项目摆开看,会发现它们不在同一层打架:
flowchart TB L1[数据/新闻层] –> L2[建模/分析层] L2 –> L3[回测/决策层] L3 –> L4[执行/监控层] daily[daily_stock_analysis 每日分析推送] -.-> L2 ta[TradingAgents 多 Agent 金融决策] -.-> L2 kronos[Kronos 金融 K 线基础模型] -.-> L2 qd[QuantDinger 自托管交易 OS] -.-> L4
| 项目 | 星标 | 定位 | 甜区 | 短板 |
|---|---|---|---|---|
| daily_stock_analysis | ~59k | 每日分析推送工作台 | 低门槛、自动化日报 | 不是交易系统本身 |
| TradingAgents | ~94k | 多 Agent 金融决策框架 | 研究多角色推理 | 结论是概率性的,同一标的同日期可能跑出不同结果 |
| Kronos | ~34k | 金融 K 线基础模型 | 时间序列模型底座 | fine-tune 管线是 demo,非生产级 |
| QuantDinger | ~10k | 自托管交易运行时 | 工程完整度、权限/监控/执行闭环 | 部署最重,复杂度最高 |
| Freqtrade | 老牌 | 加密 CLI 自动交易 | 只想跑加密、不在乎 GUI | 无 GUI、AI 辅助弱 |
| nautilus_trader | 老牌 | 事件驱动/高频 | 高频、事件驱动策略 | 抽象层级高,上手陡 |
一句话:想每天收份摘要,daily_stock_analysis 最轻;想研究多 Agent 怎么吵架出主意,TradingAgents 最典型;关心金融时间序列底座,Kronos 更底层;要自托管、把研究到实单整段收在自己机器上,QuantDinger 最接近工程系统。但若只想跑个简单回测,本机 paper 模式先跑通再说,别一上来就上服务器。
—
九、部署与运维
两条路:
– 方案 A(预构建镜像):curl -fsSL https://raw.githubusercontent.com/OpenByteInc/QuantDinger/main/install.sh | bash(Windows 用 install.ps1)。需 Docker Compose v2。
– 方案 B(源码):clone 后填两份 env(backend_api_python/.env 与根 .env),docker compose up -d --build。
装好后本机端点:Web 127.0.0.1:8888、Mobile H5 8889、API 5000、可选 Grafana 3000、Prometheus 9090。基础栈不含监控,要挂得加 docker-compose.observability.yml。生产部署建议只露 TLS 反代的 80/443,PG/Redis/Prometheus 不公开,禁例密码,备份 PG 与 redis-jobs 卷。
CI 检查项很全:语法、lint、测试、发布门禁、Compose、依赖、源码安全(bandit/pip-audit/gitleaks)、API 兼容、版本漂移、文本编码。对一个开源项目,这密度算厚道。
—
十、谁宜,谁忌
合宜者:会写 Python、懂 Pandas/NumPy、想把散落的策略脚本收进一个有 GUI 和 AI 辅助的环境、且死活不愿把 API 密钥交第三方的独立交易者或小团队。尤其适合研究「AI 交易系统怎么工程化落地」的人。
不宜者:只想看图不想架服务器——TradingView 或交易所原生图表更轻;只想跑加密自动交易、不在乎 GUI——Freqtrade 更直接;要写高频或事件驱动——nautilus_trader 更贴手。
诚实说部署负担:六个后端进程外加 PostgreSQL、Redis、可选监控栈,这是生产级基础设施的体量。没碰过 Linux 服务器和 Docker Compose 的人,第一次架起来多半耗在 port binding、volume 挂载、镜像源上。
—
十一、风险与隐忧
– 回测引擎尚在打磨:时间处理与绩效 metric 是公开议题的主战场,正式用前务必 paper 跑通。
– funding 费未建模:swap 策略回测收益会虚高。
– 多时间框架刚 opt-in:Aug 18 还在改这块,新功能意味着新坑。
– 安全风险有前科:SECURITY.md 在 Aug 17 专门 credit 了一个 JWT bypass 披露——说明它也曾中过招,好在响应透明。
– 渠道口径不一:官网列的 GitHub 路径与主线程不符,克隆时认准 OpenByteInc/QuantDinger。
– 法律边界自负:明确声明非投资建议,密钥、合规、监管全由部署者自己扛。
—
十二、断语
QuantDinger 是当下开源 AI 量化里,少数认真把「研究→策略→回测→执行→监控」做成一套自托管工程系统的项目。它不替你做决定、不碰你密钥、把 Agent 的权限用四道闸门焊死——这份克制,比堆功能更值钱。短板也实在:重、新、回测引擎还在长身体。
我的看法很直接:把它当「研究到实盘的执行底座」来用,价值最大;把它当「躺着赚钱的荐股黑盒」来指望,趁早断念。先用 paper 模式把你要用的策略类型跑熟,再谈上服务器、谈 Agent 实盘。至于是否 fork 来二次开发——架构文档把模块边界、并发归属、重构靶子都摊开了,对想动手的工程师相当友好。
—
附:一页纸速查表
| 维度 | 要点 |
|---|---|
| 是什么 | 自托管 AI 交易 OS,Apache 2.0(后端) |
| 跑在哪 | Python 3.12 + PG18 + Redis8 + Docker Compose |
| 打哪些市场 | 加密 6 家所 + 股票 IBKR/Alpaca + 外汇 |
| 策略写法 | Strategy API V2:initialize/handle_data/on_rebalance + manifest |
| 风控落点 | 单笔止损止盈跟踪时限;账户层按名义/杠杆拒单;strict 防漂移 |
| Agent 实盘四关 | 范围 token + paper_only=false + 服务端开关 + 限额白名单 |
| 回测大坑 | 加密 funding 费 not_modeled;时间处理仍打磨中 |
| 最像谁 | 执行层系统;轻量选 daily_stock_analysis,研究选 TradingAgents/Kronos |
| 上手建议 | 本机 paper 跑熟再上服务器;认准 OpenByteInc/QuantDinger |
| 一句话 | 把链路收进自己机器的工程系统,克制比堆功能值钱 |
—
取材自仓库 README、docs 文档树、services 模块清单、MCP server README,及 agentindex / TechMoon / 山行《AI 量化开源栈》等公开评测。成文时仓库主线为 v5.0.17。

勘误:原帖第八节「AI 量化四层」流程图之 Mermaid 语法有误——虚线连线只开不收,缺箭头与目标节点,致渲染报 Lexical error。已在本地正本修订,并补正如下:
“
mermaid
“flowchart TB
L1[数据/新闻层] --> L2[建模/分析层]
L2 --> L3[回测/决策层]
L3 --> L4[执行/监控层]
daily[daily_stock_analysis 每日分析推送] -.-> L2
ta[TradingAgents 多 Agent 金融决策] -.-> L2
kronos[Kronos 金融 K 线基础模型] -.-> L2
qd[QuantDinger 自托管交易 OS] -.-> L4
修正思路:将各开源项目立为独立节点,以虚线箭头指回所属层级。本地底稿 QuantDinger深度研究-智柴发布版.md 已同步。