QuantDinger:开源本地量化交易平台
Source: Dev.to
请提供您希望翻译的完整文本内容(除代码块和 URL 之外),我将为您翻译成简体中文并保持原有的格式、Markdown 语法以及技术术语不变。谢谢!
项目定位
QuantDinger 旨在创建一个 “本地优先” 的开源 AI 量化交易工作台。它被设计为 TradingView 和 QuantConnect 的自托管替代方案,核心原则是 将数据所有权归还给用户。通过解决昂贵 SaaS 平台的痛点,QuantDinger 提供了一个自托管的解决方案,整合了:
- 数据获取
- AI 驱动的投资研究
- 策略回测
- 实时交易
核心功能实体
多源数据聚合
统一的数据接口包括:
- 加密货币 – 通过 CCXT
- 美国股票 – 通过 YFinance / Finnhub
- 中国A股 – 通过 AkShare
所有来源均提供标准化的 OHLCV(开盘价、最高价、最低价、收盘价、成交量)格式。

策略开发环境
基于 Monaco Editor 的内置代码编辑器,支持使用 Python 开发策略。

可视化图表
集成 TradingView 的 Lightweight Charts 库,用于蜡烛图显示和技术指标分析。

LLM 辅助工具
外部大语言模型(LLM)服务(通过 OpenRouter API)帮助生成代码片段或解读市场新闻。
注意:这只是一个功能模块,并非系统核心部分。

实时 / 模拟交易
支持连接交易所 API 进行订单路由和资产管理。

技术选型与架构图
代码库目录结构
QuantDinger/
├── backend_api_python/ # Flask backend
│ ├── app/
│ │ ├── routes/ # API endpoints
│ │ ├── services/ # Business logic
│ │ ├── models/ # ORM models
│ │ └── utils/ # Helper utilities
│ ├── quantdinger.db # SQLite DB
│ ├── requirements.txt # Python dependencies
│ └── run.py # Application entry point
├── quantdinger_vue/ # Vue frontend
│ ├── src/
│ └── package.json
└── docker-compose.yml # Docker orchestration
技术栈详情
| 层 | 技术 |
|---|---|
| 前端 | Vue.js 3, Vite, TypeScript, Lightweight Charts, Element Plus |
| 后端 | Python 3, Flask, SQLAlchemy (ORM), Pydantic (validation) |
| 数据适配 | ccxt (crypto exchanges), akshare (A‑share data), yfinance (US stocks) |
| 持久化 | SQLite (file‑based DB – no separate MySQL/PostgreSQL needed) |
Source: …
数据库设计
项目使用 SQLite (quantdinger.db) 来存储元数据,避免繁重的数据库维护。
表
| 表 | 用途 | 关键字段 |
|---|---|---|
| users | 基本认证 | id, username, password_hash, api_token |
| api_keys | 交易所凭证(AES 加密) | id, exchange_name, api_key, secret_key, user_id |
| strategies | 用户编写的策略代码及配置 | id, name, code_content(Python 源码),timeframe, symbol, status |
| logs / trade_history | 信号与交易历史 | id, strategy_id, timestamp, action(BUY/SELL),price, amount, message |
核心模块的详细实现
4.1 后端接口层 (app/routes)
(进一步的实现细节请参见源代码库。)
QuantDinger – 概述与部署指南
1. Flask Blueprint(RESTful API)
| 路由 | 方法 | 描述 |
|---|---|---|
| /api/market | GET | 接收前端传来的 time range 和 symbol 参数,调用数据服务层,并返回 JSON 格式的蜡烛图数组。 |
| /api/strategy | — | |
POST /save | POST | 接收一段 Python 代码字符串并将其存入数据库。 |
| … | — | (其他端点已省略) |