跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonSaaSAI算法

QuantDinger 本地化私有量化交易系统架构设计与实现

QuantDinger 是一个基于 Local-First 理念的开源 AI 量化交易工作台,旨在提供私有化的数据所有权和自托管解决方案。系统采用 Vue.js 3 前端与 Python Flask 后端架构,集成 CCXT、AkShare 等多源数据接口,支持加密货币、美股及 A 股数据聚合。核心功能包括 Monaco 编辑器策略开发、Lightweight Charts 可视化图表、LLM 辅助工具及实盘模拟交易。数据库使用 SQLite 存储元数据,通过 Docker Compose 部署。项目强调安全性与扩展性,建议未来引入沙箱机制及时序数据库优化性能。适合具备 Python 基础的个人交易者使用。

二进制发布于 2026/3/28更新于 2026/7/2551 浏览
QuantDinger 本地化私有量化交易系统架构设计与实现

1. 项目背景与功能

项目定位:

QuantDinger 旨在打造一个 Local-First(本地优先)的开源 AI 量化交易工作台。它被设计为 TradingView 和 QuantConnect 的私有化替代方案,核心理念是将数据所有权归还给用户。针对昂贵的 SaaS 平台痛点,它提供了一个集数据获取、AI 投研、策略回测、实盘交易于一体的自托管解决方案。

文章配图

核心功能实体:

  • 多源数据聚合: 统一封装了加密货币(CCXT)、美股(YFinance/Finnhub)、A 股(AkShare)的数据接口,提供标准化的 OHLCV(开高低收量)数据格式。
  • 策略开发环境: 内置基于 Monaco Editor 的代码编辑器,支持 Python 语言编写策略。
  • 可视化图表: 集成 TradingView 的 Lightweight Charts 库,用于 K 线展示和技术指标分析。
  • LLM 辅助工具: 通过 API 调用外部大模型(OpenRouter),辅助生成代码片段或解读市场新闻(作为一个功能模块存在,而非系统核心)。
  • 实盘/模拟交易: 支持对接交易所 API 进行订单路由和资产管理。

文章配图

文章配图

文章配图

文章配图

文章配图


2. 技术选型与架构图

代码库目录结构(推断基于常见 Flask/Vue 项目):

QuantDinger/
├── backend_api_python/ # 后端核心代码
│   ├── app/
│   │   ├── routes/ # API 路由层 (Controller)
│   │   ├── services/ # 业务逻辑层 (Service)
│   │   ├── models/ # 数据库模型 (ORM)
│   │   └── utils/ # 工具类 (加密、日志等)
│   ├── quantdinger.db # SQLite 数据库文件
│   ├── requirements.txt # Python 依赖
│   └── run.py # Flask 启动入口
├── quantdinger_vue/ # 前端代码
│   ├── src/ # Vue 源码
│   └── package.json # Node 依赖
└── docker-compose.yml # 容器编排配置

技术栈详情:

  • 前端: Vue.js 3, Vite, TypeScript, Lightweight Charts (K 线图), Element Plus (UI 组件)。
  • 后端: Python Flask (Web 框架), SQLAlchemy (ORM), Pydantic (数据校验)。
  • 数据适配层:
    • ccxt: 处理 100+ 加密货币交易所的 REST/WebSocket 数据。
    • akshare: 爬取 A 股财经数据。
    • yfinance: 获取美股历史数据。
  • 持久化: SQLite (轻量级文件数据库,无需额外部署 MySQL/PG)。

3. 数据库设计

项目采用 SQLite (quantdinger.db) 存储元数据,避免了繁重的数据库维护。主要数据表(Model)设计如下:

  1. users 表
    • 用于基础的身份验证。
    • 字段:id, username, password_hash, api_token。
  2. api_keys 表
    • 存储交易所的访问凭证。
    • 字段:id, exchange_name, api_key (AES 加密存储), secret_key (AES 加密存储), user_id。
  3. strategies 表
    • 存储用户编写的策略代码及配置。
    • 字段:id, name, code_content (Text 类型,存储 Python 源码), timeframe (如 '1h', '1d'), symbol (如 'BTC/USDT'), status (RUNNING/STOPPED)。
  4. logs / trade_history 表
    • 记录策略运行时的信号和成交记录。
    • 字段:id, strategy_id, timestamp, action (BUY/SELL), price, amount, message。

4. 核心模块实现详解

4.1 后端接口层 (app/routes)

基于 Flask Blueprint 实现 RESTful API,主要包含:

  • Market Route (/api/market): 接收前端的时间范围、标的参数,调用数据服务层,返回 JSON 格式的 K 线数组。
  • Strategy Route (/api/strategy):
    • POST /save: 接收 Python 代码字符串并存入数据库。
    • POST /run: 触发策略执行逻辑。
    • GET /logs: 轮询读取策略运行日志。
  • LLM Route (/api/llm): 作为一个透传代理,将前端的 Prompt 封装后转发给 OpenRouter API,并将返回的 Code 或 Text 传回前端。
4.2 数据适配服务 (app/services/data_factory.py)

这是一个典型的工厂模式实现,用于屏蔽不同数据源的差异:

  • 定义统一接口 IDataSource,包含方法 fetch_ohlcv(symbol, timeframe, limit)。
  • Crypto 实现类: 实例化 ccxt.binance() 或 ccxt.okx(),处理 API 签名和网络请求。
  • Stock 实现类: 调用 akshare 的函数或 yfinance.download(),并将返回的 Pandas DataFrame 转换为统一的 [timestamp, open, high, low, close, volume] 列表格式。
4.3 策略执行引擎 (app/services/execution_engine.py)

这是系统的核心,负责运行用户的 Python 代码。

  • 动态执行: 使用 Python 内置的 exec() 函数或 importlib 动态加载用户编写的代码字符串。
  • 沙箱/上下文注入: 在执行 exec() 时,通过 locals 参数注入系统封装好的 API 对象(如 buy(), sell(), get_data()),使得用户代码可以直接调用这些函数而无需关心底层实现。
  • 进程管理: 为了防止策略死循环阻塞 Web 服务,每个运行的策略通常由 multiprocessing 启动一个独立进程或线程来运行。

5. 部署运行步骤

项目依赖环境较为复杂(涉及 Python 数据科学库和 Node 环境),强烈建议使用 Docker。

  1. 环境配置:
    • 在项目根目录创建 .env 文件。
    • Backend 容器: 基于 python:3.10-slim,自动 pip install 依赖并启动 Flask (Gunicorn)。
    • Frontend 容器: 基于 Nginx,构建 Vue 产物并托管静态文件,同时配置反向代理将 /api 请求转发给 Backend 容器。
  2. 访问:
    • 浏览器访问 http://localhost:80 (或 docker-compose 中映射的端口)。
    • 初始化管理员账号(首次启动时可能需要查看 docker logs 获取初始密码或手动创建)。

构建与启动:

# 利用 Docker Compose 编排前后端
docker-compose up -d --build

配置关键变量:

FLASK_APP=run.py FLASK_ENV=production SECRET_KEY=your_secure_key # 用于 Session 加密
OPENROUTER_API_KEY=sk-xxx # 如果不需要 LLM 功能可留空

6. 项目总结与优化方向

项目总结: QuantDinger 本质上是一个 Web 版的 Python 量化脚本运行器。它通过 Web 界面降低了 ccxt 和 pandas 的使用门槛,利用 SQLite 实现了轻量级的数据持久化。其去中心化的架构使得交易策略和 API 密钥完全掌握在用户手中,适合对隐私敏感且具备一定 Python 基础的个人交易者。

优化方向 (代码与架构层面):

  1. 安全性增强 (Sandboxing): 目前使用 exec() 执行用户代码存在安全风险。建议引入 Docker 里的 Docker (DinD) 或使用 gVisor 为每个策略分配独立的沙箱容器,防止恶意代码读取文件系统。
  2. 数据存储升级: SQLite 并不适合存储海量 Tick 级金融数据。建议引入 TimescaleDB 或 InfluxDB 替换 SQLite 作为行情数据的存储后端,提高查询效率。
  3. 事件驱动引擎: 目前架构偏向于简单的脚本轮询。建议重构为事件驱动 (Event-Driven) 架构,引入消息队列 (Redis/RabbitMQ),实现'行情更新 -> 触发事件 -> 策略响应 -> 交易执行'的低延迟链路。
  4. 代码复用模块化: 允许用户上传自定义的 Python 库或模块(.py 文件),而不仅仅是单文件脚本,以便复用复杂的指标计算逻辑。

GitHub 仓库

目录

  1. 1. 项目背景与功能
  2. 2. 技术选型与架构图
  3. 3. 数据库设计
  4. 4. 核心模块实现详解
  5. 4.1 后端接口层 (app/routes)
  6. 4.2 数据适配服务 (app/services/data_factory.py)
  7. 4.3 策略执行引擎 (app/services/execution_engine.py)
  8. 5. 部署运行步骤
  9. 利用 Docker Compose 编排前后端
  10. 6. 项目总结与优化方向
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • GitHub 界面中文化插件安装与配置指南
  • Robot Lab 基于 Isaac Lab 的机器人强化学习使用指南
  • AI 测试技术详解:自动化框架、缺陷检测与 A/B 测试优化
  • Windows 环境下 llama.cpp 编译与 Qwen 模型本地部署
  • GitHub Copilot 四种模式区别:Agent、Ask、Edit、Plan
  • DeepSeek-R1 大模型基于 MS-Swift 框架部署与微调实践
  • 腾讯云服务器部署 OpenClaw 对接飞书实战详解
  • 单链表综合练习:删除指定节点、反转与查找中间节点
  • 单链表核心操作全实现:查找、插入与删除的深度解析
  • Ratel 斗地主服务器搭建与 cpolar 内网穿透配置
  • GitHub Copilot 学生身份认证教程(非校园网)
  • 常见 WEB 安全漏洞原理及防御措施详解
  • 基于 FPGA 的 USB2.0 UTMI PHY 芯片测试方案设计与实现
  • 前端组件库:拒绝重复造轮子
  • SpringBoot 登录认证全栈实现:Session、统一结果封装、MD5 加密与拦截器
  • AI 绘画技术原理与商业化应用指南
  • Flutter 三方库 discord_interactions 的鸿蒙化适配指南
  • Web 自动化测试入门:从概念到百度搜索实战
  • 本地跑DeepSeek:用Ollama和Chatbox搭建私密AI助手
  • OpenClaw 移动端部署实战:iOS/Android 语音唤醒与离线 AI

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online