Skip to content

Commit e095f9b

Browse files
committed
Supports MT5 and forex trading.
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
1 parent 7527d73 commit e095f9b

21 files changed

Lines changed: 2717 additions & 51 deletions

File tree

README.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ QuantDinger includes a built-in **LLM-based multi-agent research system** that g
9797
### Guides
9898
- [Python Strategy Development Guide](docs/STRATEGY_DEV_GUIDE.md)
9999
- [Interactive Brokers (IBKR) Trading Guide](docs/IBKR_TRADING_GUIDE_EN.md) 🆕
100+
- [MetaTrader 5 (MT5) Trading Guide](docs/MT5_TRADING_GUIDE_EN.md) 🆕
100101

101102
### Notification Configuration
102103
- [Telegram Notification Setup](docs/NOTIFICATION_TELEGRAM_CONFIG_EN.md)
@@ -165,8 +166,11 @@ QuantDinger includes a built-in **LLM-based multi-agent research system** that g
165166
2. **Strategy Config**: Attach risk management rules (Position sizing, Stop-Loss, Take-Profit).
166167
3. **Backtest & AI Optimization**: Run backtests, view rich performance metrics, and **let AI analyze the result to suggest improvements** (e.g., "Adjust MACD threshold to X").
167168
4. **Execution Mode**:
168-
- **Live Trading**: Direct API execution for 10+ Crypto Exchanges (Binance, OKX, etc.).
169-
- **Signal Notification**: For non-executable markets (Stocks/Forex/Futures), send signals via Telegram, Discord, Email, SMS, or Webhook.
169+
- **Live Trading**:
170+
- **Cryptocurrency**: Direct API execution for 10+ exchanges (Binance, OKX, Bitget, Bybit, etc.)
171+
- **US/HK Stocks**: Via Interactive Brokers (IBKR) 🆕
172+
- **Forex**: Via MetaTrader 5 (MT5) 🆕
173+
- **Signal Notification**: For markets without live trading support (A-shares/Futures), send signals via Telegram, Discord, Email, SMS, or Webhook.
170174

171175
### 3. AI Multi-Agent Research
172176
*Your 24/7 AI Investment Committee.*
@@ -292,19 +296,32 @@ Config lives in `.env` (see `backend_api_python/env.example`): `ENABLE_AGENT_MEM
292296

293297
---
294298

295-
## 🔌 Supported Exchanges
299+
## 🔌 Supported Exchanges & Brokers
296300

297-
QuantDinger supports direct API connections to major cryptocurrency exchanges for execution, and uses CCXT for broad market data coverage.
301+
QuantDinger supports multiple execution methods for different market types:
298302

299-
### Direct API Support
303+
### Cryptocurrency Exchanges (Direct API)
300304

301305
| Exchange | Markets |
302306
|:--------:|:---------|
303307
| Binance | Spot, Futures, Margin |
304308
| OKX | Spot, Perpetual, Options |
305309
| Bitget | Spot, Futures, Copy Trading |
310+
| Bybit | Spot, Linear Futures |
311+
| Coinbase Exchange | Spot |
312+
| Kraken | Spot, Futures |
313+
| KuCoin | Spot, Futures |
314+
| Gate.io | Spot, Futures |
315+
| Bitfinex | Spot, Derivatives |
306316

307-
### Also Supported via CCXT
317+
### Traditional Brokers
318+
319+
| Broker | Markets | Platform |
320+
|:------:|:--------|:---------|
321+
| **Interactive Brokers (IBKR)** | US Stocks, HK Stocks | TWS / IB Gateway 🆕 |
322+
| **MetaTrader 5 (MT5)** | Forex | MT5 Terminal 🆕 |
323+
324+
### Market Data (via CCXT)
308325

309326
Bybit, Gate.io, Kraken, KuCoin, HTX, and 100+ other exchanges for market data.
310327

@@ -339,7 +356,7 @@ All UI elements, error messages, and documentation are fully translated. Languag
339356
| **US Stocks** | Yahoo Finance, Finnhub, Tiingo | ✅ Via IBKR 🆕 |
340357
| **HK Stocks** | AkShare, East Money | ✅ Via IBKR 🆕 |
341358
| **CN Stocks (A-shares)** | AkShare, East Money | ⚡ Data only |
342-
| **Forex** | Finnhub, OANDA | ✅ Via broker API |
359+
| **Forex** | Finnhub, OANDA | ✅ Via MT5 🆕 |
343360
| **Futures** | Exchange APIs, AkShare | ⚡ Data only |
344361

345362
---

README_CN.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ QuantDinger 包含一个内置的**基于 LLM 的多智能体研究系统**,
9797
### 开发指南
9898
- [Python 策略开发指南](docs/STRATEGY_DEV_GUIDE_CN.md)
9999
- [盈透证券 (IBKR) 实盘交易指南](docs/IBKR_TRADING_GUIDE_CN.md) 🆕
100+
- [MetaTrader 5 (MT5) 外汇实盘交易指南](docs/MT5_TRADING_GUIDE_CN.md) 🆕
100101

101102
### 通知配置
102103
- [Telegram 通知配置](docs/NOTIFICATION_TELEGRAM_CONFIG_CH.md)
@@ -165,8 +166,11 @@ QuantDinger 包含一个内置的**基于 LLM 的多智能体研究系统**,
165166
2. **策略配置**:附加风险管理规则(仓位管理、止损、止盈)。
166167
3. **回测 & AI 优化**:运行回测,查看丰富的性能指标,并**让 AI 分析结果以建议改进**(例如:“调整 MACD 阈值为 X”)。
167168
4. **执行模式**
168-
- **实盘交易**:直接 API 执行,支持 10+ 加密货币交易所(Binance, OKX 等)。
169-
- **信号通知**:针对非实盘执行的市场(股票/外汇/期货),通过 Telegram, Discord, Email, SMS 或 Webhook 发送信号。
169+
- **实盘交易**
170+
- **加密货币**:直接 API 执行,支持 10+ 交易所(Binance, OKX, Bitget, Bybit 等)
171+
- **美股/港股**:通过盈透证券 (IBKR) 🆕
172+
- **外汇**:通过 MetaTrader 5 (MT5) 🆕
173+
- **信号通知**:针对不支持实盘交易的市场(A股/期货),通过 Telegram, Discord, Email, SMS 或 Webhook 发送信号。
170174

171175
### 3. AI 多智能体投研
172176
*你的 7x24 小时 AI 投委会。*
@@ -330,19 +334,32 @@ score = w_{sim}\cdot sim + w_{recency}\cdot recency + w_{returns}\cdot returns\_
330334

331335
---
332336

333-
## 🔌 支持的交易所
337+
## 🔌 支持的交易所和券商
334338

335-
QuantDinger 支持直接 API 连接到主要加密货币交易所进行执行,并使用 CCXT 获取广泛的行情数据。
339+
QuantDinger 支持多种市场类型的执行方式:
336340

337-
### 直接 API 支持
341+
### 加密货币交易所(直接 API
338342

339343
| 交易所 | 市场 |
340344
|:--------:|:---------|
341345
| Binance | 现货, 合约, 杠杆 |
342346
| OKX | 现货, 永续, 期权 |
343347
| Bitget | 现货, 合约, 跟单交易 |
348+
| Bybit | 现货, 线性合约 |
349+
| Coinbase Exchange | 现货 |
350+
| Kraken | 现货, 合约 |
351+
| KuCoin | 现货, 合约 |
352+
| Gate.io | 现货, 合约 |
353+
| Bitfinex | 现货, 衍生品 |
344354

345-
### 也支持通过 CCXT
355+
### 传统券商
356+
357+
| 券商 | 市场 | 平台 |
358+
|:------:|:--------|:---------|
359+
| **盈透证券 (IBKR)** | 美股, 港股 | TWS / IB Gateway 🆕 |
360+
| **MetaTrader 5 (MT5)** | 外汇 | MT5 终端 🆕 |
361+
362+
### 行情数据(通过 CCXT)
346363

347364
Bybit、Gate.io、Kraken、KuCoin、HTX 以及 100+ 其他交易所用于行情数据。
348365

@@ -378,7 +395,7 @@ QuantDinger 为全球用户构建,提供全面的国际化支持:
378395
| **美股** | Yahoo Finance, Finnhub, Tiingo | ✅ 通过盈透证券 🆕 |
379396
| **港股** | AkShare, 东方财富 | ✅ 通过盈透证券 🆕 |
380397
| **A股** | AkShare, 东方财富 | ⚡ 仅数据 |
381-
| **外汇** | Finnhub, OANDA |通过券商 API |
398+
| **外汇** | Finnhub, OANDA |通过 MT5 🆕 |
382399
| **期货** | 交易所 API, AkShare | ⚡ 仅数据 |
383400

384401
---

README_JA.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ QuantDingerには、ウェブから金融情報を収集し、ローカル市場
9797
### 開発ガイド
9898
- [Python 戦略開発ガイド](docs/STRATEGY_DEV_GUIDE_JA.md)
9999
- [Interactive Brokers (IBKR) トレーディングガイド](docs/IBKR_TRADING_GUIDE_EN.md) 🆕
100+
- [MetaTrader 5 (MT5) トレーディングガイド](docs/MT5_TRADING_GUIDE_EN.md) 🆕
100101

101102
### 通知設定
102103
- [Telegram 通知設定](docs/NOTIFICATION_TELEGRAM_CONFIG_EN.md)
@@ -165,8 +166,11 @@ QuantDingerには、ウェブから金融情報を収集し、ローカル市場
165166
2. **戦略設定**: リスク管理ルール(ポジションサイジング、ストップロス、利益確定)を追加。
166167
3. **バックテスト & AI最適化**: バックテストを実行し、豊富なパフォーマンス指標を表示し、**AIに結果を分析させて改善を提案**させます(例:「MACD閾値をXに調整」)。
167168
4. **実行モード**:
168-
- **実取引**: 直接API実行、10以上の暗号資産取引所(Binance, OKXなど)をサポート。
169-
- **シグナル通知**: 実取引を実行しない市場(株式/FX/先物)向けに、Telegram, Discord, Email, SMS, Webhook経由でシグナルを送信。
169+
- **実取引**:
170+
- **暗号資産**: 直接API実行、10以上の取引所(Binance, OKX, Bitget, Bybitなど)をサポート
171+
- **米国/香港株式**: Interactive Brokers (IBKR)経由 🆕
172+
- **外国為替**: MetaTrader 5 (MT5)経由 🆕
173+
- **シグナル通知**: 実取引をサポートしていない市場(A株/先物)向けに、Telegram, Discord, Email, SMS, Webhook経由でシグナルを送信。
170174

171175
### 3. AI マルチエージェントリサーチ
172176
*あなたの24時間365日稼働するAI投資委員会。*
@@ -300,19 +304,32 @@ score = w_{sim}\cdot sim + w_{recency}\cdot recency + w_{returns}\cdot returns\_
300304

301305
---
302306

303-
## 🔌 対応取引所
307+
## 🔌 対応取引所とブローカー
304308

305-
QuantDingerは実行のための主要な暗号資産取引所への直接API接続をサポートし、広範な市場データカバレッジのためにCCXTを使用します。
309+
QuantDingerは複数の市場タイプに対して複数の実行方法をサポートしています:
306310

307-
### 直接APIサポート
311+
### 暗号資産取引所(直接API)
308312

309313
| 取引所 | 市場 |
310314
|:--------:|:---------|
311315
| Binance | 現物, 先物, マージン |
312316
| OKX | 現物, 無期限, オプション |
313317
| Bitget | 現物, 先物, コピートレーディング |
318+
| Bybit | 現物, リニア先物 |
319+
| Coinbase Exchange | 現物 |
320+
| Kraken | 現物, 先物 |
321+
| KuCoin | 現物, 先物 |
322+
| Gate.io | 現物, 先物 |
323+
| Bitfinex | 現物, デリバティブ |
314324

315-
### CCXT経由でもサポート
325+
### 伝統的なブローカー
326+
327+
| ブローカー | 市場 | プラットフォーム |
328+
|:------:|:--------|:---------|
329+
| **Interactive Brokers (IBKR)** | 米国株式, 香港株式 | TWS / IB Gateway 🆕 |
330+
| **MetaTrader 5 (MT5)** | 外国為替 | MT5ターミナル 🆕 |
331+
332+
### 市場データ(CCXT経由)
316333

317334
Bybit、Gate.io、Kraken、KuCoin、HTX、および100以上のその他の取引所が市場データ用にサポートされています。
318335

@@ -334,7 +351,7 @@ QuantDingerは、包括的な国際化対応により、世界中のユーザー
334351
| **米国株** | Yahoo Finance, Finnhub, Tiingo | ✅ IBKR経由 🆕 |
335352
| **香港株** | AkShare, East Money | ✅ IBKR経由 🆕 |
336353
| **中国株(A株)** | AkShare, East Money | ⚡ データのみ |
337-
| **FX** | Finnhub, OANDA |ブローカーAPI経由 |
354+
| **FX** | Finnhub, OANDA |MT5経由 🆕 |
338355
| **先物** | 取引所API, AkShare | ⚡ データのみ |
339356

340357
---

README_KO.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ QuantDinger는 웹에서 금융 정보를 수집하고, 로컬 시장 데이터
9797
### 개발 가이드
9898
- [Python 전략 개발 가이드](docs/STRATEGY_DEV_GUIDE_KO.md)
9999
- [Interactive Brokers (IBKR) 트레이딩 가이드](docs/IBKR_TRADING_GUIDE_EN.md) 🆕
100+
- [MetaTrader 5 (MT5) 트레이딩 가이드](docs/MT5_TRADING_GUIDE_EN.md) 🆕
100101

101102
### 알림 설정
102103
- [Telegram 알림 설정](docs/NOTIFICATION_TELEGRAM_CONFIG_EN.md)
@@ -165,8 +166,11 @@ QuantDinger는 웹에서 금융 정보를 수집하고, 로컬 시장 데이터
165166
2. **전략 설정**: 위험 관리 규칙(포지션 사이징, 손절매, 이익실현)을 추가하세요.
166167
3. **백테스트 & AI 최적화**: 백테스트를 실행하고, 풍부한 성과 지표를 확인하며, **AI가 결과를 분석하여 개선 사항을 제안**하도록 하세요(예: "MACD 임계값을 X로 조정").
167168
4. **실행 모드**:
168-
- **실거래**: 직접 API 실행, 10개 이상의 암호화폐 거래소(Binance, OKX 등) 지원.
169-
- **신호 알림**: 실거래를 실행하지 않는 시장(주식/외환/선물)의 경우, Telegram, Discord, Email, SMS 또는 Webhook을 통해 신호를 전송하세요.
169+
- **실거래**:
170+
- **암호화폐**: 직접 API 실행, 10개 이상의 거래소(Binance, OKX, Bitget, Bybit 등) 지원
171+
- **미국/홍콩 주식**: Interactive Brokers (IBKR) 경유 🆕
172+
- **외환**: MetaTrader 5 (MT5) 경유 🆕
173+
- **신호 알림**: 실거래를 지원하지 않는 시장(A주/선물)의 경우, Telegram, Discord, Email, SMS 또는 Webhook을 통해 신호를 전송하세요.
170174

171175
### 3. AI 멀티 에이전트 리서치
172176
*연중무휴 24시간 AI 투자 위원회.*
@@ -300,19 +304,32 @@ score = w_{sim}\cdot sim + w_{recency}\cdot recency + w_{returns}\cdot returns\_
300304

301305
---
302306

303-
## 🔌 지원되는 거래소
307+
## 🔌 지원되는 거래소 및 브로커
304308

305-
QuantDinger는 실행을 위한 주요 암호화폐 거래소에 대한 직접 API 연결을 지원하며, 광범위한 시장 데이터 커버리지를 위해 CCXT를 사용합니다.
309+
QuantDinger는 다양한 시장 유형에 대해 여러 실행 방법을 지원합니다:
306310

307-
### 직접 API 지원
311+
### 암호화폐 거래소(직접 API)
308312

309313
| 거래소 | 시장 |
310314
|:--------:|:---------|
311315
| Binance | 현물, 선물, 마진 |
312316
| OKX | 현물, 무기한, 옵션 |
313317
| Bitget | 현물, 선물, 카피 트레이딩 |
318+
| Bybit | 현물, 선형 선물 |
319+
| Coinbase Exchange | 현물 |
320+
| Kraken | 현물, 선물 |
321+
| KuCoin | 현물, 선물 |
322+
| Gate.io | 현물, 선물 |
323+
| Bitfinex | 현물, 파생상품 |
314324

315-
### CCXT를 통해서도 지원
325+
### 전통적인 브로커
326+
327+
| 브로커 | 시장 | 플랫폼 |
328+
|:------:|:--------|:---------|
329+
| **Interactive Brokers (IBKR)** | 미국 주식, 홍콩 주식 | TWS / IB Gateway 🆕 |
330+
| **MetaTrader 5 (MT5)** | 외환 | MT5 터미널 🆕 |
331+
332+
### 시장 데이터(CCXT 경유)
316333

317334
Bybit, Gate.io, Kraken, KuCoin, HTX 및 100개 이상의 기타 거래소가 시장 데이터용으로 지원됩니다.
318335

@@ -347,7 +364,7 @@ QuantDinger는 포괄적인 국제화를 통해 글로벌 사용자를 위해
347364
| **미국 주식** | Yahoo Finance, Finnhub, Tiingo | ✅ IBKR 경유 🆕 |
348365
| **홍콩 주식** | AkShare, East Money | ✅ IBKR 경유 🆕 |
349366
| **중국 주식(A주)** | AkShare, East Money | ⚡ 데이터만 |
350-
| **외환** | Finnhub, OANDA |브로커 API 경유 |
367+
| **외환** | Finnhub, OANDA |MT5 경유 🆕 |
351368
| **선물** | 거래소 API, AkShare | ⚡ 데이터만 |
352369

353370
---

README_TW.md

Lines changed: 24 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ QuantDinger 包含一個內置的**基於 LLM 的多智能體研究系統**,
9797
### 開發指南
9898
- [Python 策略開發指南](docs/STRATEGY_DEV_GUIDE_TW.md)
9999
- [盈透證券 (IBKR) 實盤交易指南](docs/IBKR_TRADING_GUIDE_CN.md) 🆕
100+
- [MetaTrader 5 (MT5) 外匯實盤交易指南](docs/MT5_TRADING_GUIDE_CN.md) 🆕
100101

101102
### 通知配置
102103
- [Telegram 通知配置](docs/NOTIFICATION_TELEGRAM_CONFIG_CH.md)
@@ -165,8 +166,11 @@ QuantDinger 包含一個內置的**基於 LLM 的多智能體研究系統**,
165166
2. **策略配置**:附加風險管理規則(倉位管理、止損、止盈)。
166167
3. **回測 & AI 優化**:運行回測,查看豐富的性能指標,並**讓 AI 分析結果以建議改進**(例如:「調整 MACD 閾值為 X」)。
167168
4. **執行模式**
168-
- **實盤交易**:直接 API 執行,支持 10+ 加密貨幣交易所(Binance, OKX 等)。
169-
- **信號通知**:針對非實盤執行的市場(股票/外匯/期貨),通過 Telegram, Discord, Email, SMS 或 Webhook 發送信號。
169+
- **實盤交易**
170+
- **加密貨幣**:直接 API 執行,支持 10+ 交易所(Binance, OKX, Bitget, Bybit 等)
171+
- **美股/港股**:通過盈透證券 (IBKR) 🆕
172+
- **外匯**:通過 MetaTrader 5 (MT5) 🆕
173+
- **信號通知**:針對不支持實盤交易的市場(A股/期貨),通過 Telegram, Discord, Email, SMS 或 Webhook 發送信號。
170174

171175
### 3. AI 多智能體投研
172176
*你的 7x24 小時 AI 投委會。*
@@ -300,19 +304,32 @@ score = w_{sim}\cdot sim + w_{recency}\cdot recency + w_{returns}\cdot returns\_
300304

301305
---
302306

303-
## 🔌 支持的交易所
307+
## 🔌 支持的交易所和券商
304308

305-
QuantDinger 支持直接 API 連接到主要加密貨幣交易所進行執行,並使用 CCXT 獲取廣泛的行情數據。
309+
QuantDinger 支持多種市場類型的執行方式:
306310

307-
### 直接 API 支持
311+
### 加密貨幣交易所(直接 API
308312

309313
| 交易所 | 市場 |
310314
|:--------:|:---------|
311315
| Binance | 現貨, 合約, 槓桿 |
312316
| OKX | 現貨, 永續, 期權 |
313317
| Bitget | 現貨, 合約, 跟單交易 |
318+
| Bybit | 現貨, 線性合約 |
319+
| Coinbase Exchange | 現貨 |
320+
| Kraken | 現貨, 合約 |
321+
| KuCoin | 現貨, 合約 |
322+
| Gate.io | 現貨, 合約 |
323+
| Bitfinex | 現貨, 衍生品 |
314324

315-
### 也支持通過 CCXT
325+
### 傳統券商
326+
327+
| 券商 | 市場 | 平台 |
328+
|:------:|:--------|:---------|
329+
| **盈透證券 (IBKR)** | 美股, 港股 | TWS / IB Gateway 🆕 |
330+
| **MetaTrader 5 (MT5)** | 外匯 | MT5 終端 🆕 |
331+
332+
### 行情數據(通過 CCXT)
316333

317334
Bybit、Gate.io、Kraken、KuCoin、HTX 以及 100+ 其他交易所用於行情數據。
318335

@@ -348,7 +365,7 @@ QuantDinger 為全球用戶構建,提供全面的國際化支持:
348365
| **美股** | Yahoo Finance, Finnhub, Tiingo | ✅ 通過盈透證券 🆕 |
349366
| **港股** | AkShare, 東方財富 | ✅ 通過盈透證券 🆕 |
350367
| **A股** | AkShare, 東方財富 | ⚡ 僅數據 |
351-
| **外匯** | Finnhub, OANDA |通過券商 API |
368+
| **外匯** | Finnhub, OANDA |通過 MT5 🆕 |
352369
| **期貨** | 交易所 API, AkShare | ⚡ 僅數據 |
353370

354371
---

backend_api_python/app/routes/__init__.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
"""
2-
API 路由模块
2+
API Routes Module
33
"""
44
from flask import Flask
55

66

77
def register_routes(app: Flask):
8-
"""注册所有 API 路由蓝图"""
8+
"""Register all API route blueprints"""
99
from app.routes.kline import kline_bp
1010
from app.routes.analysis import analysis_bp
1111
from app.routes.backtest import backtest_bp
@@ -20,9 +20,10 @@ def register_routes(app: Flask):
2020
from app.routes.settings import settings_bp
2121
from app.routes.portfolio import portfolio_bp
2222
from app.routes.ibkr import ibkr_bp
23+
from app.routes.mt5 import mt5_bp
2324

2425
app.register_blueprint(health_bp)
25-
app.register_blueprint(auth_bp, url_prefix='/api/user') # 兼容前端 /api/user/login
26+
app.register_blueprint(auth_bp, url_prefix='/api/user')
2627
app.register_blueprint(kline_bp, url_prefix='/api/indicator')
2728
app.register_blueprint(analysis_bp, url_prefix='/api/analysis')
2829
app.register_blueprint(backtest_bp, url_prefix='/api/indicator')
@@ -35,4 +36,5 @@ def register_routes(app: Flask):
3536
app.register_blueprint(settings_bp, url_prefix='/api/settings')
3637
app.register_blueprint(portfolio_bp, url_prefix='/api/portfolio')
3738
app.register_blueprint(ibkr_bp, url_prefix='/api/ibkr')
39+
app.register_blueprint(mt5_bp, url_prefix='/api/mt5')
3840

0 commit comments

Comments
 (0)