自托管 A 股量化工作台:选股、回测与盯盘(tick-stock-panel)
tick-stock-panel(TSP)是一套用 Python 与 TypeScript 写的自托管 A 股量化工作台,把选股、因子检验、回测、异动监控和 AI 复盘放进同一个面板,数据全部落在本地 Parquet。这篇讲清它的部署前提、最短上手路径、八个主要能力、关键参数与真实用户踩过的坑,并给出与同类量化项目的横向对照,帮你判断要不要在自己的机器上跑一套。
做 A 股量化的人常遇到一种割裂:选股用一套脚本,回测用另一套,盘中盯盘又靠第三方软件。三边数据口径对不上,策略在一个环节跑出结果,到另一个环节就对不上号。tick-stock-panel 要处理的就是这种割裂。
tick-stock-panel(TSP)是一套用 Python 与 TypeScript 写的 A 股量化工作台,自托管部署,输入行情数据源,输出选股结果、回测报告与盘中异动提醒。
代码在 GitHub 的 shy3130/tick-stock-panel 上开源,采用 MIT 许可证,仓库语言占比为 Python 60.9%、TypeScript 37.8%。项目把自己定位成自托管、零运维的 A 股量化工作台,数据全部落在本地 Parquet 文件,不依赖外部数据库。项目主页是 tsp.shy313.com。

README 首页列了几个数字:61 个开放 API 端点、6 档 Token 权限、12 个 MCP 工具、2400 多项测试。项目同时写明了边界:不对标同花顺与通达信,不内置 AI 荐股和涨停预测,仅供学习研究使用。
第一次用它需要知道的事
- Docker 是主推的部署形态。仓库根目录有 Dockerfile 与 docker-compose.yml,README 强调单容器、零外部数据库,数据落在本地 Parquet。
- AI 能力要自备大模型接口。设置页有 AI 接口配置项,GLM 这类走
/v4的服务曾因程序强制补/v1报 404,现已修复。 - 机器内存别抠得太紧。社区里 2C2G 的机器在点「立即同步」和跑盘后管道时出现过 CPU 与内存打满,根因是偏离列计算在大表上做 join,后来改成了窄窗口计算。
- 桌面客户端只提供了 Windows x64 与 macOS Apple Silicon 两个安装包,Intel Mac 与 Linux 桌面版的安装包仓库里没有说明。
- 登录默认走管理员密码。有用户提过想要按角色分权的多用户系统,这条需求已实现。
最短上手路径
- 拿到代码或安装包:
git clone https://github.com/shy3130/tick-stock-panel,或者直接下载桌面版TSP-Setup-x64-0.3.4.exe(Windows)与TSP-macos-arm64-0.3.4.dmg(macOS)。 - 准备配置:根目录的
.env.example是环境变量模板,复制后按需填写;tiers.yaml对应权限档配置。 - 起服务:用仓库自带的
docker-compose.yml启动,单容器形态。完整步骤写在根目录的中文文档操作说明书.md里。 - 进设置页配好数据源与 AI 接口,再到数据页点「立即同步」拉数据,需要更长历史时点「同步历史」。
- 回设置页点「立即跑盘后管道」,指标与信号会落盘成 enriched Parquet,之后在策略页和回测页就能看到结果。
它实际上能做哪些事
选股、因子与回测
- 选股引擎:25 个内置策略,可以叠加自定义信号和 AI 生成的信号;用 Polars 扫描全 A 股,README 给出的量级是毫秒级;日线策略与分钟策略统一放在单池里,按策略声明的周期自动路由执行。
- 指标流水线与因子平台:一次扫表落盘 68 列指标与信号;因子侧提供自定义 DSL,25 个算子点选,IC、分层、Newey-West 检验都在里面,因子库能一键生成排名策略。因子挖掘做样本外搜索与相关性去重,候选只入库,必须显式确认才会发布,不会自动上线。
- 回测研究:因子回测给 IC/IR、分层收益、多空组合;策略回测给净值曲线、回撤、夏普、胜率、盈亏比与蒙特卡洛回撤,支持 T+1、手续费、滑点、止损,进度用 SSE 流式推送;另有分钟级回测和参数敏感性验证。评分类因子策略附带因子归因,对比胜单与败单在入场日的因子表现。
盯盘与复盘
- 监控中心:策略、个股信号、价格、异动四类规则,支持 AND/OR 组合与自选分组作用域;触发后弹窗加语音播报(播报个股名称与信号),也能推飞书,触发记录会持久化。
- 异动监控与市场环境:竞价、盘中、偏移三块分开;偏移沿用交易所偏离值口径。市场环境把情绪周期分成冰点、启动、主升、高潮、退潮、修复 6 个阶段,由连板梯队驱动,再做 EMA 平滑和 2 日确认。盘后复盘由 AI 自动生成,会注入龙虎榜资金动向与盘前风向标对照,可定时执行、推送飞书,也能下载 Markdown。
数据、开放接口与 AI 助手
- 数据源与扩展:6 类数据集按数据源能力独立路由,换源不改指标与回测口径;第三方或扩展字段能配成一级菜单,和内置数据同台分析;数据页可查看维表、日 K、除权、Enriched、指数、ETF、分钟 K、财务这几类数据的本地画像与同步状态。
- 开放接口与 MCP:61 个契约化端点,Token 分 6 档权限;MCP 服务器提供 12 个工具,把面板能力交给任意支持 MCP 的 AI 客户端。
- AI 对话助手:入口有悬浮球、侧栏 AI 徽标和 ⌘K;21 个查询工具覆盖个股、大盘、板块、自选、持仓、信号、策略、因子、数据完整性与扩展数据表;另有 4 个动作工具(生成信号策略、跑回测、加自选、数据补全),写操作先弹确认卡,待执行参数可见,120 秒超时自动取消。这是个可整目录删除的独立模块。
参数速查
- 策略与指标:25 个内置策略、68 列指标与信号、62+ 因子目录、25 个 DSL 算子。
- 权限与接口:6 档 Token 权限、61 个 API 端点、12 个 MCP 工具。
- AI 助手:21 个查询工具、4 个动作工具,写操作确认卡 120 秒超时自动取消。
- 异动偏离口径:主板 3 日 ±20%;创业板、科创板 ±30%;北交所 ±40%;10 日 +100%/−50%;30 日 +200%/−70%。
- 情绪周期:6 个阶段,连板梯队驱动,EMA 平滑 + 2 日确认。
- 配置载体:根目录
.env.example是环境变量模板,tiers.yaml对应权限档,操作说明书.md是随仓库发布的中文文档。
输出与结果位置
- 指标与信号:一次扫表落盘为 enriched Parquet,数据全部留在本地磁盘,不经过云端。
- 回测:结果能导出 CSV,分概要、净值、交易明细、分标的统计四类,导出后可保存候选并一键载入复测。
- 复盘:AI 生成的盘后复盘可下载 Markdown,也能推送到飞书。
- 监控:触发记录持久化,配合弹窗与语音播报一起看。
- 开放接口与 MCP:外部程序或 AI 客户端通过 61 个端点和 12 个 MCP 工具取结果。
实际使用中的坑
- 小内存机器容易被打满。有用户 2C2G 的服务器点击数据页的「立即同步」后,CPU 与内存直接被占满并持续到第二天;另一例是在 docker 部署成功后执行「设置 → 立即跑盘后管道」,容器内存溢出被 SIGKILL,进程没有留下 Python 异常日志。定位到的根因是
attach_deviation_columns在约 110 万行全量历史上做 join。现已改为只在最近交易日的窄窗口上计算偏离列,两个 Issue 均已关闭。 - Docker 部署后 AI 策略用不了。排查结论是问题不在策略模板,而是
.dockerignore第 37 行排除了docs/目录,导致镜像里缺少关键文件。属于打包配置问题,已修复。 - GLM 配置报 404。原因是
normalize_openai_base_url函数强制给 base_url 补/v1,而智谱 GLM 用的是/v4,拼出了不存在的/v4/v1/chat/completions。修复思路是让这个函数识别 URL 里已有的版本段。已解决。 - 仍开放的两条:一条希望接入 AKShare 的免费财务数据(资产负债表、利润表、现金流量表及财务指标),另一条是要自定义副图。这两条目前还是待解决状态。
替代方案一览
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| tick-stock-panel | 想在自有服务器上把选股、回测、盯盘放进同一个面板的个人研究者与小团队 | Docker 单容器(仓库带 Dockerfile 与 docker-compose.yml),另有 Windows x64 与 macOS Apple Silicon 桌面客户端 | 聚焦 A 股,美股等其他市场的适配仓库里没有说明;AI 能力需要自备大模型接口;数据与配置都在本地,换机器要自己搬 | 你需要一条从选股到回测到异动监控再到 AI 复盘的完整链路,并且希望数据留在自己机器上 | tick-stock-panel |
| ZhuLinsen/daily_stock_analysis | 想定时收到 LLM 生成的股票分析结论、不想自己搭面板的投资者 | 仓库没有说明(未逐一核实) | 更偏「多市场行情 + 实时新闻 + 决策看板 + 自动推送」的形态,自定义策略与因子研究这条链路不在它的仓库简介范围内(未逐一核实) | 你只需要每天一份分析结论与推送,不需要自己在面板里调策略参数 | ZhuLinsen/daily_stock_analysis |
| bbfamily/abu | 想用一套 Python 量化架构做股票、期权、期货、比特币与机器学习建模的人 | 以 Python 库形态使用(依其仓库定位,未逐一核实) | 它是量化交易与投资架构,不是带界面的自托管工作台,数据源、界面与盘中监控要自己搭(依据其仓库简介,未逐一核实) | 你的重点在策略建模与交易执行框架,愿意自己写代码而不是用现成面板 | bbfamily/abu |
tick-stock-panel 的短板在覆盖面:它只做 A 股,想研究美股或其他市场,仓库里没有给出适配路径,这类需求要去多市场方案那边找。它的 AI 复盘与异动监控还依赖外部数据源和大模型接口,不打算配这两样的话,面板里能用的部分会少掉一块。只想要每天一份分析结论的人,也用不着自己搭一套自托管服务。
别踩的合规线
这套东西会同步全市场行情、拉取第三方数据源、批量扫描个股。接入的数据源要挑有正规授权的,自建服务只用于自有资产或已经获得授权的目标。把带 Token 的开放接口直接暴露在公网会带来额外的安全风险,六档权限要按最小必要分配。项目自身也写明仅供学习研究,不作为投资软件或看盘软件。误用除了触及数据源的服务条款,也可能带来平台封禁与当地法律风险。
什么时候值得用它
- 你在自建一套 A 股研究工作流,愿意为 Docker 和一台常开的机器留出资源,并接受数据落在自己硬盘上。
- 你的策略需要因子检验、样本外挖掘与 T+1 回测这一整条链路,而不是单点选股。
- 你希望盘中异动有人替你盯,并且接受把提醒推到飞书或者用语音播报。
焚评:这个项目的量化评分
本项目的选题来自 焚.com(一个按公开公式给 GitHub 项目打分的站)。焚评当前总分 9.2 分(满分 10)。下表是各维度的得分:
| 评分维度 | 得分 |
|---|---|
| 热度动量(权重 25%) | 10.0 / 10 |
| 开发活跃(权重 25%) | 8.8 / 10 |
| 社区响应(权重 15%) | 10.0 / 10 |
| 文档质量(权重 15%) | 10.0 / 10 |
| 发布节奏(权重 10%) | 5.2 / 10 |
| 风险控制(权重 10%) | 10.0 / 10 |
评分口径、权重与计算方式见焚.com 的评分方法页;数据随 GitHub 指标刷新,具体数值以焚.com 当前页面为准。本文正文为诀.com 独立撰写,评分数据由焚.com 授权引用。
内容核验说明
收录理由是它把自托管 A 股量化工作台的真实门槛、能力边界和已知坑点摊开:部署前要备 Docker、常开机器和大模型接口,数据落本地 Parquet,适合愿意自己维护一条从选股到回测、异动监控到 AI 复盘链路的人。需留意,文中能力数字与案例多来自作者公开披露和 Issue,诀.com 未独立验证,小内存机器与外部数据源合规仍需自行核验。
文中 API 端点数、测试数、策略数等指标来自作者公开披露,诀.com 未独立验证;用户踩坑案例来自仓库 Issue 报告,未逐条复现;焚评评分由焚.com 授权引用,未独立核算。项目功能与修复状态以仓库当前版本为准。用户反馈摘要
根据仓库 Issue 来看,提交者集中报告部署与运行问题:Docker 下 AI 策略不可用,根因是 .dockerignore 排除了 docs/;GLM 配置报 404,源于函数强制补 /v1;2C2G 机器点立即同步和跑盘后管道会 OOM,已改为窄窗口计算;自选实时 enriched 分区被误判为完整,导致日K缺失和均线错误。办公模式、股票池、角色权限等需求已标记解决。待解决的是自定义副图和接入 AKShare 免费财务数据。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:shy3130(shy3130)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库