云计算百科
云计算领域专业知识百科平台

5.3k Star!把 A 股量化工作台装进 Docker——国产开源 TSP:选股、回测、监控全有,AI 一句话问全站数据,还自带 MCP

项目名:TSP · A 股智能量化工作台(tick-stock-panel) GitHub:https://github.com/shy3130/tick-stock-panel 协议:MIT Star:5.3k+(Fork 1.3k,截至 2026-09-30,GitHub API 实抓) 技术栈:FastAPI + React + Polars + DuckDB,Parquet 文件存储 部署:Docker 单容器,零外部数据库,数据 100% 落本地 测试:2400+ 测试全绿,CI 自动构建多架构镜像

先说痛点

想在 A 股搞点量化,你大概率经历过这几茬罪:

  • 东拼西凑:拉数据一个脚本、选股一个脚本、回测又一个脚本,选股用的行情口径和回测对不上,结果自己都不敢信;
  • 数据源绑死:代码全按某一家的数据格式写,想换个数据源,整套拉数逻辑推倒重写;
  • 盘中异动靠人肉盯:涨停、炸板、放量、竞价异动,错过就是错过,等你看到黄花菜都凉了;
  • 付费终端贵,数据还不在自己手里:云端平台策略和数据都在别人服务器上,心里不踏实;
  • AI 只会聊天,不会用你的数据:问它「我自选里今天哪些放量了」,它根本看不到你的面板。
  • 最近挖到一个国产个人开源项目,把这些问题一次性解决了——TSP(tick-stock-panel),一个自托管、零运维、核心能力全部开放成接口的 A 股量化工作台。

    一句话:Docker 一条命令跑起来,选股、回测、因子、监控、复盘、AI 对话助手、61 个开放 API、12 个 MCP 工具,一个容器全给你。

    本文按老规矩,从功能、架构、安装到 AI/MCP 接入完整讲清楚。

    目录

    • 一、TSP 是什么
    • 二、核心功能一览
    • 三、架构:数据工程优先的本地工作台
    • 四、安装:Docker 一条命令
    • 五、AI 对话助手:一句话问全站数据
    • 六、接入 MCP:让任意 AI 客户端操作你的面板
    • 七、边界与风险(务必看)
    • 总结与项目地址

    在这里插入图片描述

    一、TSP 是什么

    官方定位:

    自托管 · 零运维 · 核心能力全部开放成接口的 A 股量化工作台。 选股 · 回测 · 监控 · 因子挖掘 · AI 助手 · Open API · MCP

    几个关键数字(README 原文):

    指标数值
    开放 API 端点 61
    Token 权限档 6
    MCP 工具 12
    测试用例 2400+ 全绿
    全市场策略扫描 毫秒级(Polars 引擎)
    部署形态 1 个容器,零外部数据库

    需要特别说明作者在 README 最上方就高亮的立场(这也是我对这个项目有好感的原因之一):

    ⚠️ 本项目谨作为本地量化提供解决思路与方案,不作为投资软件或者看盘软件。 明确不做:不对标同花顺/通达信,不内置「AI 荐股/涨停预测」。 数据源已插件化,可任意接入第三方数据源。仅供学习研究使用。

    不吹收益、不搞荐股,在量化类开源项目里属于难得的清醒。

    二、核心功能一览

    功能非常多,挑最有价值的讲:

    🔍 选股引擎:25 个内置策略 + 自定义 + AI 生成

    Polars 毫秒级扫完全 A 股,日线/分钟策略统一一个策略池,按策略声明的周期自动路由执行。信号库里有预定义信号、自定义条件信号(含因子条件和 AI 生成信号),策略、回测、监控吃同一份信号。

    🧪 回测研究:四种视图,杜绝「未来函数」

    • 因子回测:IC/IR、分层收益、多空组合,62+ 因子目录先帮你筛掉无效指标;
    • 策略回测:净值曲线、回撤、夏普、胜率、盈亏比、蒙卡回撤,T+1/手续费/滑点/止损齐全,SSE 流式输出进度;评分因子策略还带「因子归因」——对比赚钱单和亏钱单入场日的因子差异;
    • 分钟策略回测:逐交易日回放、分钟收盘入场、分钟级成交明细;
    • 验证:参数敏感性 + 滚动样本外检验。

    研究闭环做得不错:结果可导出 CSV → 保存为候选 → 一键载入复测。

    🔬 因子平台 + ⛏️ 因子挖掘

    • 因子页:IC·分层·Newey-West 检验,自定义 DSL 因子(25 个算子点选、双语字段),版本与生命周期管理;因子库可一键生成排名策略;
    • 挖掘页:嵌套样本外搜索——训练区间重估因子方向、相关性去重、多因子组合搜索,候选入库后必须显式确认才发布,永不自动上线。

    🚨 监控与异动

    • 监控中心:策略/个股信号/价格/异动四类规则 AND/OR 组合,支持自选分组作用域,盘中实时弹窗 + 语音播报个股名称和信号 + 飞书推送,触发记录持久化;
    • 异动监控按交易时间线分三段:
      • 竞价异动:同花顺盘前风向标(含当日/次日真实收益对照、追高风险标记)+ 全市场竞价扫描;
      • 盘中异动:涨停/炸板/翘板/跌停/新高/新低/放量聚合;
      • 偏移异动:严格按交易所口径(主板 3 日 ±20%、创业板/科创板 ±30%、北交所 ±40% 等),实时计算接近度。

    🌡️ 市场环境与复盘

    • 情绪周期 6 阶段:冰点/启动/主升/高潮/退潮/修复,连板梯队驱动、EMA 平滑 + 2 日确认;
    • 连板梯队:连板层级统计、概念/行业分布、封单监控;
    • 盘后 AI 自动复盘,注入龙虎榜资金动向和盘前风向标对照,可定时执行、推飞书、下载 Markdown。

    📈 个股分析

    日 K + 9 类关键价位 + AI 四维分析(技术/基本面/财务/消息面);财务页支持利润表/资负表/现金流/关键指标(多源合并、fuyao 财务四表适配)+ AI 解读。

    🌐 开放 API + 🔌 MCP + 🧠 AI 助手

    这三件是 TSP 区别于普通量化面板的灵魂,后面单独展开。

    三、架构:数据工程优先的本地工作台

    README 里有句话总结得到位:TSP 是一个「数据工程优先」的本地量化工作台——数据源、口径、执行、开放通道做成一套自洽架构,功能只是长在上面的应用。

    八个架构特点:

    特点说明
    🔀 能力路由矩阵 6 类数据集按源声明的能力独立路由——换数据源不换口径,指标和回测结果不变
    🧬 单一 enriched 口径 只存 15 列基础数据、现算 68 列指标信号;选股→回测→监控→复盘吃同一份数据
    📁 文件型零运维存储 Parquet + DuckDB,单容器零外部数据库,数据 100% 落本地
    🔁 回测 = 实盘同路径 策略执行只有 StrategyEngine.run 一条路径;分钟策略逐日回放 +「当日已知」纪律,从机制上杜绝未来函数
    🏛️ 网关居中的开放单体 面板密码会话和 Token 网关双通道并行;61 端点契约快照 + CI 守护,SSE 事件流与 MCP 平等开放
    🧩 核心域/扩展域边界 8 个核心域拥有数据与语义,5 条扩展通道只消费契约——删除目录即整体卸载,零核心改动
    🚀 重活进程隔离 回测跑在 spawn worker 子进程,刷新切页重连不丢任务,主服务永不被计算卡住
    📅 交易日探针 节假日自动停掉实时轮询和分钟增量,零无效请求

    作为写了多年 Java 的人,我看这套架构的感受:分层克制、边界清晰、扩展点明确,没有上来就微服务那一套——单机本地工具,单容器 + 文件存储就是最优解。值得一提的是「核心域 / 扩展域」的划线依据是数据与语义的归属、依赖箭头的方向,而不是页面好不好看,这个划分原则很专业。

    四、安装:Docker 一条命令

    方式 A:GHCR 现成镜像(多数人推荐)

    有 Docker 的话,真的就一条命令:

    docker run -d –name tsp -p 3018:3018 -v ${PWD}/data:/app/data ghcr.io/shy3130/tick-stock-panel:latest

    打开 http://localhost:3018 即可使用。多架构镜像(amd64/arm64)由 CI 自动发布,本机连 Python/Node 都不用装。

    需要配置时:从仓库 .env.example 复制 .env,命令加 –env-file .env。

    方式 B:Docker Compose(本地构建,全套挂载)

    cp .env.example .env
    docker compose up –build
    # 打开 http://localhost:3018

    Windows 用户注意一个坑:纯 PowerShell/CMD 下 HOME 环境变量通常没设置,会导致 Codex 登录态目录挂载失败。需要在 .env 里显式指定:

    CODEX_HOME_HOST=C:\\Users\\你的用户名\\.codex

    方式 C:让本机 AI 帮你部署

    README 还提供了一个很符合当下玩法的方式——把这段话原样发给 Trae/Codex/OpenCode 等 AI 助手:

    帮我部署开源项目 https://github.com/shy3130/tick-stock-panel 到本机:
    克隆到当前文件夹;有 Docker 优先拉 ghcr.io/shy3130/tick-stock-panel:latest 现成镜像,没有就走 Dev 模式;
    缺少的依赖帮我一起装好;最后告诉我浏览器打开哪个地址、需要填哪些 Key。

    跑起来后的第一次使用

  • 设置 → 凭据与能力 → 点「重新检测」,确认档位标签和能力路由矩阵;
  • 设置 → 立即跑盘后管道:拉日 K + 计算 enriched 表(None/Free 档走 free-api,当日数据盘后 1-2 小时可用);
  • 自选页加标的 → 选股页点策略卡片扫描;
  • 回测页选策略和区间 → 看净值曲线。
  • 五、AI 对话助手:一句话问全站数据

    这是 TSP 里最「2026」的部分。入口是悬浮球 / 侧栏 AI 徽标 / ⌘K 呼出。

    21 个查询工具 + 4 个动作工具:

    类别能力
    行情与大盘 涨跌家数、成交额、涨停连板、情绪、指数
    我的与个股 自选、持仓批次、个股 K 线、关键价位
    策略与因子 策略目录、执行选股、因子目录、因子全市场排名
    扩展内容 扩展数据表查询、自定义策略与信号
    数据健康 完整性检查、同步任务进度
    动作(须确认) 生成信号策略、运行回测、加入自选、数据补全

    几个设计细节,我认为是做 AI 工具的正确姿势:

    • 工具足迹卡:每次调用的工具名、参数、耗时、结果摘要都能展开核对——「取数必须可核对」是设计铁律;
    • 动作确认卡:生成信号/回测/加自选/数据补全等写操作,先弹卡片显示完整待执行参数,你点确认才执行;拒绝或 120 秒超时自动取消,且模型被明确告知不得重试;
    • 走势双图:问个股时自动附上工具真实返回数据的日 K 蜡烛 + 当日分时小卡,而不是让模型瞎编走势;
    • 轮次检查点:连续 N 轮没完成时弹「继续/停止」(默认 100 轮,可配),120 秒不选自动停;
    • 固定合规提示:每条回答末尾都附风险与数据口径提示。

    助手本身是项目扩展系统的参考实现:后端 app/custom/assistant/(启动自动发现注册路由)和前端 src/custom/assistant/(构建自动挂载插槽)各自独立,删目录即卸载。没配 AI Key 或供应商不支持工具调用时 fail-closed,直接提示去设置页。

    ⚠️ 助手只做数据分析,不提供买卖指令;涉及交易决策的问题会转换成客观的技术/财务状态、关键价位和条件情景。

    六、接入 MCP:让任意 AI 客户端操作你的面板

    TSP 自带独立的 MCP 服务器,原理是一层薄桥:

    AI 客户端 ⇄ MCP stdio ⇄ HTTP + Bearer Token ⇄ 面板开放网关

    权限、限流、契约全部复用面板开放接口层,面板侧的 Token scope 才是最终权威——这层不写业务逻辑,面板升级自动受益。

    配置步骤

  • 面板 → 设置 → 开放接口 → 新建 Token,勾选所需 scope;
  • 记下 tsp_ 开头的明文(只显示一次);
  • 在 Claude Desktop / Cursor / 任意支持 stdio MCP 的客户端中配置:
  • {
    "mcpServers": {
    "tick-stock-panel": {
    "command": "uv",
    "args": ["–directory", "E:/tick-stock-panel/mcp-server", "run", "tsp-mcp-server"],
    "env": {
    "TSP_BASE": "http://127.0.0.1:3018",
    "TSP_TOKEN": "tsp_xxxx",
    "TSP_SCOPES": "read:market,read:ext,read:analysis"
    }
    }
    }
    }

    TSP_SCOPES 决定暴露哪些工具,声明了但没授权的 scope,调用时拿 403,AI 看到错误会自己停下来。

    12 个工具清单(按权限档)

    scope工具说明
    read:market search_instrument 代码/名称/拼音搜标的
    get_kline 日 K(前复权)
    get_index_kline 指数日 K
    get_market_overview 涨跌家数/成交额/涨停连板/情绪
    read:analysis get_regime_state 最新市场环境阶段
    list_strategies / get_strategy_detail 策略清单与定义
    get_recent_alerts 最近告警
    read:ext list_ext_tables / query_ext_table 自有数据表查询
    write:ext write_ext_rows 写入扩展表(进入策略数据面,慎授)
    run:backtest run_backtest 策略回测(纯 Polars 引擎)

    注意:模拟盘交易类端点没有被包成 MCP 工具——作者明确不建议把下单能力交给 AI,需要时自己按同样模式补。这一点我举双手赞成。

    六档 Token 权限 + 120 次/分钟限流 + SSE 事件流,意味着你完全可以在自己的脚本、机器人里把 TSP 当一个本地量化数据中台来用。

    七、边界与风险(务必看)

  • 不提供任何投资建议。它明确不做 AI 荐股、涨停预测;所有策略和因子只是「研究工具」,历史回测好不代表未来赚钱,这是量化的基本常识。

  • 数据档位有差异。None/Free 档走免费数据源(free-api),当日数据盘后 1-2 小时才可用,盘中和实时能力受数据源限制;想要更强能力需接入对应数据源(插件化,自己配)。

  • 现成镜像不含 stock-sdk 插件和老 CPU 兼容内核(合规与体积考虑),有需求要自己用 Compose 加 –build-arg INCLUDE_STOCKSDK=1 构建。

  • 实盘交易不在开源范围内。项目定位是研究与监控工作台,别指望拿它直接自动下单(也不应该)。

  • 个人开源项目。作者留了邮箱维护社区,迭代很活跃(最近一次推送就在昨天),但企业级使用要评估自己长期维护的能力。

  • A 股有风险,入市需谨慎。再强调一次:本文介绍的是软件工具,不是任何形式的收益承诺。


  • 总结与项目地址

    TSP 给我留下最深印象的不是功能多,而是它的克制与工程审美:

    • 单容器 + Parquet/DuckDB,零运维、数据完全本地;
    • 选股 → 回测 → 监控 → 复盘,全站吃同一个 enriched 口径;
    • 数据源插件化、能力路由,换源不换口径;
    • AI 助手取数全程可核对、写操作必须确认;
    • 61 端点 + 12 MCP 工具,权限最小化,下单能力坚决不交 AI。

    想系统学习 A 股量化、想要一个数据在自己手里的本地工作台、或者想研究「AI + 量化 + MCP」怎么落地的朋友,这个项目值得周末花一小时跑一跑。

    项目地址:https://github.com/shy3130/tick-stock-panel 镜像地址:ghcr.io/shy3130/tick-stock-panel:latest 协议:MIT,Star 5.3k+ 且仍在快速上涨(数据截至 2026-09-30)。

    上一篇聊的是把所有 AI 编程 Agent 收编的元框架 Omnigent(https://github.com/omnigent-ai/omnigent),还没看的朋友推荐一起服用——一个管「AI 工程团队」,一个管「AI 量化研究」,都是今年 Agent 工程化思路下非常值得学的开源项目。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 5.3k Star!把 A 股量化工作台装进 Docker——国产开源 TSP:选股、回测、监控全有,AI 一句话问全站数据,还自带 MCP
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!