# QuantDinger **Repository Path**: kinkeylau/QuantDinger ## Basic Information - **Project Name**: QuantDinger - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-26 - **Last Updated**: 2026-01-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: open-quant ## README
🇺🇸 English | 🇨🇳 简体中文 | 🇹🇼 繁體中文 | 🇯🇵 日本語 | 🇰🇷 한국어

QuantDinger Logo

QuantDinger

下一代 AI 量化交易平台

🤖 AI 原生 · 🐍 可视化 Python · 🌍 全球多市场 · 🔒 隐私优先

拥有 AI 副驾驶的构建、回测与交易平台。比 PineScript 更强,比 SaaS 更智能。

官方社区 · 在线演示 · 📺 视频演示 · 🌟 加入我们

License Python Vue Docker Stars

Telegram Group Discord X

--- ## 📖 简介 ### 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),架构清晰,关注点分离。 --- ## 📺 视频演示
QuantDinger 项目介绍视频

点击上方视频观看 QuantDinger 项目介绍

--- ## 📚 文档 ### 开发指南 - [Python 策略开发指南](docs/STRATEGY_DEV_GUIDE_CN.md) - [盈透证券 (IBKR) 实盘交易指南](docs/IBKR_TRADING_GUIDE_CN.md) 🆕 - [MetaTrader 5 (MT5) 外汇实盘交易指南](docs/MT5_TRADING_GUIDE_CN.md) 🆕 ### 通知配置 - [Telegram 通知配置](docs/NOTIFICATION_TELEGRAM_CONFIG_CH.md) - [邮件 (SMTP) 通知配置](docs/NOTIFICATION_EMAIL_CONFIG_CH.md) - [短信 (Twilio) 通知配置](docs/NOTIFICATION_SMS_CONFIG_CH.md) ## 📸 功能预览

🗺️ 系统架构总览

QuantDinger AI 驱动的研究、回测和自动化交易功能全景图。

QuantDinger 系统拓扑图

📊 专业量化仪表盘

实时监控市场动态、资产状况和策略状态。

QuantDinger Dashboard

🤖 AI 深度投研

多智能体协作进行市场情绪与技术分析。

AI Market Analysis

💬 智能交易助手

通过自然语言接口获取即时市场洞察。

Trading Assistant

📈 交互式指标分析

丰富的技术指标库,支持拖拽式分析。

Indicator Analysis

🐍 Python 策略生成

内置编辑器,支持 AI 辅助策略代码编写。

Code Generation

📊 资产监测

追踪持仓、设置预警,并通过邮件/Telegram 接收 AI 分析报告。

Portfolio Monitor
--- ## ✨ 关键特性 ### 1. 可视化 Python 策略工作台 *比 PineScript 更强,比 SaaS 更智能。* - **Python 原生**:用 Python 编写指标和策略。利用完整的 Python 生态(Pandas, Numpy, TA-Lib),而不是 PineScript 这种专用语言。 - **"Mini-TradingView" 体验**:直接在内置的 K 线图上运行你的 Python 指标。在历史数据上可视化调试买卖信号。 - **AI 辅助编程**:让内置 AI 为你编写复杂的逻辑。从创意到代码只需几秒钟。 ### 2. 完整的交易生命周期 *从指标到执行,无缝衔接。* 1. **指标**:定义你的市场入场/出场信号。 2. **策略配置**:附加风险管理规则(仓位管理、止损、止盈)。 3. **回测 & AI 优化**:运行回测,查看丰富的性能指标,并**让 AI 分析结果以建议改进**(例如:“调整 MACD 阈值为 X”)。 4. **执行模式**: - **实盘交易**: - **加密货币**:直接 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)时能检索过往经验,并在事后验证/复盘后把结果写回记忆库。 - **本质**:RAG 风格的“经验检索增强”,**不是**训练/微调模型权重(零外部向量库依赖)。 - **隐私**:所有记忆与反思记录默认落盘在本地 SQLite:`backend_api_python/data/memory/`。 #### 逻辑图(从请求到记忆闭环) ```mermaid flowchart TB %% ===== 🌐 入口层 ===== subgraph Entry["🌐 API 入口"] A["📡 POST /api/analysis/multi"] A2["🔄 POST /api/analysis/reflect"] end %% ===== ⚙️ 服务编排层 ===== subgraph Service["⚙️ 服务编排"] B[AnalysisService] C[AgentCoordinator] D["📊 构建上下文
price · kline · news · indicators"] end %% ===== 🤖 多智能体工作流 ===== subgraph Agents["🤖 多智能体工作流"] subgraph P1["📈 Phase 1 · 多维分析(并行)"] E1["🔍 MarketAnalyst
技术面分析"] E2["📑 FundamentalAnalyst
基本面分析"] E3["📰 NewsAnalyst
新闻舆情"] E4["💭 SentimentAnalyst
市场情绪"] E5["⚠️ RiskAnalyst
风险评估"] end subgraph P2["🎯 Phase 2 · 多空博弈(并行)"] F1["🐂 BullResearcher
看多论据"] F2["🐻 BearResearcher
看空论据"] end subgraph P3["💹 Phase 3 · 交易决策"] G["🎰 TraderAgent
综合研判 → BUY / SELL / HOLD"] 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 ``` #### 1) 记忆是如何“注入提示词”的? 每个 agent 在 `analyze()` 时会: - **构造 situation**:例如 `"{market}:{symbol} fundamental analysis"`、`"{market}:{symbol} trading decision"` 等 - **携带结构化 metadata**:`market/symbol/timeframe` + `memory_features`(价格、涨跌幅、技术指标等) - **检索 Top-K 历史经验**:转成一段可读的 `memory_prompt` - **拼进 system_prompt**:模型在做本次分析前先“读历史经验” 你可以在这些文件里看到同样的模式: - `backend_api_python/app/services/agents/base_agent.py`:`get_memories()` + `format_memories_for_prompt()` - `backend_api_python/app/services/agents/*_agents.py`、`trader_agent.py`:把 `memory_prompt` 拼进 system prompt #### 2) 记忆检索算法(为什么“像”RAG?) 每个角色的记忆表保存(简化): - **situation / recommendation / result / returns** - **market / symbol / timeframe / features_json** - **embedding(可选 BLOB)**:本地“哈希向量”嵌入(无外部依赖) 检索时会从最近 `AGENT_MEMORY_CANDIDATE_LIMIT` 条候选中打分排序: \[ score = w_{sim}\cdot sim + w_{recency}\cdot recency + w_{returns}\cdot returns\_score \] - **sim**:默认用 embedding cosine,相同维度的本地哈希向量;没有 embedding 时退化为 difflib 文本相似度 - **recency**:半衰期衰减(`AGENT_MEMORY_HALF_LIFE_DAYS`) - **returns_score**:对收益做 `tanh` 压缩,避免极值支配排序 - **timeframe 惩罚**:如果查询 timeframe 与记忆记录 timeframe 不一致,会额外扣分 #### 3) “学习”从哪里来?(两条写入通道) - **自动反思(可选)**: - 分析结束后,系统会把 BUY/SELL/HOLD 记录到 `reflection_records.db` - 开启 `ENABLE_REFLECTION_WORKER=true` 后,后台线程会按 `REFLECTION_WORKER_INTERVAL_SEC` 轮询到期记录,拉取最新价格做验证,并把验证结果写回 `trader_agent_memory.db` - **手动复盘(推荐)**: - 调用 `POST /api/analysis/reflect`,把你的真实交易结果(returns/result)写回记忆库,用于后续决策增强 #### 4) 关键环境变量(`.env`) - **ENABLE_AGENT_MEMORY**:是否启用记忆增强(默认 true) - **AGENT_MEMORY_TOP_K**:每次注入的经验条数(默认 5) - **AGENT_MEMORY_CANDIDATE_LIMIT**:候选池大小(默认 500) - **AGENT_MEMORY_ENABLE_VECTOR**:是否启用 embedding cosine(默认 true;否则退化为文本相似) - **AGENT_MEMORY_EMBEDDING_DIM**:哈希 embedding 维度(默认 256) - **AGENT_MEMORY_HALF_LIFE_DAYS**:时间衰减半衰期(默认 30) - **AGENT_MEMORY_W_SIM / W_RECENCY / W_RETURNS**:三项权重(默认 0.75 / 0.20 / 0.05) - **ENABLE_REFLECTION_WORKER**:是否启用自动验证闭环(默认 false) - **REFLECTION_WORKER_INTERVAL_SEC**:自动验证周期(默认 86400 秒) ### 6. 策略运行时 - **基于线程的执行器**:独立的线程池用于策略执行 - **自动恢复**:系统重启后恢复运行中的策略 - **订单队列**:后台工作线程用于订单执行 ### 7. 多LLM提供商支持 QuantDinger 支持多个 AI 提供商,具备自动检测功能: | 提供商 | 特点 | |--------|------| | **OpenRouter** | 多模型网关(默认),100+ 模型 | | **OpenAI** | GPT-4o, GPT-4o-mini | | **Google Gemini** | Gemini 1.5 Flash/Pro | | **DeepSeek** | DeepSeek Chat(性价比高) | | **xAI Grok** | Grok Beta | 只需在 `.env` 中配置您首选提供商的 API 密钥,系统会自动检测可用提供商。 ### 8. 用户管理与安全 - **多用户支持**:基于 PostgreSQL 的用户账户,支持基于角色的权限管理 - **OAuth 登录**:Google 和 GitHub OAuth 集成 - **邮箱验证**:通过邮箱验证码进行注册和密码重置 - **安全功能**:Cloudflare Turnstile 人机验证、IP/账户速率限制 - **演示模式**:用于公开演示的只读模式 ### 9. 技术栈 - **后端**:Python (Flask) + PostgreSQL + 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 为全球用户构建,提供全面的国际化支持:

English Simplified Chinese Traditional Chinese Japanese Korean German French Thai Vietnamese Arabic

所有 UI 元素、错误信息和文档均已完全翻译。语言会根据浏览器设置自动检测,也可以在应用中手动切换。 --- ### 支持的市场 | 市场类型 | 数据源 | 交易 | |-------------|--------------|---------| | **加密货币** | Binance, OKX, Bitget, + 100 交易所 | ✅ 全面支持 | | **美股** | Yahoo Finance, Finnhub, Tiingo | ✅ 通过盈透证券 🆕 | | **港股** | AkShare, 东方财富 | ✅ 通过盈透证券 🆕 | | **A股** | AkShare, 东方财富 | ⚡ 仅数据 | | **外汇** | Finnhub, OANDA | ✅ 通过 MT5 🆕 | | **期货** | 交易所 API, AkShare | ⚡ 仅数据 | --- ### 架构 (当前仓库) ```text ┌─────────────────────────────┐ │ quantdinger_vue │ │ (Vue 2 + Ant Design Vue) │ └──────────────┬──────────────┘ │ HTTP (/api/*) ▼ ┌─────────────────────────────┐ │ backend_api_python │ │ (Flask + 策略运行时) │ └──────────────┬──────────────┘ │ ├─ PostgreSQL(多用户支持) ├─ Redis (可选缓存) └─ 数据提供商 / LLMs / 交易所 ``` --- ### 仓库目录结构 ```text . ├─ 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** ```bash 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)** ```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 命令参考 ```bash # 查看运行状态 docker-compose ps # 查看日志 docker-compose logs -f # 停止服务 docker-compose down # 停止并删除卷 (警告:会删除数据库!) docker-compose down -v ``` #### 数据持久化 以下数据挂载到主机,重启容器后依然保留: ```yaml 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) ```bash 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) ```bash 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` - **数据库**: `DATABASE_URL` (PostgreSQL 连接字符串) - **AI / LLM**: `LLM_PROVIDER` (openrouter/openai/google/deepseek/grok), 各提供商 API 密钥 - **OAuth**: `GOOGLE_CLIENT_ID`, `GOOGLE_CLIENT_SECRET`, `GITHUB_CLIENT_ID`, `GITHUB_CLIENT_SECRET` - **安全**: `TURNSTILE_SITE_KEY`, `TURNSTILE_SECRET_KEY`, `ENABLE_REGISTRATION` - **网络搜索**: `SEARCH_PROVIDER`, `SEARCH_GOOGLE_*`, `SEARCH_BING_API_KEY` - **订单执行**: `ORDER_MODE` (maker/market), `MAKER_WAIT_SEC`, `MAKER_OFFSET_BPS` - **代理 (可选)**: `PROXY_PORT` 或 `PROXY_URL` - **后台服务**: `ENABLE_PENDING_ORDER_WORKER`, `ENABLE_PORTFOLIO_MONITOR` --- ## 🤝 社区与支持 - **贡献**: [贡献指南](CONTRIBUTING.md) · [贡献者](CONTRIBUTORS.md) - **Telegram**: [QuantDinger 群组](https://t.me/quantdinger) - **Discord**: [加入服务器](https://discord.gg/vwJ8zxFh9Q) - **📺 视频演示**: [项目介绍](https://youtu.be/HPTVpqL7knM) - **YouTube**: [@quantdinger](https://youtube.com/@quantdinger) - **Email**: [brokermr810@gmail.com](mailto:brokermr810@gmail.com) - **GitHub Issues**: [报告 Bug / 功能请求](https://github.com/brokermr810/QuantDinger/issues) --- ## 💼 商业授权与赞助(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](https://t.me/worldinbroker) - **Email**: [brokermr810@gmail.com](mailto:brokermr810@gmail.com) --- ### 💼 值得信赖的交易所合作伙伴(联盟链接) 使用我们的合作伙伴链接,在享受相同交易体验的同时支持 QuantDinger 的发展。
Binance

全球最大的加密货币交易所
现货 • 期货 • 杠杆交易
OKX

领先的衍生品平台
现货 • 永续合约 • 期权
Bitget

创新的跟单交易
现货 • 期货 • 社交交易
--- ### 💝 直接支持(捐赠) 你的贡献帮助我们维护和改进 QuantDinger。 **加密货币捐赠 (ERC-20 / BEP-20 / Polygon / Arbitrum)** ``` 0x96fa4962181bea077f8c7240efe46afbe73641a7 ```

USDT ETH

--- ### 🎓 支持伙伴 我们很荣幸获得推动量化金融教育和研究的学术机构和组织的支持。
印第安纳大学量化金融学会

量化金融学会 (QFS)
印第安纳大学布卢明顿分校
培养下一代量化金融专业人才
> 💡 **有兴趣成为支持伙伴吗?** 我们欢迎与大学、研究机构和组织合作。请通过 [brokermr810@gmail.com](mailto:brokermr810@gmail.com) 或 [Telegram](https://t.me/worldinbroker) 联系我们。 --- ### 致谢 QuantDinger 站在这些伟大的开源项目肩膀之上:Flask, Pandas, CCXT, Vue.js, Ant Design Vue, KlineCharts 等。 感谢所有维护者和贡献者! ❤️