本文仅作技术交流,不构成投资建议。股市有风险,投资需谨慎。
配套媒体
本页对应的 PPT 与演示视频
下载没反应?点这里复制直链
侧边栏预览窗口(Electron webview)会拦截下载,把下面的链接复制到 Chrome / Edge 地址栏打开即可保存。
../../tickflow-stock-panel-recommend.pptx../../tickflow-stock-panel-recommend.mp4本文目录
- 🚀 什么是 tickflow-stock-panel?
- ✨ 核心功能一览
- 🛠 快速上手:5 分钟本地跑通
- 环境要求
- 安装步骤
- 核心 API 示例
- 📊 与同类工具对比
- 🧠 技术架构深度剖析
- 1. 数据流水线:Polars + DuckDB 双引擎
- 2. 实时行情竞态控制:paused 标志 + 上下文管理器
- 3. LLM 集成:OpenAI 兼容接口 + 策略模板
- 4. 单容器部署:前端 dist 内嵌
- 💡 适用场景
- 场景 1:本地化选股策略研究
- 场景 2:18 策略 + AI 生成的选股引擎
- 场景 3:vectorbt 三模式回测
- 场景 4:实时监控 + 飞书推送
- 场景 5:连板梯队与异动预警
- 场景 6:概念/行业涨幅矩阵
- 场景 7:财务分析 + AI 解读
- 场景 8:个股技术面四维 AI 分析
- 场景 9:盘后 AI 复盘
- 场景 10:飞书推送集成
- 用户群体总结
- 💰 部署方案
- 🎯 总结
本文仅作技术交流,不构成投资建议。股市有风险,投资需谨慎。
📌 核心价值:自托管、零运维、单容器,把 A 股「选股 + 监控 + 回测」全套量化流水线跑在本地;LLM 帮你写策略、做个股四维分析、生成盘后复盘。
一套基于 Polars + DuckDB + FastAPI + React 的本地化开源工作台,把"量化基础设施 + AI 能力"绑成一个 Docker 镜像,
docker compose up --build即可上桌。

🚀 什么是 tickflow-stock-panel?
tickflow-stock-panel 是 GitHub 用户 shy3130 个人开源的 A 股自托管量化工作台,定位"个人散户与量化爱好者的本地化研究平台"。它把传统的"选股 / 监控 / 回测"三件套 + 当下最热的 LLM 能力,封装成一个单容器 Web 应用,前端 dist 打进后端镜像,docker compose up --build 一条命令启动。
整个仓库已 312 次提交、最新 release v0.1.84、最后更新 2026 年 7 月 13 日,活跃度领先大多数同类个人项目。它不内置 AI 荐股 / 涨停预测,而把 LLM 聚焦在「策略代码生成」「个股四维分析」「盘后复盘」三个真正能落地的方向,明确边界——仅供学习研究,不构成投资建议。
核心定位:把"Polars + LLM + 单容器"三件套打通,让个人开发者也能跑出大厂级别的本地量化工作台。
✨ 核心功能一览

🛠 快速上手:5 分钟本地跑通
环境要求
- Python ≥ 3.11
- Node ≥ 20
uv(Python 包管理)pnpm(npm i -g pnpm)- Docker(生产部署可选)
安装步骤
# 1. 克隆仓库
git clone https://github.com/shy3130/tickflow-stock-panel.git
cd tickflow-stock-panel
# 2. 复制环境配置(关键三项)
cp .env.example .env
# 按需填 TICKFLOW_API_KEY / AI_API_KEY / PORT
# 3. 方式 A:Dev 模式(二次开发推荐)
./dev.sh # Linux/Mac
.\dev.ps1 # Windows(已修复 UTF-8 中文日志乱码)
# 4. 方式 B:Docker 部署(生产推荐)
docker compose up --build
# 5. 打开浏览器
# 后端 → http://localhost:3018
# 前端 → http://localhost:3011
注意:第一次启动后必须执行「设置 → 凭据与能力 → 重新检测」,系统会自动判断档位并加载对应数据源。
核心 API 示例
# 选股接口示例(FastAPI 端点)
import httpx
response = httpx.post(
"http://localhost:3018/api/screener/run",
json={
"strategy_id": "ma_cross",
"params": {"fast": 5, "slow": 20},
"universe": "all_a_share",
"top_n": 30,
},
)
candidates = response.json()["hits"]
# 回测接口示例
backtest = httpx.post(
"http://localhost:3018/api/backtest/run",
json={
"symbols": [c["symbol"] for c in candidates[:10]],
"start": "2024-01-01",
"end": "2026-07-01",
"capital": 1_000_000,
"commission": 0.0003,
"slippage": 0.001,
},
).json()
print(f"Sharpe={backtest['sharpe']:.2f}, MaxDD={backtest['max_drawdown']:.2%}")
📊 与同类工具对比

🧠 技术架构深度剖析
1. 数据流水线:Polars + DuckDB 双引擎
整个工作台的"指标计算 / 扫表 / 落盘"全部跑在 Polars 上——这是与同类工具最大的工程差异:
# enriched 流水线伪代码
import polars as pl
from app.features import compute_ma, compute_macd, compute_rsi
daily_bars = pl.scan_parquet("data/daily/*.parquet")
enriched = (
daily_bars
.group_by("symbol")
.agg([
compute_ma("close", 5).alias("ma5"),
compute_ma("close", 20).alias("ma20"),
compute_macd("close").alias("macd"),
compute_rsi("close", 14).alias("rsi"),
])
.collect(streaming=True) # 流式执行,毫秒级响应
)
enriched.write_parquet("data/enriched/latest.parquet")
核心优势:Polars 列存 + Lazy evaluation + 多线程,处理全 A 股 5000+ 标的日级 enriched 表只需数秒,相比 pandas 方案有数量级差距。
只有 vectorbt 回测引擎作为唯一的 pandas 边界——这是因为 vectorbt 的强类型矩阵运算与 Polars 的 DataFrame 模型不同,强行抽象成本太高。
2. 实时行情竞态控制:_paused 标志 + 上下文管理器
盘后管道运行期间会自动暂停实时行情取数,避免 parquet 覆写:
from contextlib import contextmanager
class QuoteService:
_paused = False
@contextmanager
def pause_for_pipeline(self):
QuoteService._paused = True
try:
yield
finally:
QuoteService._paused = False
def get_realtime(self, symbol: str):
if QuoteService._paused:
return None # 盘后管道运行中,跳过
return self._fetch(symbol)
这一设计在同类工具中极为罕见——很多工具在盘后管道跑数据时还在写实时行情,最后 parquet 被冲掉,只能重跑全量。
3. LLM 集成:OpenAI 兼容接口 + 策略模板
# LLM 策略生成伪代码
from openai import OpenAI
client = OpenAI(
api_key=settings.AI_API_KEY,
base_url=settings.AI_BASE_URL, # 支持 DeepSeek / 通义 / Ollama
)
strategy_guide = load_prompt("backend/app/strategy/prompts/strategy-guide.md")
user_intent = "找出近期 MACD 金叉 + 成交量放大 2 倍的中小盘股"
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": strategy_guide},
{"role": "user", "content": user_intent},
],
)
strategy_code = response.choices[0].message.content
exec(strategy_code, {"pl": pl, "data": enriched})
设计哲学:AI 不做荐股,做策略生成;AI 不替代人脑,做工具放大器。
4. 单容器部署:前端 dist 内嵌
# Dockerfile 关键步骤
FROM node:20 AS frontend
WORKDIR /app/frontend
COPY frontend/ ./
RUN pnpm install && pnpm build # 前端产出 dist/
FROM python:3.11-slim
WORKDIR /app
COPY --from=frontend /app/frontend/dist /app/static # 前端 dist 打进后端镜像
COPY backend/ /app/backend/
RUN pip install -r requirements.txt
CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "3018"]
前端 dist 拷进后端镜像,一条命令启动,不需要分别管理前后端容器——这是"零运维"承诺的工程基础。
💡 适用场景
场景 1:本地化选股策略研究

功能说明:市场情绪评分 + 涨跌/成交额榜单 + 概念领涨领跌 + 大盘异动事件流,一屏总览全市场状态。
输入要求:无需参数,启动后自动加载当日数据。
输出效果:Dashboard 页面实时刷新,异动事件 SSE 推送。
适用场景:
- 个人散户每日盘前 / 盘后 / 盘中盯盘
- 量化研究员跨市场情绪扫描
- 多账户联动盯盘的辅助参考
场景 2:18 策略 + AI 生成的选股引擎

功能说明:18 个内置策略卡片 + 自定义信号 + LLM 策略生成 + 已有代码迁移,Polars 毫秒级扫全 A 股。
输入要求:选择策略 → 调参数 → 点"开始扫描"。
输出效果:命中标的列表 + 信号强度评分 + 历史回放。
适用场景:
- 经典技术派(MA/MACD/RSI/KDJ/布林)回测
- 自定义因子探索(多因子打分)
- LLM 帮你把"找 MACD 金叉 + 量能放大"的想法变成可执行代码
场景 3:vectorbt 三模式回测

功能说明:三种回测模式(个股 / 策略组合 / 自由信号),T+1 / 手续费 / 滑点 / 止损一应俱全,SSE 流式进度。
输入要求:选标的 / 策略 → 时间区间 → 初始资金 → 费率参数。
输出效果:净值曲线 / 最大回撤 / 夏普比率 / 胜率 / 交易明细。
适用场景:
- 策略上线前的"沙盘推演"
- 因子库 IC/IR、分层收益的批量评估
- 同策略不同参数区间的敏感性分析
场景 4:实时监控 + 飞书推送

功能说明:四类监控(策略 / 个股信号 / 价格 / 异动),多条件 AND/OR + 语音播报 + 飞书推送。
输入要求:配置监控规则 → 选标的池 → 设置触发条件 → 选推送通道。
输出效果:盘中实时弹窗 + 浏览器原生 speechSynthesis 语音 + 飞书消息。
适用场景:
- 工作时段盯盘的"第二双眼睛"
- 多设备联动(家里电脑 + 公司电脑 + 手机飞书)
- 复盘时段从监控记录中拉取信号样本
场景 5:连板梯队与异动预警

功能说明:连板层级统计 + 概念涨幅轮动 + 盘后 AI 复盘 + 炸板/翘板预警。
输入要求:无需参数,自动抓取实时数据。
输出效果:连板层级表 + 概念涨幅 Top + 炸板预警推送。
适用场景:
- 短线主题轮动的市场观察
- 异动个股的二次过滤
- AI 自动生成的盘后复盘 Markdown
场景 6:概念/行业涨幅矩阵

功能说明:ths 概念涨幅轮动矩阵 + 领涨/领跌主线 + 个股穿透。
输入要求:选择时间粒度(日 / 周 / 月)。
输出效果:概念涨幅热力图 + 主线龙头 + 个股穿透。
适用场景:
- 板块轮动节奏的视觉化研究
- 主流热点的快速捕捉
- 主题策略的标的筛选入口
场景 7:财务分析 + AI 解读

功能说明:利润表 / 资负表 / 现金流 + AI 解读关键指标。
输入要求:输入股票代码或从自选股列表选择。
输出效果:三大报表 + AI 自动生成的财务健康度报告。
适用场景:
- 基本面研究的"加速器"
- 财报发布后的快速阅读
- 多公司财务横向对比的辅助
场景 8:个股技术面四维 AI 分析

功能说明:日 K + 9 类关键价位 + AI 四维分析(技术面 / 基本面 / 财务面 / 消息面)。
输入要求:股票代码 → 选择分析维度。
输出效果:四维评分 + 关键价位标记 + AI 总结报告。
适用场景:
- 个股深度研究的"入口"
- 短线介入点的多维确认
- 持仓股的定期复盘
场景 9:盘后 AI 复盘

功能说明:盘后 AI 自动生成市场复盘 Markdown,支持定时执行、飞书推送。
输入要求:配置定时任务(建议每日 15:30 收盘后)。
输出效果:完整的市场复盘报告 + 飞书自动推送 + Markdown 下载。
适用场景:
- 交易日复盘的自动化
- 团队共享的市场观点同步
- 长周期复盘数据的积累
场景 10:飞书推送集成

功能说明:监控信号 / 自动复盘结果自动推送到飞书机器人。
输入要求:在 .env 配置飞书 Webhook URL。
输出效果:飞书群消息 + 卡片格式展示。
适用场景:
- 多人团队的信号同步
- 移动端的实时触达
- 自动化复盘的分发渠道
用户群体总结
- ✅ 个人量化研究者:需要本地化、可控、可定制的量化平台
- ✅ AI + 量化跨界学习者:想用 LLM 辅助但拒绝"AI 荐股"概念的同学
- ✅ 多设备联动盯盘者:需要飞书推送 + 语音播报 + 实时弹窗
- ✅ 教学 / 培训场景:自托管 + 单容器 = 极易在课堂演示部署
- ❌ 不适合:追求实盘交易自动化的用户(v2 路线图才有 QMT/掘金下单)
💰 部署方案
完全开源 / 永久免费:MIT License,源代码全部可商用。
官方推荐两种部署方式:
| 部署方式 | 适用场景 | 启动命令 |
|---|---|---|
| Dev 模式 | 二次开发 / 调试 | ./dev.sh 或 .\dev.ps1 |
| Docker 单容器 | 生产 / 演示 | docker compose up --build |
数据源成本:
- TICKFLOW_API_KEY:留空 = None 模式(仅历史日 K 免费);填 Key 解锁实时行情与分钟线
- AI_API_KEY:留空 = 关闭 AI;填 Key 启用策略生成与四维分析
💡 新用户福利:默认 .env 留空即可启动,历史日 K 数据完全免费;填入 Key 后功能逐步解锁,无强制付费门槛。
🎯 总结
tickflow-stock-panel 是一套真正面向个人开发者的 A 股量化工作台——它不追求"开箱即用的 AI 荐股",而是用 Polars + LLM + 单容器 三件套把"基础设施 + AI 能力 + 部署便利性"做到极致。18 个内置策略 + 三种回测模式 + 四类监控规则 + AI 四维分析 + 飞书推送——基本覆盖了个人散户从研究到盯盘的全流程。
推荐指数: ⭐⭐⭐⭐⭐(满分 5 星)
适合人群: 个人量化研究者、AI + 量化跨界学习者、本地化部署爱好者、教学演示场景
立即体验:
- GitHub 仓库: shy3130/tickflow-stock-panel
- 官方文档: docs/deployment.md
- QQ 交流群: 109338242
数据截至 2026-07-14,最新信息请以 GitHub 仓库为准。本项目仅供学习与量化研究,不构成任何投资建议。A 股有风险,入市需谨慎。