QuantDinger 是 Open Byte Inc 開源的 AI Trading OS。把 AI 市場研究、Python 策略開發、伺服器端回測、模擬與實盤執行、行情與帳務資料、以及 Agent Gateway 與 MCP 存取收斂到同一個可自託管堆疊。前端、交易引擎、排程與任務以明確的行程邊界運行,憑證與部署留在操作者手中。
QuantDinger 解決的是量化交易者在雲端服務與黑盒子訊號之間的兩難:行情、策略程式碼、券商憑證、回測與實盤狀態全部分散,且難以審計。專案把研究、編碼、驗證、執行與監控收斂到同一個本地優先堆疊,操作者持有資料與部署主導權。
核心是一個可攜的 Python 合約。圖表指標僅負責視覺化,Strategy API V2 才是唯一可執行的策略介面:原始碼擁有市場、標的、頻率、排程、風險與槓桿設定,編譯器產生 manifest,回測與實盤共用同一份定義,無須重寫。
執行面以行程邊界隔離長週期與有限任務。HTTP API 只做驗證與委派;trading-worker 擁有策略運行時與待處理訂單;scheduler-worker 負責投資組合、部署與訊號排程;celery-worker 處理有限可重試工作;快取 Redis 與任務 Redis 分離實例與淘汰策略,避免相互干擾。
| 面向 | 涵蓋內容 |
|---|---|
| 市場 | 加密貨幣(Binance、OKX、Bitget、Bybit、Gate、HTX 等)、美股、港股、A 股、外匯;行情、因子、新聞與總體資料聚合 |
| 策略介面 | 指標(圖表覆蓋、標記、區間)與 Strategy API V2(initialize / handle_data / on_rebalance、訂單意圖、風控與帳務)分離 |
| 執行 | 伺服器端回測、實驗流程、紙上交易與實盤、訂單對帳、券商適配器(Crypto 與 IBKR / Alpaca) |
| 存取 | 桌面 Web、行動 H5、Human API、Agent Gateway(/api/agent/v1)、MCP 伺服器 |
| 營運 | PostgreSQL 狀態、雙 Redis、可觀測性疊加(Prometheus / Grafana / Alertmanager)、JSON 日誌與審計軌跡 |
預設以 Docker Compose 交付,不需本機 Python 或 Node。兩條路徑:選項 A 拉取 GHCR 預建映像一鍵啟動;選項 B 從原始碼建置以便二次開發。兩者皆在 127.0.0.1 曝露服務,生產環境需以 TLS 反向代理收斂至 80/443。
Linux / macOS 執行安裝腳本,Windows 以 PowerShell 執行對應版本。腳本會詢問初始管理員帳密、產生必要密鑰、下載 GHCR Compose 堆疊並啟動。
啟動後開啟:http://127.0.0.1:8888(桌面 Web)、http://127.0.0.1:8889(行動 H5)、http://127.0.0.1:5000/api/health(後端健康檢查)。桌面與行動前端為獨立倉庫的 GHCR 映像,本倉僅消費其發布物。
適合需修改後端、適配器或任務的情境。複製環境範本、填入生產密鑰、建置並啟動核心堆疊。
上線前驗證組態,疊加 hardened 與可選監控:
ADMIN_USER / ADMIN_PASSWORD 建立初始管理員,密碼僅存雜湊。既有資料卷不會被覆蓋;僅當偵測到未改動的舊預設 quantdinger / 123456 且已配置非預設帳密時才替換,已改過密碼的帳號一律保留。設定頁寫入的執行時組態位於容器內 /app/.env(GHCR 棧為宿主 backend.env),現行映像由 UID 10001 持有且權限 600,勿以 chmod 755 / 777 破壞。生產疊加中該檔以唯讀掛載,改由宿主管理並重建服務。
QuantDinger 的能力沿三條邊界組織:策略合約定義可做什麼,執行與資料適配器決定如何落地,Agent Gateway 與 MCP 把同一套能力以機器可用的方式曝露。所有可變操作皆以冪等鍵與範圍化授權保護。
initialize(context) 宣告標的與訂閱,handle_data / on_rebalance / schedule 實現邏輯。編譯器產出 manifest,統一回測與實盤的標的、頻率與風控。plots / signals / layers。不可下單、回測或讀取帳務;交易需轉譯為 Strategy API V2。/jobs/{id} 輪詢或 SSE 串流取得結果。trading-worker 以租約、心跳與圍欄令牌持有,不由 HTTP 行程持有。app/services/live_trading 歸一為下單與帳務合約,支援擴充適配器。data_sources 接原始 K 線與報價,data_providers 聚合大盤、總體、新聞與情緒,快取鍵含市場、交易所、標的、週期與數量。/api/agent/v1 機器介面R / W / B / N / T / C 劃分能力,附市場與標的白名單、速率限制、有效期與紙上交易限制。每個可變請求需 Idempotency-Key。pip install quantdinger-mcp 取得,預設 stdio,支援 SSE / streamable-http。工具涵蓋行情、指標、策略編譯與部署、回測任務、帳務觀測與受控下單。docker-compose.observability.yml。| 你想做什麼 | 用什麼 | 關鍵約束 |
|---|---|---|
| 畫一條均線或標記訊號 | Indicator IDE(output 合約) |
不可下單或回測;需轉為 Strategy API V2 才能交易 |
| 驗證交易邏輯是否有效 | Strategy API V2 + 伺服器端回測 | 標的與週期由 manifest 決定,非回測參數 |
| 讓策略自動運行 | 儲存 source → 建立 stopped deployment → 啟動 | 新部署預設停止;槓桿僅限 Crypto 合約 |
| 用 AI 編碼助手操作 | Agent Gateway / MCP(quantdinger-mcp) |
依 R/W/B/N/T 範圍授權,實盤需多重確認 |
QuantDinger v5 的重構主軸是明確的行程與模組邊界。下列原則直接來自架構與流程文件,改動前先對照,避免把長週期行為塞進 HTTP 行程或把交換所邏輯混入路由。
路由保持薄層:解析輸入、驗證權限、呼叫服務、映射回應。交易迴圈、排程與大量 DB 工作一律下沉至 Worker 或服務層。
來源 · docs/architecture/ARCHITECTURE.md · Route Rules策略運行時、待處理訂單與券商會話由 trading-worker 持有;有限可重試工作歸 Celery。可撤銷的長時間迴圈不屬於 HTTP。
快取 Redis 與任務 Redis 分離實例與淘汰策略。前者可拋棄,後者需持久化;禁止將快取 Redis 作為 Celery broker。
來源 · README · What changed in v5市場、標的、頻率、依賴、暖機與槓桿許可由 Strategy API V2 編譯出的 manifest 決定。回測與部署不得以參數覆寫原始碼事實。
來源 · docs/trading/STRATEGY_DEV_GUIDE.md指標輸出 plots / signals / layers 僅作圖,不可下單或回測。交易想法需轉譯為 Strategy API V2 再驗證與部署。
交易所與券商適配器僅歸一第三方 API 為平台合約,不感知使用者、JWT 或前端文案;業務層決定錯誤是否可重試或需面向使用者。
來源 · docs/architecture/ARCHITECTURE.md · Adapter RulesAgent Token 以 R/W/B/N/T 劃分讀、寫、回測、通知與交易能力,附白名單與名目金額上限;實盤需同時滿足 Token、伺服器開關與操作者授權。
所有可變的 W/B/N/T 操作需客戶端產生 Idempotency-Key,重試必須重用同一鍵;緊急停止會撤銷租戶全部 T 範圍 Token 並需人工覆核交換所失敗。
以一個可驗證的端到端流程示範:透過 Agent Gateway / MCP 建立 SPY 均線策略、編譯與儲存、發起回測、建立停止狀態的部署。下述指令對應真實工具與端點,憑證與金鑰以環境變數注入,未在日誌或提示中明文出現。
同一份 Strategy API V2 原始碼貫穿編譯、回測與部署,消除了「回測時一套邏輯、上線時另一套」的常見漂移。MCP 與 Agent Gateway 復用同一條服務層,機器與人工共用風控與稽核,而非繞過。
新部署一律為 stopped,啟動需額外授權與確認;實盤更需同時滿足 Token 能力、伺服器開關、憑證白名單與金額上限。這種多層門檻是刻意設計,讓自動化保持可撤銷。
POST /api/strategies/verify 編譯驗證,並以回測確認行為。
CREDENTIAL_ENCRYPTION_KEY 加密,Agent Token 為雜湊儲存。遺失 CREDENTIAL_ENCRYPTION_KEY 將無法解密既有憑證;切勿將 Token 或密鑰提交至版本控制或日誌。
127.0.0.1,不得直接曝露。生產疊加採非 root、唯讀根檔案系統與資源限制。
Idempotency-Key,重試必須重用同一鍵。緊急停止(/quick-trade/kill-switch 或 emergency_stop_trading)會撤銷租戶全部 T 權杖並嘗試撤單,交換所的撤單失敗需人工覆核。
VERSION 為準,Git 標籤為 v5.x.y。回測歷史不保證未來表現;AI 輸出與範例策略僅供研究,需自行覆核風險控管與委託限制。
QuantDinger 的擴充點圍繞適配器、任務與路由展開。新增能力時,先確認所屬行程與模組邊界,再落到對應目錄。
1. 開發你的第一個可交易策略。以 docs/trading/STRATEGY_DEV_GUIDE.md 的最小範例為起點,在策略 IDE 中以 initialize 與 handle_data 建立邏輯,經 /api/strategies/verify 驗證 manifest,完成回測後再建立部署。
2. 接入新的交易所或券商。在 backend_api_python/app/services/live_trading(或對應券商套件)新增歸一適配器,保持錯誤處理貼近適配器、業務判斷留在服務層,並補上憑證策略與測試。
3. 擴充行情或聚合資料。原始行情在 app/data_sources,聚合與快取在 app/data_providers;快取鍵需含市場、交易所、標的、週期與數量,避免結果錯用。
4. 以 MCP 自動化研究與部署。透過 quantdinger-mcp 的 list_markets / search_symbols / get_klines 探勘標的,以 compile_strategy_code → save_strategy_source → submit_backtest → create_strategy 完成機器化工作流。
5. 強化營運。疊加 docker-compose.observability.yml 啟用 Prometheus / Grafana / Alertmanager;生產環境疊加 docker-compose.production.yml,並依 docs/deployment/PRODUCTION_HARDENING.md 完成檢查清單。
① docs/architecture/ARCHITECTURE.md —— 後端擁有權地圖與貢獻設計規則。
② docs/trading/STRATEGY_DEV_GUIDE.md —— Strategy API V2 完整合約與編譯器規則。
③ docs/agent/MCP_SETUP.md —— MCP 伺服器安裝、傳輸與安全邊界。