TSP 实测评估:一个把选股、监控、回测揉进同一套数据管线的 A 股工作台
TSP自托管、零运维的 A 股「选股 + 监控 + 回测」量化工作台 | LLM能力驱使策略定制+个股分析+复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源 ,非第三方官方项目
秒懂
- 它是什么?
- TSP(tick-stock-panel)是一个自托管的 A 股量化工作台,用 Polars 做本地计算,用 LLM 做策略生成与复盘。它的核心价值在于把多数据源路由、策略执行、回测和监控统一到同一套本地数据管道里,但它的个人开源属性也带来了一些现实约束。
- 适合谁用?
- 适合有 Python 基础、愿意自己维护数据管道、且不想把策略逻辑托管在第三方平台的 A 股个人研究者。它能让你把日 K、分钟线、财务、异动数据统一落到本地 Parquet,再用同一套信号系统驱动选股、回测和监控,这种一致性是很多零散工具给不了的。
- 能商用吗?
- 可以。MIT 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
- 还在维护吗?
- 在维护。仓库最近一次提交在 1 天前。
- 用什么语言写的?
- 主要是 Python(依据 GitHub 的语言统计)。
以上回答依据项目的 GitHub 数据(最近同步于 2026年9月15日)和我们的分析,不构成法律意见。
开源项目深度解析
它解决的是数据管道碎片化,而不是选股玄学
TSP 的定位在第一行就写清楚了:自托管、零运维的 A 股「选股 + 监控 + 回测」量化工作台。注意它没有说自己是看盘软件,也没有说自己是 AI 荐股工具。README 里甚至专门划了一条线,不对标同花顺或通达信,不内置涨停预测。它真正想解决的问题是:一个做 A 股量化研究的人,通常要同时维护行情数据、财务数据、异动信息、自选股监控,这些数据分散在不同来源,格式各异,策略脚本和回测脚本各写一套,信号触发和监控推送又得另起炉灶。TSP 的做法是把这些环节收敛到一套本地数据管道里。日 K、除权、分钟 K、财务、盘口这些数据集,先各自独立接入,再统一落成 Parquet 文件,后续的选股、回测、监控都从这份本地数据上读。这个思路对个人研究者有吸引力,因为策略逻辑和数据处理都在自己机器上,不依赖某个平台的接口稳定性。
能力路由:每个数据源只做它擅长的事
TSP 的数据层设计里有一个值得单独说的概念,叫能力路由。它不假设某个数据源能提供所有字段,而是把数据按能力拆开,日 K、除权、实时行情、分钟线、盘口、财务各算一类能力,每个接入的数据源插件声明自己支持哪些能力,系统在请求数据时按能力去路由到对应源。文档里给出的插件包括 TickFlow、fuyao 和 stock-sdk,也支持用 YAML 自定义数据源。这意味着你可以让 A 源提供日 K,让 B 源提供财务,再让 C 源提供盘口,互不干扰。这个设计解决了一个实际问题:A 股数据没有统一且免费的权威出口,不同来源在不同字段上的质量和时效差异很大。路由机制让你不必为了某一个字段的缺失而放弃整个数据源。但它也带来一个直接后果,数据源之间如果对同一只股票的同一字段给出不同值,系统不会替你仲裁谁对谁错,这个责任落在使用者身上。
Polars 扫全市场,回测约束写在明面上
策略引擎的卖点是 Polars 毫秒级扫描全 A 股。README 说内置 25 个策略,加上分钟策略、自定义信号和 AI 生成策略,统一在一个股票池里跑。指标流水线会一次性算出 68 列指标和信号,落盘成 enriched Parquet,后续策略直接读这份增强数据,不用每次重复计算。回测部分约束写得比较具体,T+1、手续费、滑点、止损都是内置约束项,不是事后手工调整的。策略回测输出净值曲线、回撤、夏普、胜率、盈亏比,还带蒙特卡洛回撤估计。评分策略附带因子归因,能看胜单和败单在入场信号日的因子差异。分钟策略回测按交易日回放信号,分钟收盘入场,给出分钟级成交明细。这些约束说明作者对 A 股交易机制有实际认知,不是拿美股回测框架硬套。但要注意,回测结果只对落盘的数据负责,如果某个数据源的复权因子或财务快照口径有误,回测结论会跟着错。
LLM 的角色是研究助手,不是自动交易员
AI 在 TSP 里的定位需要仔细看。它不提供荐股,不预测涨停,而是做四件事:生成策略、个股四维分析(技术、基本面、财务、消息面)、财务解读、盘后复盘。复盘功能会注入龙虎榜资金动向和盘前风向标,再生成 Markdown 报告,可以定时执行并推送到飞书。这个定位比较克制,LLM 被放在研究辅助的位置,而不是决策核心。策略生成出来的东西仍然要经过回测验证,因子挖掘模块也明确写了候选库永不自动上线,必须显式确认才发布。这个设计值得肯定,它把 AI 的幻觉风险挡在交易执行之外。但依赖也很明显,所有 AI 功能都需要你自己配置大模型接口,README 没有给出默认的免费方案,这意味着你要么有 API key,要么本地跑一个兼容模型,前者花钱,后者费机器。
监控与异动:从信号到推送的闭环
监控中心覆盖四类规则:策略信号、个股信号、价格、异动。规则支持多条件 AND/OR 组合,作用域可以限定在自选分组里。触发后有两种通知方式,语音播报和飞书推送,触发记录会持久化。异动监控按交易时间线拆成三个 tab,竞价异动看同花顺盘前风向标,盘中异动聚合涨停、炸板、翘板、跌停、新高、新低、放量这些当日信号,偏移异动则按交易所偏离值口径计算,主板 3 日 ±20%、创业板和科创板 ±30%、北交所 ±40%,还有 10 日和 30 日的累计偏离限制。这个口径划分说明作者对交易所规则做过功课。持仓提醒模块可以记录买入批次,自动生成止盈止损和到期监控规则,这个功能对经常忘记自己持仓成本的人来说比较实用。整套监控的触发依据都来自本地落盘的数据和预计算信号,盘中实时性取决于数据源插件的刷新频率,如果数据源本身有延迟,监控的实时性就要打折扣。
部署与上手:零运维是目标,不是现状
项目提供 Dockerfile,GitHub Actions 里有 docker.yml 做镜像构建,部署方式以 Docker 为主。前端是 React,后端是 FastAPI,数据引擎用 Polars 和 DuckDB,这些选型在个人项目中算主流。但 README 开头就有一句劝退的话:小白请绕路。这句话不是客套。整个系统的复杂度集中在数据源接入和配置上,你需要理解能力路由的概念,需要自己准备数据源插件,需要配置 LLM 接口,还要维护本地数据同步。设置页面里有数据源能力检测和能力路由矩阵,能帮你看到哪些源支持哪些能力,但这也意味着你要先有可用的源。项目没有发布任何 release 版本,最近一次推送在 2026 年 9 月,这意味着你要么用 main 分支的代码,要么自己打镜像。对不熟悉 Git 和 Docker 的人来说,这个门槛是真实的。
同类工具的差异:本地优先与全链路一致
和它形成对照的是两类工具。一类是聚宽、米筐这类在线量化平台,策略和回测都在云端跑,数据由平台统一维护,你不需要操心数据源,但策略代码和持仓数据都在别人服务器上,平台的数据口径调整会直接影响你的回测结果。另一类是 Backtrader、vectorbt 这类本地回测框架,它们只管回测这一段,数据获取、信号生成、实时监控、推送通知都得你自己另找工具拼装。TSP 的差异在于它把数据接入、指标计算、策略执行、回测、监控、推送做成了同一个本地系统,数据只落一份,信号只算一次,选股和监控用的是同一套预计算结果。这个一致性是它的核心优势。代价是你要接受一个个人维护的全栈系统,文档和社区支持远不如那些有商业公司背书的平台,出问题只能自己读代码或者发邮件给作者。
维护成本与许可边界
许可证是 MIT,代码可以改、可以分发,但 README 明确写了仅供学习研究使用,严禁商业用途。这个声明和 MIT 许可文本之间存在张力,MIT 本身不限制商业使用,但项目方的使用声明表达了作者意图。如果你打算拿它做商业产品的一部分,需要自己判断这个冲突。维护方面,项目没有 release 版本,依赖 main 分支的持续集成,Docker 镜像由 GitHub Actions 构建,但镜像是否推送到公共仓库、版本如何管理,README 里没有细说。数据管道需要你主动维护,盘后要跑同步任务,历史数据要按需扩展,新增数据源要写 YAML 配置。LLM 接口的调用成本也要算进日常开销,AI 复盘和个股分析如果每天跑,token 费用会累积。综合来看,这是一个需要你愿意花时间伺候的系统,它的回报是数据自主和策略闭环,代价是你要承担一个个人项目的全部运维责任。
编辑结论
适合有 Python 基础、愿意自己维护数据管道、且不想把策略逻辑托管在第三方平台的 A 股个人研究者。它能让你把日 K、分钟线、财务、异动数据统一落到本地 Parquet,再用同一套信号系统驱动选股、回测和监控,这种一致性是很多零散工具给不了的。不适合把它当看盘软件用,也不适合没有数据源渠道、指望开箱即得的用户。部署前先确认三件事:你的数据源插件(TickFlow、fuyao 或 stock-sdk)是否覆盖所需的日 K 与财务字段;LLM 接口的 key 是否准备妥当,AI 功能依赖它;跑回测的机器内存能否支撑全 A 股的 Polars 扫描。项目声明仅供学习研究、严禁商业用途,MIT 许可下你可以改,但别把它的输出当成投资建议。
社区笔记