Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
23 KiB
QuantDinger
下一代 AI 量化交易平台
🤖 AI 原生 · 🐍 可視化 Python · 🌍 全球多市場 · 🔒 隱私優先
擁有 AI 副駕駛的構建、回測與交易平台。比 PineScript 更強,比 SaaS 更智能。
📖 簡介
QuantDinger 是什麼?
QuantDinger 是一個本地優先、隱私優先、自託管的量化交易基礎設施。它運行在你的機器/伺服器上,提供 PostgreSQL 支持的多用戶帳號體系,同時讓你完全控制自己的策略、交易數據和 API 密鑰。
為什麼選擇本地優先?
與將你的數據和策略鎖定在雲端的 SaaS 平台不同,QuantDinger 在本地運行。你的策略、交易日誌、API 密鑰和分析結果都保留在你的機器上。沒有供應商鎖定,沒有訂閱費用,沒有數據洩露風險。
適合誰使用?
QuantDinger 為以下用戶而構建:
- 重視數據主權和隱私的交易員、研究員和工程師
- 需要透明、可審計的交易基礎設施
- 更偏好工程而非營銷
- 需要完整的工作流:數據、分析、回測和執行
核心功能
QuantDinger 包含一個內置的基於 LLM 的多智能體研究系統,能夠從網絡收集金融情報,結合本地市場數據,生成分析報告。這與策略開發、回測和實盤交易工作流無縫集成。
核心價值
- 🔓 Apache 2.0 開源(代碼):寬鬆且商業友好。你可以在 Apache 2.0 下 fork/修改代碼,但需保留許可與署名等必要聲明。
- 🐍 Python 原生 & 可視化:使用標準 Python 編寫指標(比 PineScript 更簡單),並由 AI 輔助。直接在圖表上可視化信號——打造「本地版 TradingView」體驗。
- 🤖 AI 閉環優化:不僅運行策略,AI 還會分析回測結果並建議參數調整(止損/止盈/MACD 設置),形成閉環優化。
- 🌍 全球市場接入:統一系統支持加密貨幣(實盤)、美股/A股、外匯和期貨(數據/通知)。
- ⚡ Docker & 清晰架構:4 行命令極速部署。現代技術棧(Vue + Python),架構清晰,關注點分離。
📺 視頻演示
📚 文檔
開發指南
通知配置
📸 功能預覽
🤖 AI 深度投研多智能體協作進行市場情緒與技術分析。
|
💬 智能交易助手通過自然語言接口獲取即時市場洞察。
|
📈 交互式指標分析豐富的技術指標庫,支持拖拽式分析。
|
🐍 Python 策略生成內置編輯器,支持 AI 輔助策略代碼編寫。
|
📊 資產監測追蹤持倉、設置預警,並通過郵件/Telegram 接收 AI 分析報告。
|
|
✨ 關鍵特性
1. 可視化 Python 策略工作台
比 PineScript 更強,比 SaaS 更智能。
- Python 原生:用 Python 編寫指標和策略。利用完整的 Python 生態(Pandas, Numpy, TA-Lib),而不是 PineScript 這種專用語言。
- "Mini-TradingView" 體驗:直接在內置的 K 線圖上運行你的 Python 指標。在歷史數據上可視化調試買賣信號。
- AI 輔助編程:讓內置 AI 為你編寫複雜的邏輯。從創意到代碼只需幾秒鐘。
2. 完整的交易生命週期
從指標到執行,無縫銜接。
- 指標:定義你的市場入場/出場信號。
- 策略配置:附加風險管理規則(倉位管理、止損、止盈)。
- 回測 & AI 優化:運行回測,查看豐富的性能指標,並讓 AI 分析結果以建議改進(例如:「調整 MACD 閾值為 X」)。
- 執行模式:
- 實盤交易:
- 加密貨幣:直接 API 執行,支持 10+ 交易所(Binance, OKX, Bitget, Bybit 等)
- 美股/港股:通過盈透證券 (IBKR) 🆕
- 外匯:通過 MetaTrader 5 (MT5) 🆕
- 信號通知:針對不支持實盤交易的市場(A股/期貨),通過 Telegram, Discord, Email, SMS 或 Webhook 發送信號。
- 實盤交易:
3. AI 多智能體投研
你的 7x24 小時 AI 投委會。
系統僱用了一個多智能體團隊作為你策略的二次過濾器:
- 研究智能體:抓取網絡新聞和宏觀事件(Google/Bing)。
- 分析智能體:分析技術指標和資金流向。
- 策略集成:AI 的判斷可以作為「市場過濾器」——僅當 AI 情緒一致時才允許策略交易(例如:「如果 AI 風險分析師標記宏觀風險極高,則不要買入」)。
4. 通用數據引擎
QuantDinger 提供跨多個市場的統一數據接口:
- 加密貨幣:直接 API 連接進行交易(10+ 交易所)和 CCXT 集成獲取行情數據(100+ 數據源)
- 股票:Yahoo Finance、Finnhub、Tiingo(美股)和 AkShare(A股/港股)
- 期貨/外匯:OANDA 和主要期貨數據源
- 代理支持:內置代理配置,適應受限網絡環境
5. 🧠 AI 記憶增強系統(Memory-Augmented Agents)
QuantDinger 的多智能體不是「每次從零開始」。後端內建本地記憶庫 + 反思閉環:在生成提示詞(prompt)時檢索過往經驗並注入到 system prompt,並可在事後驗證/復盤後把結果寫回記憶庫。
- 本質:RAG 風格「經驗檢索增強」,不是訓練/微調模型權重(零外部向量庫依賴)。
- 隱私:所有記憶與反思記錄預設落盤在本地 SQLite:
backend_api_python/data/memory/。
邏輯圖(從請求到記憶閉環)
flowchart TB
%% ===== 🌐 入口層 =====
subgraph Entry["🌐 API 入口"]
A["📡 POST /api/analysis/multi"]
A2["🔄 POST /api/analysis/reflect"]
end
%% ===== ⚙️ 服務編排層 =====
subgraph Service["⚙️ 服務編排"]
B[AnalysisService]
C[AgentCoordinator]
D["📊 建構上下文<br/>price · kline · news · indicators"]
end
%% ===== 🤖 多智能體工作流 =====
subgraph Agents["🤖 多智能體工作流"]
subgraph P1["📈 Phase 1 · 多維分析(並行)"]
E1["🔍 MarketAnalyst<br/><i>技術面分析</i>"]
E2["📑 FundamentalAnalyst<br/><i>基本面分析</i>"]
E3["📰 NewsAnalyst<br/><i>新聞輿情</i>"]
E4["💭 SentimentAnalyst<br/><i>市場情緒</i>"]
E5["⚠️ RiskAnalyst<br/><i>風險評估</i>"]
end
subgraph P2["🎯 Phase 2 · 多空博弈(並行)"]
F1["🐂 BullResearcher<br/><i>看多論據</i>"]
F2["🐻 BearResearcher<br/><i>看空論據</i>"]
end
subgraph P3["💹 Phase 3 · 交易決策"]
G["🎰 TraderAgent<br/><i>綜合研判 → BUY / SELL / HOLD</i>"]
end
end
%% ===== 🧠 記憶層 =====
subgraph Memory["🧠 本地記憶庫 SQLite(data/memory/)"]
M1[("market_analyst")]
M2[("fundamental")]
M3[("news_analyst")]
M4[("sentiment")]
M5[("risk_analyst")]
M6[("bull_researcher")]
M7[("bear_researcher")]
M8[("trader_agent")]
end
%% ===== 🔄 反思閉環 =====
subgraph Reflect["🔄 反思閉環(可選)"]
R[ReflectionService]
RR[("reflection_records.db")]
W["⏰ ReflectionWorker"]
end
%% ===== 主流程 =====
A --> B --> C --> D
D --> P1 --> P2 --> P3
%% ===== 記憶讀寫 =====
E1 <-.-> M1
E2 <-.-> M2
E3 <-.-> M3
E4 <-.-> M4
E5 <-.-> M5
F1 <-.-> M6
F2 <-.-> M7
G <-.-> M8
%% ===== 反思流程 =====
C --> R --> RR
W --> RR
W -.->|"驗證 + 學習"| M8
A2 -.->|"手動復盤"| M8
檢索排序(簡化)
[ score = w_{sim}\cdot sim + w_{recency}\cdot recency + w_{returns}\cdot returns_score ]
兩條「學習」通道
- 手動復盤(推薦):
POST /api/analysis/reflect寫入真實交易結果(returns/result) - 自動反思(可選):
ENABLE_REFLECTION_WORKER=true後,背景任務按REFLECTION_WORKER_INTERVAL_SEC驗證到期記錄並寫回記憶
关键環境變量(.env)
ENABLE_AGENT_MEMORY,AGENT_MEMORY_TOP_K,AGENT_MEMORY_CANDIDATE_LIMITAGENT_MEMORY_ENABLE_VECTOR,AGENT_MEMORY_EMBEDDING_DIMAGENT_MEMORY_HALF_LIFE_DAYS,AGENT_MEMORY_W_SIM,AGENT_MEMORY_W_RECENCY,AGENT_MEMORY_W_RETURNSENABLE_REFLECTION_WORKER,REFLECTION_WORKER_INTERVAL_SEC
6. 策略運行時
- 基於線程的執行器:獨立的線程池用於策略執行
- 自動恢復:系統重啟後恢復運行中的策略
- 訂單隊列:後台工作線程用於訂單執行
7. 技術棧
- 後端:Python (Flask) + SQLite + Redis(可選)
- 前端:Vue 2 + Ant Design Vue + KlineCharts/ECharts
- 部署:Docker Compose
🔌 支持的交易所和券商
QuantDinger 支持多種市場類型的執行方式:
加密貨幣交易所(直接 API)
| 交易所 | 市場 |
|---|---|
| Binance | 現貨, 合約, 槓桿 |
| OKX | 現貨, 永續, 期權 |
| Bitget | 現貨, 合約, 跟單交易 |
| Bybit | 現貨, 線性合約 |
| Coinbase Exchange | 現貨 |
| Kraken | 現貨, 合約 |
| KuCoin | 現貨, 合約 |
| Gate.io | 現貨, 合約 |
| Bitfinex | 現貨, 衍生品 |
傳統券商
| 券商 | 市場 | 平台 |
|---|---|---|
| 盈透證券 (IBKR) | 美股, 港股 | TWS / IB Gateway 🆕 |
| MetaTrader 5 (MT5) | 外匯 | MT5 終端 🆕 |
行情數據(通過 CCXT)
Bybit、Gate.io、Kraken、KuCoin、HTX 以及 100+ 其他交易所用於行情數據。
多語言支持
QuantDinger 為全球用戶構建,提供全面的國際化支持:
所有 UI 元素、錯誤信息和文檔均已完全翻譯。語言會根據瀏覽器設置自動檢測,也可以在應用中手動切換。
支持的市場
| 市場類型 | 數據源 | 交易 |
|---|---|---|
| 加密貨幣 | Binance, OKX, Bitget, + 100 交易所 | ✅ 全面支持 |
| 美股 | Yahoo Finance, Finnhub, Tiingo | ✅ 通過盈透證券 🆕 |
| 港股 | AkShare, 東方財富 | ✅ 通過盈透證券 🆕 |
| A股 | AkShare, 東方財富 | ⚡ 僅數據 |
| 外匯 | Finnhub, OANDA | ✅ 通過 MT5 🆕 |
| 期貨 | 交易所 API, AkShare | ⚡ 僅數據 |
架構 (當前倉庫)
┌─────────────────────────────┐
│ quantdinger_vue │
│ (Vue 2 + Ant Design Vue) │
└──────────────┬──────────────┘
│ HTTP (/api/*)
▼
┌─────────────────────────────┐
│ backend_api_python │
│ (Flask + 策略運行時) │
└──────────────┬──────────────┘
│
├─ SQLite (quantdinger.db)
├─ Redis (可選緩存)
└─ 數據提供商 / LLMs / 交易所
倉庫目錄結構
.
├─ backend_api_python/ # Flask API + AI + 回測 + 策略運行時
│ ├─ app/
│ ├─ env.example # 複製為 .env 進行本地配置
│ ├─ requirements.txt
│ └─ run.py # 入口點
└─ quantdinger_vue/ # Vue 2 UI (開發服務器代理 /api -> 後端)
快速開始
選項 1: Docker 部署 (推薦)
運行 QuantDinger 最快的方式。
1. 一鍵啟動
Linux / macOS
git clone https://github.com/brokermr810/QuantDinger.git && \
cd QuantDinger && \
cp backend_api_python/env.example backend_api_python/.env && \
docker-compose up -d --build
Windows (PowerShell)
git clone https://github.com/brokermr810/QuantDinger.git
cd QuantDinger
Copy-Item backend_api_python\env.example -Destination backend_api_python\.env
docker-compose up -d --build
2. 訪問與配置
- 前端 UI: http://localhost:8888
- 默認賬號:
quantdinger/123456
注意:為了使用 AI 功能或生產環境安全,請編輯
backend_api_python/.env(添加OPENROUTER_API_KEY,修改密碼),然後執行docker-compose restart backend重啟服務。
3. 訪問應用
- 前端 UI: http://localhost
- 後端 API: http://localhost:5000
Docker 命令參考
# 查看運行狀態
docker-compose ps
# 查看日誌
docker-compose logs -f
# 停止服務
docker-compose down
# 停止並刪除卷 (警告:會刪除數據庫!)
docker-compose down -v
數據持久化
以下數據掛載到主機,重啟容器後依然保留:
volumes:
- ./backend_api_python/logs:/app/logs # 日誌
- ./backend_api_python/data:/app/data # 數據目錄(包含 quantdinger.db)
- ./backend_api_python/.env:/app/.env # 配置文件
選項 2: 本地開發
先決條件
- 推薦 Python 3.10+
- 推薦 Node.js 16+
1. 啟動後端 (Flask API)
cd backend_api_python
pip install -r requirements.txt
cp env.example .env # Windows: copy env.example .env
python run.py
後端將在 http://localhost:5000 上可用。
2. 啟動前端 (Vue UI)
cd quantdinger_vue
npm install
npm run serve
前端開發服務器運行在 http://localhost:8000 並將 /api/* 代理到 http://localhost:5000。
配置 (.env)
使用 backend_api_python/env.example 作為模板。常用設置包括:
- 認證:
SECRET_KEY,ADMIN_USER,ADMIN_PASSWORD - 服務器:
PYTHON_API_HOST,PYTHON_API_PORT,PYTHON_API_DEBUG - AI / LLM:
OPENROUTER_API_KEY,OPENROUTER_MODEL - 網絡搜索:
SEARCH_PROVIDER,SEARCH_GOOGLE_*,SEARCH_BING_API_KEY - 代理 (可選):
PROXY_PORT或PROXY_URL
🤝 社區與支持
- 貢獻: 貢獻指南 · 貢獻者
- Telegram: QuantDinger 群組
- Discord: 加入服務器
- 📺 視頻演示: 專案介紹
- YouTube: @quantdinger
- Email: brokermr810@gmail.com
- GitHub Issues: 報告 Bug / 功能請求
💼 商業授權與贊助(Commercial License & Sponsorship)
QuantDinger 的代碼使用 Apache License 2.0 授權。但請注意:Apache 2.0 不授予商標權。QuantDinger 的名稱/Logo/品牌標識受商標與品牌政策約束(與代碼許可分離):
- 版權/署名:你必須保留必要的版權與許可聲明(例如倉庫中的 LICENSE/NOTICE 等,以及代碼中的署名資訊)。
- 商標(名稱/Logo/品牌):你不得使用 QuantDinger 的名稱/Logo/品牌來暗示背書或誤導來源;若再發佈修改版,一般需要移除/替換 QuantDinger 品牌標識,除非獲得書面許可。
若你希望在再發佈版本中保留/修改 QuantDinger 品牌展示(包括 UI 品牌、Logo 使用等),請聯繫我們獲取 商業授權。
另見:TRADEMARKS.md
商業授權可獲得
- 品牌/版權展示的商用授權(以雙方約定為準)
- 運維支持:部署、升級、故障處理與維護建議
- 諮詢服務:架構評審、性能調優、策略工作流諮詢
- 贊助商權益:成為專案贊助商,可按約定展示你的 Logo/廣告(README/官網/應用內等)
聯繫方式
- Telegram: QuantDinger Group
- Email: brokermr810@gmail.com
💼 值得信賴的交易所合作夥伴(聯盟鏈接)
使用我們的合作夥伴鏈接,在享受相同交易體驗的同時支持 QuantDinger 的發展。
💝 直接支持(捐贈)
你的貢獻幫助我們維護和改進 QuantDinger。
加密貨幣捐贈 (ERC-20 / BEP-20 / Polygon / Arbitrum)
0x96fa4962181bea077f8c7240efe46afbe73641a7
致謝
QuantDinger 站在這些偉大的開源項目肩膀之上:Flask, Pandas, CCXT, Vue.js, Ant Design Vue, KlineCharts 等。
感謝所有維護者和貢獻者! ❤️





