shy3130/tick-stock-panel

▲ 108 stars today★ 7,589⑂ 1,852

TSP自托管、零运维的 A 股「自建策略 + 监控 + 回测」量化工作台 | LLM能力驱使策略定制+个股分析+复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源

About shy3130/tick-stock-panel

shy3130/tick-stock-panel is an open-source project on GitHub, mainly written in Python. TSP自托管、零运维的 A 股「自建策略 + 监控 + 回测」量化工作台 | LLM能力驱使策略定制+个股分析+复盘 | 自由接入第三方数据源与个性化扩展数据 | 个人开源 It currently holds 7,589 stars and 1,852 forks with 61 open issues, and was last pushed on 2026-11-11 (repository created 2026-06-18).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #47 with 108 new stars today.

GitHub Repository Details

Repository shy3130/tick-stock-panel · default branch main · size 41755 KB · watchers 40 · source: GitHub REST API and repository README

README

https://github.com/shy3130/tick-stock-panel/blob/HEAD/TSP Logo TSP · A股智能量化工作台


License: MIT Engine: Polars Python 3.11+ Node 20+ React 18

Build: Docker CI Test: Backend + Frontend GitHub stars

自托管 · 零运维 · 核心能力全部开放成接口的 A 股量化工作台

官网

策略 · 回测 · 监控 · 因子挖掘 · AI 助手 · Polars · React

https://github.com/shy3130/tick-stock-panel/blob/HEAD/shy3130%2Ftick-stock-panel | Trendshift https://github.com/shy3130/tick-stock-panel/blob/HEAD/shy3130%2Ftick-stock-panel | Trendshift

3.11+
Python 后端
20+
Node 前端
18
React · TypeScript
3000+
测试全绿 · CI 守护
ms 级
全市场策略扫描
1 容器
零外部数据库

✨ 核心功能 · 📸 界面预览 · 🏛️ 架构 · ⚡ 性能 · 🌐 开放能力 · 🚀 快速开始 · 📚 完整文档 · 💬 交流群

---

https://github.com/shy3130/tick-stock-panel/blob/HEAD/赞助支持 Sponsor

https://github.com/shy3130/tick-stock-panel/blob/HEAD/RunningHub API — 单一接口直连 400+ 主流大模型

https://github.com/shy3130/tick-stock-panel/blob/HEAD/About RunningHub API — 产品介绍

本项目由 RunningHub 提供支持 · 单一接口直连 400+ 主流大模型 · DeepSeek v4.1 Flash 3-6 折 · 免费测试

---

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

📮 有任何项目问题可邮件联系 [email protected] · 觉得有用请点个 ⭐ Star

---

💡 为什么做 TSP

| 用脚本/拼凑工具做量化,你大概率遇到过 | TSP 的解法 | | :------------------------------------------- | :------------------------------------------------------------------------------------------------------- | | 数据源绑死,换一家要重写整套拉数代码 | 能力路由矩阵:6 类数据集按源能力独立路由,随时换源,指标与回测口径不变 | | 策略、回测、监控各用一套工具,口径对不上 | 全站统一 enriched 数据口径:策略 → 回测 → 监控 → 复盘一条链 | | 盘中异动靠人盯盘,错过就是错过 | 竞价/盘中/偏移全时段异动 + 实时弹窗、语音播报、飞书推送 | | 想查个数据要在几个页面之间来回点 | AI 对话助手:一句话问出全站数据,取数过程逐条可见、可展开核对;还能经确认卡放行生成信号、跑回测、补数据 | | 想基于面板数据做自己的工具/机器人,只能爬页面 | 开放接口 + MCP:Token 六档权限、65 端点契约化、SSE 事件流,AI 客户端即插即用 | | 付费终端贵、云端平台数据出不了本地 | 自托管:Docker 单容器,数据全部落在本地 Parquet,零运维 |

✨ 核心功能

数据与策略研究

| 模块 | 功能 | | :--- | :--- | | 🔀 能力路由 | 6 类数据集按源能力独立路由, 换源不换口径 | | 📊 指标流水线 | 68 列指标与信号, 一次扫表落盘 enriched Parquet | | 🔍 策略引擎 | 全自定义策略 + 自定义信号 + AI 生成, 毫秒级扫全 A 股 | | 🧪 回测研究 | 因子/策略/分钟回测, T+1/费用/滑点, 因子归因 | | 🔬 因子平台 | DSL 自定义因子 + 检验组合, 与策略双向联动 | | ⛏️ 因子挖掘 | 样本外搜索多因子组合, 显式发布、永不上线 |

市场观察与监控

| 模块 | 功能 | | :--- | :--- | | 🌡️ 市场环境 | 情绪周期 6 阶段 + 概念/行业主线排名 | | 🚨 异动监控 | 竞价/盘中/偏移三类异动一页覆盖 | | 📡 监控中心 | 四类规则 AND/OR + 语音播报 + 飞书推送 | | 📈 个股分析 | 9 类关键价位 + AI 四维分析 | | 🏆 连板梯队 | 连板统计 + 概念轮动 + 盘后 AI 复盘 | | 🧰 数据扩展 | 插件化数据源, 扩展字段成页, 两级拉取配方, 按日历史回补 |

开放能力与工作区扩展

| 模块 | 功能 | | :--- | :--- | | 🌐 开放接口 | Token 六档权限, 65 端点契约化, 读+写闭环 | | 🔌 MCP 服务器 | 12 个工具把面板能力交给任意 AI 客户端 | | 🧠 AI 对话助手 | 一句话问全站数据, 工具足迹逐条可核对 | | 🧩 扩展页面 | 11 个官方页面单文件化, 删目录即卸载、复制即导入 | | 📦 页面插件 | 页面打包产物上传即挂载, 免重建宿主, 刷新生效 | | 🎛️ 菜单设置 | 显隐/排序 + 内置/自定义/扩展三类管理与架构徽标 |

📄 19 个页面的完整功能细节见 docs/features.md 与 screenshots/ —— 上表之外, 回测四种研究视图、异动三时间线、页面插件运行时分发等都在其中。

---

📸 界面预览

以下为已配置环境的实际截图。策略与扩展内容需自行创建或导入,具体界面随版本、数据源与配置而变化;点击图片可查看原图。

https://github.com/shy3130/tick-stock-panel/blob/HEAD/看板 Dashboard
看板 Dashboard
市场全貌、情绪与观察记录。
https://github.com/shy3130/tick-stock-panel/blob/HEAD/策略 Screener
策略 Screener
组织策略池,查看命中结果。
https://github.com/shy3130/tick-stock-panel/blob/HEAD/回测 Backtest
回测 Backtest
净值、回撤与交易明细对照。
https://github.com/shy3130/tick-stock-panel/blob/HEAD/挖掘 Mining
挖掘 Mining
因子组合、样本外检验与发布。
https://github.com/shy3130/tick-stock-panel/blob/HEAD/监控中心 Monitor
监控中心 Monitor
配置监控规则,追踪告警记录。
https://github.com/shy3130/tick-stock-panel/blob/HEAD/市场环境 Regime
市场环境 Regime
情绪周期、概念与行业主线。

📸 查看更多界面截图 »

---

🏗️ 架构

TSP 的一切设计围绕一条主线:核心底座 + 扩展层。

一句话:核心是引擎,其余皆插件。下面这张图,先看懂虚线框与实线框的边界,就看懂了 TSP。

总览 · 网关居中的开放单体

双通道并行:面板走密码会话,外部走 Token 网关 —— 互不影响、互不挤占限流。核心域 8 个域是数据与语义的所有者;扩展域 5 条通道只消费契约,零核心改动。
https://github.com/shy3130/tick-stock-panel/blob/HEAD/TSP 架构总览 — 网关居中的开放单体: 消费端双通道接入, 核心域 8 域拥有数据与语义, 扩展域 5 通道只消费契约

架构特点

| 架构特点 | 一句话说明 | | :--- | :--- | | 🔀 能力路由矩阵 | 6 类数据集按源声明能力独立路由——换源不换口径,指标与回测结果不变 | | 🧬 单一 enriched 口径 | 只存 15 列基础数据、现算 68 列指标信号;策略 → 回测 → 监控 → 复盘吃同一份数据 | | 📁 文件型零运维存储 | Parquet + DuckDB,单容器零外部数据库,数据 100% 落在本地 | | 🔁 回测 = 实盘同路径 | 策略执行只此一条 StrategyEngine.run;分钟策略逐日回放 +「当日已知」纪律,杜绝未来函数 | | 🛡️ 稳健参数筛选 | 参数按 K 段折外稳健分(0.6×中位+0.4×最差)排名而非样本内得分:主目标白名单 + 最小交易数门槛 + Top-20 全窗退化率 + 冠军收敛/高原判据;滚动样本外检验每折重优化防过拟合,冠军/最新折参数一键应用到策略 | | 🛡️ 策略守护 | 发布的策略自动落基线,每日用新数据 K 段真实回测复验:退化自动判定 健康/观察/退役(交易数枯竭即退役),连续观察告警;退役只标记不删档,支持任意策略手动入护(尾随参考基线)。冠军按稳健分(中位+最差折)选出并做权重精调;健康冠军间低相关(日收益 Pearson≤0.7)可一键生成组合策略并入护;实验室战报聚合守护/挖掘/名额,挖掘名额满时新候选等位 | | 🏛️ 网关居中的开放单体 | 面板密码会话与 Token 网关双通道并行;65 端点契约快照 + CI 守护,SSE 事件流与 MCP 平等开放 | | 🚀 重活进程隔离 | 回测跑在 spawn worker 子进程,刷新/切页重连不丢任务,主服务永不被计算卡住 |

核心域 / 扩展域边界

按「数据与语义的归属 + 依赖箭头方向」划分,而非页面外观:

| | 内容 | 划线依据 | | :------------------ | :--------------------------------------------------------------------------------------------------------------------- | :---------------------------------------- | | 核心域 · 8 | 数据底座 / 能力路由 / 订阅锚点(自选) / 策略与回测 / 因子与挖掘 / 环境数据生产 / 监控推送管道 / 扩展数据存储 + 认证配置 | 被多个模块消费其数据与语义,自身不依赖外围 | | 扩展域 · 5 通道 | 数据源插件 · 扩展数据表 · 自定义策略/信号 · 页面扩展(单文件源码 + 运行时页面插件) · 后端 custom 模块 | 只消费核心契约,可整体替换/移除而不伤核心 |

设置 → 菜单设置里每个页面带 核心 / 扩展 架构徽标与 内置 / 自定义 / 扩展 类型徽标;11 个官方页面(概念/行业/个股/财务分析、监控中心、异动、持仓提醒、模拟盘、信号库、复盘、连板梯队)已全部落地为 frontend/src/custom//extension.tsx 单文件扩展 —— 删除目录即卸载、复制目录即导入;例如监控中心页面可换,规则引擎与推送管道属核心照常运行。新装默认隐藏这些扩展页面(菜单设置一键开启),老用户升级自动保持原菜单位置与排序。免宿主重建的运行时分发走页面插件(设置 → 页面插件,契约见 docs/page-sdk.md)。详见 docs/open-platform-plan.md。

关键机制

| 机制 | 说明 | | :------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 能力路由矩阵 | 各数据集按源声明能力独立路由,注册表集中定义、可扩展:TICKFLOW 档位探测(None/Free/Starter/Pro/Expert)+ 插件源能力声明,fail-closed(声明 pct_unit 未声明即拒)。同一数据集可随时换源,指标与回测口径不变 | | 财务多源合并 | 按 (symbol, period_end) 报告期累积,多源取并集、逐列按公告日取最新(PIT);公告前一律空值,绝不填 0 | | 非路由数据集直连 | 龙虎榜/盘前风向标/交易日历等 fuyao 专有能力不进路由矩阵,由独立服务直连消费——按日 JSON 缓存(历史不可变)、交易日回退、四态降级 | | 回测执行隔离 | 回测在 spawn worker 子进程运行,持久 run ID,刷新/切页重连不丢任务;子进程结果消息经锁保护回传 | | 开放网关 | Token 通道与面板密码会话并行互不影响:网络门禁(默认仅本机/内网, API_TOKEN_LOCAL_ONLY=0 放开) → 认证 → 六档 scope 校验 → 每 Token 滑动窗口限流(默认 120 次/分,O(1) 内存)→ 放行;管理面(数据同步/表结构/设置)永不开放给 Token | | 事件总线 | 进程内发布/订阅(慢消费者丢旧保新,广播失败不反噬主流程),告警落盘唯一入口已挂接;SSE 流按票据 scope 过滤,票据一次性 60 秒过期 | | 交易日探针 | fuyao 交易日历(确定性,含调休)→ tickflow 全市场行情时间戳探针(OR 语义)→ 工作日兜底;节假日自动停掉实时轮询与分钟增量,零无效请求 | | 扩展自动发现 | 后端 app/custom/<包>/ 启动时自动发现、注册独立路由(版本不符或 setup 失败即隔离跳过);前端 src/custom//extension.tsx 单文件即完整扩展(组件+路由+导航),构建时自动挂载 —— 删除目录即整体卸载、复制目录即导入;运行时分发走页面插件(上传即挂载,免重建宿主) |

技术栈

| 层 | 选型 | | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 后端 | Python FastAPI Pydantic APScheduler · sse-starlette | | 数据 | Polars(计算)· DuckDB(查询)· Parquet(存储) | | 回测 | 自研仓位模拟引擎(T+1/费用/滑点/分钟回放)· vectorbt(部分路径) | | 数据源 | TickFlow 官方 SDK · fuyao(同花顺 REST) · TdxQuant(通达信量化,实时/五档/日K/复权/分钟) · 插件化扩展(YAML 自定义源) | | AI(可选) | OpenAI兼容 Chat Completions 与 Responses 双协议 · DeepSeek / 通义 / Ollama 等 · 策略生成 / 报告 / 对话助手(助手依赖工具调用能力, 需 OpenAI 兼容接口) | | MCP | mcp-server(官方 SDK 2.x, stdio) — 12 工具按 scope 暴露,权限裁决复用开放网关 | | 前端 | React 18 Vite TypeScript Tailwind Tanstack Query · Lightweight Charts(TradingView 开源) · ECharts · dnd-kit | | 部署 | Docker 两阶段构建,前端 dist 拷进后端镜像 |

---

⚡ 性能

不是口号 —— 每一行都有机制支撑,数字全部来自本仓库的真实测试与实现。

核心引擎

| 场景 | 表现 | 靠什么 | | :------------- | :---------------------------------------------------------------- | :--------------------------------------------- | | 全市场策略扫描 | 毫秒级 | Polars 列式引擎 + enriched 预计算,谓词下推过滤 | | 指标与信号 | 只存 15 列基础数据,现算 68 列指标信号 | 分层缓存:存储最小化、读取零冗余、写入即失效 | | 盘后管道 | 增量分区,只算新交易日 | enriched 按日分区 + 指标流水线增量帧 | | 实时行情 | 自选优先,全市场按档位分流 | 交易日探针,节假日自动停轮,零无效请求 | | 回测 | 子进程隔离不卡主服务,刷新重连不丢任务 | spawn worker + 持久 run ID + 重活并发闸 | | 部署与兼容 | 单容器零外部数据库(Parquet + DuckDB 文件型) · 新老 CPU 双内核 | polars rtcompat 兼容内核,运行时自动探测 |

开放层的性能(网关裁决 O(1)、契约快照守护、亚秒级事件推送等)见下方开放能力章节。

| 能力 | 表现 | 靠什么 | | :----------- | :-------------------------------- | :------------------------------------------ | | 开放 API | 65 端点 · 每 Token 120 次/分 | 进程内滑动窗口限流,O(1) 内存,零外部依赖 | | 网关裁决 | 认证→scope→限流,纯内存单函数完成 | 单一裁决点(evaluate),无数据库往返 | | 契约稳定性 | 机器可读契约 + 快照测试守护 | 开放面增删必须显式改快照,CI 拦截无意识变更 | | 数据写闭环 | 外部写入复用管理端同一校验/落盘路径 | write:ext 只写行数据,表结构锁死管理面 | | 事件推送 | 告警落盘即广播,亚秒级到 SSE 流 | 进程内事件总线(丢旧保新)+ 一次性票据订阅 | | MCP 工具调用 | 12 工具按 scope 联动暴露 | 薄桥零业务逻辑,权限裁决复用网关 | | 质量保障 | 3000+ 测试全绿,约 100 秒跑完 | GitHub Actions CI(后端全量 + 前端构建) |

---

🌐 开放能力(Open API + MCP)

面板的核心能力不只长在页面上 —— 全部开放成受控接口,外部程序与 AI 客户端平等消费:

🌐 开放平台门户已上线 → tsp.shy313.com
浏览 TSP 全部功能 · 注册账户 · 邀请好友 · 创建 API Key · 在线调用开放接口,一个入口直达。
设置 → 开放接口 · Token 管理
明文只显示一次,六档 scope 按需授予
设置 → 菜单设置 · 架构标注
每页核心/扩展徽标,悬停看归属原因
https://github.com/shy3130/tick-stock-panel/blob/HEAD/开放接口 Token 管理 https://github.com/shy3130/tick-stock-panel/blob/HEAD/菜单核心/扩展架构标注

| 能力 | 说明 | | :-------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | API Token | 设置 → 开放接口 创建,明文只显示一次,SHA-256 哈希存储,吊销立即生效 | | 网络门禁 | Token 通道默认仅本机/内网调用,公网一律 403(API_TOKEN_LOCAL_ONLY=0 显式放开,远程推荐 SSH 隧道);门禁先于验签,不泄露 Token 有效性也不消耗限流额度 | | 六档 scope | read:market / read:ext / write:ext / read:analysis / run:backtest / paper:trade,管理面永不开放给 Token | | 65 端点契约 | GET /api/openapi.json?tier=a 机器可读,Postman/代码生成即用;契约快照测试 + CI 守护,开放面变更必须显式确认 | | 数据写闭环 | write:ext 程序化写入扩展表行数据(与内置数据同台分析),表结构锁死在管理面 | | SSE 事件流 | 60 秒一次性票据订阅实时告警推送,票据只继承 scope 不放大权限 | | MCP 服务器 | 12 个精选工具,按 Token scope 暴露;模拟盘交易刻意不交给 AI | | 示例与文档 | examples/open-api 四个零依赖可运行示例 · docs/features.md → 开放接口 · 开放平台设计方案 |

开放接口面向本部署的二次开发与本地工具集成(自有页面、脚本、机器人、MCP 客户端),不作为数据对外分发通道;公网部署默认仅接受内网 Token 调用,详见 configuration.md → 开放接口网络门禁。
# 十行内跑通第一个调用
curl -H "Authorization: Bearer tsp_xxxx" \
  "http://localhost:3018/api/kline/daily?symbol=600519.SH&limit=10"

---

🤖 AI 对话助手

不想挨个页面点着找数据?把问题直接问出来 —— 助手在本地真实数据上调用工具取数, 逐字流式作答, 每次取数都可展开核对。

AI 对话助手 — 市场总览问答

| 打开方式 | 说明 | | :---------------- | :----------------------------------- | | 悬浮球 | 可拖动, 位置记忆; 生成中带状态指示点 | | 侧栏「AI 助手」行 | 左上角状态区 (AI 配置行下方), 一键展开 | | ⌘K / Ctrl+K | 全局快捷键随时呼出, Esc 关闭 |

能问什么

21 个查询工具覆盖全站页面能力, 5 个动作工具经确认卡放行 (可开免确认):

| 类别 | 覆盖能力 | | :--------------- | :-------------------------------------------------------------------------------------------------------------------------- | | 个股 | 实时行情快照(支持批量) · 日线区间 · 关键价位分析 · 财务五表(指标/利润/资负/现金流/股本) | | 大盘 | 看板总览(涨跌家数·成交额·涨停连板·情绪雷达) · 指数行情 · 市场环境(regime) · 异动监控 | | 板块 | 概念/行业板块盘中轮动、切换事件与资金排名 | | 我的数据 | 自选列表(含备注与实时涨跌) · 持仓提醒 · 信号库 | | 策略与因子 | 策略目录 · 执行策略取标的 · 因子目录 · 因子全市场排名 | | 扩展内容 | 扩展数据表(列表·字段·数据日期, 读行支持过滤/排序/日期范围) · 自定义策略与信号 | | 数据健康 | 完整性检查(日线/enriched/分钟K 覆盖区间与停更、财务表缺口、单标的滞后) · 同步任务进度 | | 动作(须确认) | 生成信号策略(声明式白名单条件, 落库即用) · 创建 AI 策略草稿(草稿态, 发布后生效) · 运行策略回测 · 加入自选 · 数据补全(盘后管道/财务表/分钟K扩展, 后台执行·单飞去重) |

交互设计

GitHub Stars & Activity

7,589Stars
1,852Forks
61Open issues
PythonLanguage

GitHub Popularity

GitHub stars7,589
Forks1,852
Open issues61
Primary languagePython
LicenseMIT
Stars gained today108
Created2026-06-18
Last pushed2026-11-11

Trending History

Daily boardrank #47 · ▲ 108 stars

Related GitHub Projects

1

anthropics / skills

Python★ 192,782⑂ 22,682▲ 1,679 stars
→
2

krahets / hello-algo

Python★ 132,196⑂ 15,616▲ 72 stars
→
3

browser-use / browser-use

Python★ 120,669⑂ 13,486▲ 171 stars
→
4

sherlock-project / sherlock

Python★ 109,715⑂ 12,712▲ 2,393 stars
→
5

ZhuLinsen / daily_stock_analysis

Python★ 69,685⑂ 56,740▲ 960 stars
→
6

Alishahryar1 / free-claude-code

Python★ 68,424⑂ 10,650▲ 652 stars
→
7

soxoj / maigret

Python★ 40,306⑂ 3,235▲ 364 stars
→
8

anthropics / claude-quickstarts

Python★ 20,708⑂ 3,481▲ 531 stars
→

More Trending Repositories