# tdx-quant-panel **Repository Path**: pythonk/tdx-quant-panel ## Basic Information - **Project Name**: tdx-quant-panel - **Description**: 通达信量化,基于通达信tqcenter。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 13 - **Created**: 2026-11-10 - **Last Updated**: 2026-11-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
# 通达信量化工作台 **把通达信变成可编程的量化终端** —— 选股、回测、监控、复盘、实盘联动,一个本地工作台全包 [![Version](https://img.shields.io/badge/version-v0.2.0-e11d48.svg)](./VERSION) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](./LICENSE) [![Python](https://img.shields.io/badge/Python-3.14-3776ab.svg)](https://www.python.org/) [![React](https://img.shields.io/badge/React-18-61dafb.svg)](https://react.dev/) [![Data](https://img.shields.io/badge/Data-TQCenter%20·%20本地-00b386.svg)](#数据从哪来) [界面预览](#界面预览) · [5 分钟上手](#5-分钟上手) · [核心能力](#核心能力) · [部署](#部署) · [常见问题](#常见问题) · [文档](#文档)
看板
--- ## 这是什么 一个跑在本机的 A 股量化工作台。数据直接读通达信客户端里的**本地行情库**(TQCenter 模块),不需要买数据接口、不需要上传任何东西到云端:打开就有全市场日 K、分钟 K、财务、概念行业分类。 它解决的是「通用行情软件做不了、专业量化平台又太重」的那一段: - **策略要自己写** —— 内置 19 个可直接用的策略,也支持自己写过滤函数、写监控规则、用 AI 生成 - **回测要能信** —— 三档回测(因子 IC / 策略组合 / 单票仓位),T+1、手续费、滑点、涨跌停不可成交都按真实规则算 - **盘后要能复盘** —— 连板梯队、情绪周期、概念主线、AI 复盘报告,一条命令跑完 - **盘中要能盯** —— 四类监控规则 + 语音播报 + 飞书/企微推送,异动按交易所口径算偏离值 - **数据要能落盘** —— 全市场指标沉淀成 Parquet 宽表,用 SQL 想怎么筛就怎么筛 > 形态上是「Web 面板 + 本地后端」:前端 React,后端 FastAPI,指标计算 Polars,查询 DuckDB,存储 Parquet。也可以打包成 Windows 桌面程序,双击即用。 --- ## 界面预览
看板 · 市场情绪 / 涨跌分布 / 异动事件流 自选 · 实时价量 + 信号标签
看板 自选
策略 · 一次扫描全市场,卡片即结果 策略代码编辑器 · 三栏:策略库 / 代码 / 参数
策略选股 策略代码编辑器
回测 · 净值 / 回撤 / 交易明细 因子筛选 · 61 个因子批量检验 IC / IR
策略回测 因子筛选
概念分析 · 领涨主线 + 个股穿透 连板梯队 · 分层统计 + 炸板跟踪
概念分析 连板梯队
市场环境 · 情绪周期 6 阶段 个股分析 · 日 K + 9 类关键价位
市场环境 个股分析
监控中心 · 规则 + 触发记录 数据 · 本地数据画像与同步状态
监控中心 数据管理
异动监控 · 按交易所口径算偏离值
异动监控
截图全部来自本机真实运行环境(2026-11-05 收盘数据)
--- ## 核心能力 | 模块 | 你在这里做什么 | 关键实现 | | :--- | :--- | :--- | | **看板** | 一屏看完市场:情绪评分、涨跌/成交额分布、概念领涨领跌、大盘异动事件流 | 情绪评分由连板梯队 + 赚钱效应驱动 | | **自选** | 自选股表格 / 卡片双视图,换手、量比、RSI、60 日动量、信号标签实时刷新 | 与通达信 `zxg` + 自定义板块双向同步 | | **策略选股** | 19 个内置策略卡片,点一下扫全市场;也可叠加条件、写自定义过滤、让 AI 生成 | Polars 表达式 + DuckDB 直查 enriched 宽表 | | **回测** | 三种模式:因子检验(IC/IR/分层)、策略组合、单票仓位;T+1、手续费、滑点、涨跌停全部按真实规则 | 向量化计算 + SSE 流式进度 | | **因子筛选** | 61 个因子(动量/乖离/超买超卖/趋势/波动/量价/位置/形态/流动性/涨停基因/财务)批量算 IC、IR、多空收益 | 截面去均值、purge 防泄漏 | | **监控中心** | 四类规则(策略信号 / 个股信号 / 价格 / 异动),多条件 AND/OR,盘中弹窗 + 语音 + 推送 | 快照轮询 6s,封单 10s | | **异动监控** | 按交易所口径算 3/10/30 日偏离值,提前盯住「即将触发异动」的票 | 收盘后更新名单,盘中算接近度 | | **连板梯队** | 连板层级、封单、炸板/翘板、晋级率,盘后自动生成 | 涨跌停价按板块规则判定(ST 5% / 双创 20% / 北交所 30%) | | **概念 / 行业分析** | 涨幅轮动矩阵、领涨主线、龙头与成分股穿透 | 同花顺概念 + 通达信行业分类 | | **市场环境** | 情绪周期 6 阶段(冰点→退潮→震荡→修复→主升→加速),概念/行业主线排名 | 状态机 + 250 日历史回看 | | **个股分析** | 日 K + 9 类关键价位(支撑/压力/中枢/缺口/斐波那契)+ AI 四维分析 | AI 可选,不填 Key 也能看技术面 | | **复盘** | 盘后 AI 自动写市场复盘,可定时执行、推送到飞书、下载 Markdown | 可完全离线跑,只把摘要给模型 | | **数据** | 本地数据画像、覆盖区间、同步状态、盘后管道一键补 | 增量落盘,按日分区 | | **实盘** | 通达信账户句柄验证、持仓自动同步(下单通道预留) | 走 TQ 实盘 API |
19 个内置策略清单 | 类型 | 策略 | | :--- | :--- | | 趋势 | 均线多头、趋势突破、均线回踩反弹、缩量回踩 | | 突破 | 布林突破、量价齐升、区间分位抄底 | | 动量 | 连板股、连板接力、逼近涨停、强势高开、高换手拉升、低波动龙头 | | 反转 | 超跌反弹、超跌反转、新低反转、断板反包 | | 指标 | MA 金叉、MACD 金叉放量 | 每个策略都是独立 `.py` 文件,自带元数据(参数、评分权重、适用市场),放进目录即自动注册。扩展方式有三种:写过滤函数、写完整历史策略、把通达信公式改写过来。
--- ## 5 分钟上手 **前置:电脑上装有能正常打开的通达信金融终端**([官网下载](https://www.tdx.com.cn/soft.html)),并做过一次「盘后数据下载」。 1. **启动工作台** 桌面版双击图标;源码运行见[部署](#部署)。首次启动会联网下载运行组件(约 126 MB,见[首次启动](#首次启动))。 2. **确认数据源** 进 **设置 → 数据源**,确认通达信安装目录(自动检测,也可手动指定)。 3. **跑一次盘后管道** **数据** 页 → **立即跑盘后管道**。它会拉日 K、分钟 K、财务,计算全市场指标,落成 enriched 宽表。当日数据一般要收盘后 1–2 小时才齐。 4. **加自选、扫策略** **自选** 页加几只票 → **策略** 页点右上角「策略池」勾选策略 → 点卡片出结果。 5. **验证策略** **回测** 页选同一策略、选区间 → 看净值、最大回撤、夏普(用「仓位模拟」才是可执行收益,「全量模拟」是等权理想值)。 6. **交给盘中监控** **监控中心** 建规则(例:RSI14 < 30 且 涨幅 > 1%),盘中触发会弹窗 + 播报;填了飞书/企微 Webhook 还能推到手机。 --- ## 部署 ### 方式 A:安装包 / 便携版(推荐给使用者) 下载后安装或解压即用,无需 Python 环境。安装目录约 190 MB,分发包约 62 MB。 ### 首次启动 数据引擎(polars 原生运行时 + numpy / pyarrow / duckdb / pandas / scikit-learn 等 C 扩展)**不随包分发**,首次启动时从国内镜像下载,进度显示在启动过渡页: ``` polars 运行时 ~49 MB 其他 C 扩展 ~77 MB ──────────────────────── 合计 ~126 MB (阿里云 → 清华 → PyPI 官方 三级兜底) ``` 装过一次就不再下载,之后可完全离线使用。失败时过渡页会写明是哪一步、哪个包失败,并可点「重新尝试」。 ### 方式 B:源码 + 一键脚本(推荐给改代码的人) ```bash cp .env.example .env # 可选:填 AI Key / 访问密码 ./dev.sh # Windows: .\dev.ps1 ``` 自动检查依赖、释放端口、同时起前后端,Ctrl-C 一并关闭。默认后端 `3018`、前端 `3011`。 ### 方式 C:手动分别启动 ```bash # 后端(必须带全部 extras,否则会卸载 vectorbt / pywebview / lightgbm) cd backend && uv sync --extra backtest --extra desktop --extra research --extra dev uv run uvicorn app.main:app --reload --reload-dir app --port 3018 # 前端 cd frontend && pnpm install && pnpm dev # http://localhost:3011 ``` > ⚠️ `--reload-dir app` 不能省。缺省监听整个工作目录,而 `data/` 是应用自身高频写入的目录,会触发自激重载。 ### 打包 Windows 桌面版 ```bash python packaging/build_nuitka.py # 产物在 dist/,约 25–40 分钟 ``` Nuitka 编译 + 前端预构建 + 运行时外置,产物可直接分发。构建缓存默认落在 `%LOCALAPPDATA%\Nuitka`(每轮约 1–4 GB),建议把 `NUITKA_CACHE_DIR` 指到大盘。 --- ## 数据从哪来 | 数据 | 来源 | 更新方式 | | :--- | :--- | :--- | | 日 K / 分钟 K / 财务 | 通达信本地行情库(TQCenter) | 盘后管道增量拉取 | | 概念 / 行业分类与成分 | 同花顺概念 + 通达信行业 | 每日增量 | | 涨停池 / 涨停原因 | 同花顺问财、东方财富 | 盘后 | | 异动名单 / 公告 / 龙虎榜 | 东方财富 | 盘后 | | 实时快照 | TQCenter 实时行情(可选开关) | 盘中 6 秒轮询 | 存下来的是 Parquet(按日分区),查询走 DuckDB,计算走 Polars。所有中间指标(MA/EMA/MACD/RSI/KDJ/布林/量比/换手…)一次性算好写进 enriched 宽表,选股与回测都直接读它 —— 所以「点一下出结果」而不是等几分钟。 数据源是**插件化**的:`plugin.yaml` + Provider 接口,可以接自己的数据源,见 [docs/custom-data-source.md](./docs/custom-data-source.md)。 --- ## 技术栈 | 层 | 选型 | | :--- | :--- | | 后端 | FastAPI · Pydantic v2 · APScheduler · SSE(进度流) | | 数据 | Polars(计算)· DuckDB(查询)· Parquet(存储) | | 回测 | 自研向量化引擎 + vectorbt(全项目唯一 pandas 边界) | | 数据源 | 通达信 TQCenter(本地调用、无云端依赖)· 可插拔第三方源 | | 前端 | React 18 · Vite · TypeScript · Tailwind · TanStack Query · ECharts · Lightweight Charts · dnd-kit | | 桌面 | pywebview + WebView2 · Nuitka 打包 | | AI(可选) | 任意 OpenAI 兼容接口(DeepSeek / 通义 / Ollama…),不填 Key 时所有 AI 功能自动隐藏 | ``` 通达信客户端 ──► TQCenter ──► 采集层 ──► Parquet(日分区) │ 指标计算(Polars)──► enriched 宽表 │ ┌──────────────────────┼──────────────────────┐ 选股扫描 回测引擎 监控 / 异动 (DuckDB SQL) (向量化 + T+1) (快照轮询 6s) └──────────────────────┼──────────────────────┘ FastAPI ──► React 前端 ``` --- ## 目录结构 ``` backend/ app/ api/ 路由(选股 / 回测 / 监控 / 数据 / 设置…) datasource/ 数据源适配(TQCenter、插件、交易日历、停牌口径) strategy/ 策略引擎 + builtin/ 内置策略 + prompts/ AI 生成规范 services/ 业务服务(行情、监控、复盘、财务、扩展表) backtest/ 回测引擎(因子 / 组合 / 仓位三模式) tests/ 1300+ 单测(数据口径、策略校验、接口契约) frontend/ src/pages/ 24 个页面 src/components/ 表格骨架、图表、策略编辑器等公共组件 docs/ 功能、部署、策略、挖掘、二次开发等文档 packaging/ Nuitka 打包、运行时外置清单 screenshots/ 界面截图 ``` --- ## 配置 所有配置从根目录 `.env` 读取,也可在 **设置** 页里改(改完即时生效,不用重启): ```ini TDX_HOME=D:\new_tdx64 # 通达信安装目录(可留空自动检测) AI_API_KEY= # 留空 = 关闭全部 AI 功能 PORT=3018 # 服务端口 AUTH_PASSWORD= # 留空 = 不校验;公网部署请务必设置 ``` 完整配置项见 [docs/configuration.md](./docs/configuration.md)。 --- ## 常见问题
首次启动卡在「正在下载数据引擎」 先看过渡页写的哪一步失败。多数是网络:镜像站被墙或公司代理拦截。可以: 1. 点「重新尝试」换下一个镜像源; 2. 挂代理后重启; 3. 手动下载 `polars-runtime-32` 与相关 wheel,按启动页提示放到安装目录。
选股 / 回测 0 信号 九成是 **enriched 宽表没数据或覆盖天数不够**。先看 **数据** 页的「Enriched」卡片里的日期区间: - 空 → 跑一次盘后管道; - 只有几天 → 策略需要 20/60 日窗口,天数不够自然筛不出来,用「扩展数据」补历史。
盘前自选股涨跌幅显示异常 当日还没成交时,行情接口返回的价格是 0。工作台已按昨收兜底并把涨跌幅归零(v0.2.0 修复)。若仍异常,检查是否用了过期版本。
Win10 打开是白屏,进程还在、端口也通 缺 WebView2 运行时。Win11 自带;Win10 需 Edge 更新带上,LTSC / LTSB 版本通常没有。装一次 [WebView2 Runtime](https://developer.microsoft.com/microsoft-edge/webview2/) 即可。
能不能在 ARM 电脑(骁龙 X 等)上原生跑 不能。通达信的数据 DLL 只有 x64,且 `pyarrow`、`pythonnet` 没有 Windows-ARM64 轮子。Win11 ARM 可以用自带的 x64 模拟层跑这个包,速度会慢一些。
3018 端口被占用 / 想换端口 改 `.env` 里的 `PORT`,或 `PORT=8000 ./dev.sh`。桌面版会自己找可用端口。
--- ## 文档 | 文档 | 内容 | | :--- | :--- | | [操作说明书.md](./操作说明书.md) | 面向使用者的完整手册(全部页面、维护、排错) | | [docs/features.md](./docs/features.md) | 各模块功能详解(选股 / 指标 / 回测 / 监控 / 异动 / 个股分析) | | [docs/strategy.md](./docs/strategy.md) | 策略体系(内置策略 + 三种扩展方式 + 文件结构) | | [docs/mining.md](./docs/mining.md) | 因子与策略挖掘口径、防泄漏与发布边界 | | [docs/market-phase.md](./docs/market-phase.md) | 情绪周期 6 阶段与主线识别口径 | | [docs/configuration.md](./docs/configuration.md) | 全部 `.env` 配置项 | | [docs/deployment.md](./docs/deployment.md) | 部署、老 CPU 兼容、公网访问密码 | | [docs/custom-data-source.md](./docs/custom-data-source.md) | 自定义数据源接入与 mock 联调 | | [docs/plugin-development.md](./docs/plugin-development.md) | 数据源插件开发规范 | | [docs/secondary-development.md](./docs/secondary-development.md) | 扩展开发(前端插槽 / 后端接口 / AI 模板) | | [CONTRIBUTING.md](./CONTRIBUTING.md) | 架构、数据契约、缓存与性能要求、测试矩阵 | | [NOTICE](./NOTICE) | 第三方依赖与数据源致谢 | --- ## 致谢 数据与接口:[通达信 TQ 量化](https://help.tdx.com.cn/quant/)、[AkShare](https://akshare.akfamily.xyz/)、[同花顺问财](https://www.iwencai.com/)、[东方财富](https://www.eastmoney.com/)。 本项目以 [MIT](./LICENSE) 协议开源,仅供学习与量化研究,**不构成任何投资建议**。回测结果不代表未来收益,数据准确性以各数据源官方为准。市场有风险,入市需谨慎。
交流 / 反馈
公众号
公众号
知识星球
策略实现,技术学习