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) |
历史演进要点(读旧文章前的提醒)¶
公众号历史文章中这三类描述已过时,对照阅读时注意:
- 「APScheduler / Dagster 调度」→ 现为 MinuteScheduler。
- 「Guardian 策略」时代的仓位管理细节 → 现为插件化池策略体系。
- 早期「Windows 直接 Python 起服务」的部署方式 → 现为 Docker 基础设施 + fqlauncher。
思想层面(为什么做量化系统、架构取舍)仍然有效,收录于方法论与思考。