Files
DinQuant/README_CN.md
T
TIANHE eea7d75615 new
Signed-off-by: TIANHE <TIANHE@GMAIL.COM>
2026-01-06 19:30:16 +08:00

22 KiB
Raw Blame History


QuantDinger Logo

QuantDinger

下一代 AI 量化交易平台

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

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

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

License Python Vue Docker Stars

Telegram Group Discord X


📖 简介

QuantDinger 是什么?

QuantDinger 是一个本地优先、隐私优先的量化交易基础设施。它完全运行在你的机器上,让你完全控制自己的策略、交易数据和 API 密钥。

为什么选择本地优先?

与将你的数据和策略锁定在云端的 SaaS 平台不同,QuantDinger 在本地运行。你的策略、交易日志、API 密钥和分析结果都保留在你的机器上。没有供应商锁定,没有订阅费用,没有数据泄露风险。

适合谁使用?

QuantDinger 为以下用户而构建:

  • 重视数据主权和隐私的交易员、研究员和工程师
  • 需要透明、可审计的交易基础设施
  • 更偏好工程而非营销
  • 需要完整的工作流:数据、分析、回测和执行

核心功能

QuantDinger 包含一个内置的基于 LLM 的多智能体研究系统,能够从网络收集金融情报,结合本地市场数据,生成分析报告。这与策略开发、回测和实盘交易工作流无缝集成。

核心价值

  • 🔓 Apache 2.0 开源:完全宽松且商业友好。不像病毒式的 GPL/AGPL 协议,你真正拥有你的代码和修改权。
  • 🐍 Python 原生 & 可视化:使用标准 Python 编写指标(比 PineScript 更简单),并由 AI 辅助。直接在图表上可视化信号——打造“本地版 TradingView”体验。
  • 🤖 AI 闭环优化:不仅运行策略,AI 还会分析回测结果并建议参数调整(止损/止盈/MACD 设置),形成闭环优化。
  • 🌍 全球市场接入:统一系统支持加密货币(实盘)、美股/A股、外汇和期货(数据/通知)。
  • Docker & 清晰架构:4 行命令极速部署。现代技术栈(Vue + Python),架构清晰,关注点分离。

📺 视频演示

QuantDinger 项目介绍视频

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


📚 文档

📸 功能预览

📊 专业量化仪表盘

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

QuantDinger Dashboard

🤖 AI 深度投研

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

AI Market Analysis

💬 智能交易助手

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

Trading Assistant

📈 交互式指标分析

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

Indicator Analysis

🐍 Python 策略生成

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

Code Generation

关键特性

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 等)。
    • 信号通知:针对非实盘执行的市场(股票/外汇/期货),通过 Telegram, Discord, Email, SMS 或 Webhook 发送信号。

3. AI 多智能体投研

你的 7x24 小时 AI 投委会。

系统雇佣了一个多智能体团队作为你策略的二次过滤器:

  • 研究智能体:抓取网络新闻和宏观事件(Google/Bing)。
  • 分析智能体:分析技术指标和资金流向。
  • 策略集成:AI 的判断可以作为“市场过滤器”——仅当 AI 情绪一致时才允许策略交易(例如:“如果 AI 风险分析师标记宏观风险极高,则不要买入”)。

4. 通用数据引擎

QuantDinger 提供跨多个市场的统一数据接口:

  • 加密货币:直接 API 连接进行交易(10+ 交易所)和 CCXT 集成获取行情数据(100+ 数据源)
  • 股票Yahoo Finance、Finnhub、Tiingo(美股)和 AkShareA股/港股)
  • 期货/外汇OANDA 和主要期货数据源
  • 代理支持:内置代理配置,适应受限网络环境

5. 🧠 AI 记忆增强系统(Memory-Augmented Agents

QuantDinger 的多智能体不是“每次从零开始”。它内置了一个本地记忆库 + 反思闭环,让每个智能体在生成提示词(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["🧠 本地记忆库 SQLitedata/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"
  • 携带结构化 metadatamarket/symbol/timeframe + memory_features(价格、涨跌幅、技术指标等)
  • 检索 Top-K 历史经验:转成一段可读的 memory_prompt
  • 拼进 system_prompt:模型在做本次分析前先“读历史经验”

你可以在这些文件里看到同样的模式:

  • backend_api_python/app/services/agents/base_agent.pyget_memories() + format_memories_for_prompt()
  • backend_api_python/app/services/agents/*_agents.pytrader_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. 技术栈

  • 后端Python (Flask) + SQLite + Redis(可选)
  • 前端Vue 2 + Ant Design Vue + KlineCharts/ECharts
  • 部署Docker Compose

🔌 支持的交易所

QuantDinger 支持直接 API 连接到主要加密货币交易所进行执行,并使用 CCXT 获取广泛的行情数据。

直接 API 支持

交易所 市场
Binance 现货, 合约, 杠杆
OKX 现货, 永续, 期权
Bitget 现货, 合约, 跟单交易

也支持通过 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 通过券商 API
A股/港股 AkShare, 东方财富 仅数据
外汇 Finnhub, OANDA 通过券商 API
期货 交易所 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. 访问与配置

注意:为了使用 AI 功能或生产环境安全,请编辑 backend_api_python/.env(添加 OPENROUTER_API_KEY,修改密码),然后执行 docker-compose restart backend 重启服务。

3. 访问应用

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_PORTPROXY_URL

🤝 社区与支持


💰 项目可持续性

QuantDinger 是开源且免费使用的。如果你觉得它有用,以下是一些支持项目持续发展的方式:

直接捐赠

ERC-20 / BEP-20 / Polygon / Arbitrum

0x96fa4962181bea077f8c7240efe46afbe73641a7
USDT ETH

交易所推荐链接

如果你正在注册支持的交易所,使用下面的链接可以提供推荐收益,帮助支持项目。这些是可选的,不会影响你的交易费用或账户功能。

交易所 推荐链接
Binance 使用推荐链接注册
OKX 使用推荐链接注册
Bitget 使用推荐链接注册

专业服务

提供以下专业服务:

服务 描述
部署与设置 一对一协助服务器部署、配置和优化
定制策略开发 针对特定需求和市场定制交易策略
企业版升级 商业授权、优先支持和企业级高级功能
培训与咨询 为你的交易团队提供实战培训和战略咨询

感兴趣? 联系我们:


致谢

QuantDinger 站在这些伟大的开源项目肩膀之上:Flask, Pandas, CCXT, Vue.js, Ant Design Vue, KlineCharts 等。

感谢所有维护者和贡献者! ❤️