跳转至

freshquant 架构与数据:系统总览

这一页回答一个问题:freshquant 这套系统由什么组成,各部分的知识在哪里。安装与日常使用见本节其他页面;本页是架构地图。系统级的权威文档随源码分发(freshquant 仓库 docs/ 目录),此处给出导读与速查。

系统形态

freshquant 不是单一桌面程序,而是「Python 核心 + Web UI + Docker 基础设施 + 本地执行器」的组合:

fqwebui (Vue3) ──→ rear API (Flask, :30005) ──→ freshquant 核心
                                                      │
fqctl (命令行) ──────────────────────────────────────┤
                                                      │
Docker: MongoDB + Redis + 行情网关                     │
                                                      ▼
本地执行器 (MiniQMT/大QMT, :30088) ←── Redis 订单队列
  • fqctl:命令行入口,管理配置与股票/ETF/指数/债券/期货各类数据资源。
  • fqwebui + rear:浏览器端看盘与操作界面。
  • fqlauncher:进程/服务管理器,负责拉起、自动重启与健康检查。
  • 执行链路:Docker 内的策略监控 → Redis ORDER_QUEUE → 本地交易执行器下单。

五大主题速查

1. 行情数据平台(feed)

多数据源统一接入:akshare(东财/新浪)、tushare、yfinance、pytdx、通达信本地离线数据。核心机制是 ProviderRouter 两层路由(按品种与周期自动选源)+ GapDetector 空洞检测回填 + 故障转移。

  • 权威文档:freshquant 仓库 docs/agent/ 行情数据获取指南、行情数据平台设计
  • 相关文章:Feed Engine 路由、空洞扫描、故障转移系列(2026 年)

2. 信号系统

统一信号接口,回测与实盘同源——同一套信号函数两边跑。CLXS 系列缠论形态模型(S0000~S0017)与 fqchan01~06 内核都在这里接入。

3. 股票池与策略插件

入池/出池策略是插件化双注册表架构(builtin + custom),支持自写策略挂载;计划执行引擎采用三臂管线,分钟级调度。

  • 权威文档:.trellis/spec/backend/ pool-strategy-system、screening-plugin-system 架构契约

4. 调度:MinuteScheduler

任务调度从 APScheduler/Dagster 演进为自研 MinuteScheduler(2026-09):标准 cron 表达式,任务在每个 tick 从数据库重建,天然幂等。早期文章中基于 APScheduler/Dagster 的用法已过时,以此为准。

5. 实盘执行:MiniQMT 与大QMT

MiniQMT(xtquant)为主执行器,大QMT(fqbigqmt)为互斥替换件——同端口 30088,由 fqlauncher 单选开关切换,契约见 .trellis/spec/backend/xt-executor-contract.md。

技术栈基线

项 现状
Python 3.12(uv 管理,禁 pip)
硬依赖 MongoDB、Redis(Docker Compose 起)
回测 backtrader(vendored),信号与实盘同源
缠论内核 fqchan01~06(本地路径依赖 vendor 集成)
版本号 日期版本制(如 2026.9.29)

历史演进要点(读旧文章前的提醒)

公众号历史文章中这三类描述已过时,对照阅读时注意:

  1. 「APScheduler / Dagster 调度」→ 现为 MinuteScheduler。
  2. 「Guardian 策略」时代的仓位管理细节 → 现为插件化池策略体系。
  3. 早期「Windows 直接 Python 起服务」的部署方式 → 现为 Docker 基础设施 + fqlauncher。

思想层面(为什么做量化系统、架构取舍)仍然有效,收录于方法论与思考。