← 返回全部文章
·约 22 分钟PPT

本文仅作技术交流,不构成投资建议。股市有风险,投资需谨慎。

量化交易

配套媒体

本页对应的 PPT 与演示视频

tickflow-stock-panel-recommend.mp4
PPT
tickflow-stock-panel-recommend.pptx浏览器不能直接打开 PPT,下载后用 PowerPoint / WPS / Keynote 查看
下载没反应?点这里复制直链

侧边栏预览窗口(Electron webview)会拦截下载,把下面的链接复制到 Chrome / Edge 地址栏打开即可保存。

PPT../../tickflow-stock-panel-recommend.pptx
视频../../tickflow-stock-panel-recommend.mp4
本文目录
  1. 🚀 什么是 tickflow-stock-panel?
  2. ✨ 核心功能一览
  3. 🛠 快速上手:5 分钟本地跑通
  4. 环境要求
  5. 安装步骤
  6. 核心 API 示例
  7. 📊 与同类工具对比
  8. 🧠 技术架构深度剖析
  9. 1. 数据流水线:Polars + DuckDB 双引擎
  10. 2. 实时行情竞态控制:paused 标志 + 上下文管理器
  11. 3. LLM 集成:OpenAI 兼容接口 + 策略模板
  12. 4. 单容器部署:前端 dist 内嵌
  13. 💡 适用场景
  14. 场景 1:本地化选股策略研究
  15. 场景 2:18 策略 + AI 生成的选股引擎
  16. 场景 3:vectorbt 三模式回测
  17. 场景 4:实时监控 + 飞书推送
  18. 场景 5:连板梯队与异动预警
  19. 场景 6:概念/行业涨幅矩阵
  20. 场景 7:财务分析 + AI 解读
  21. 场景 8:个股技术面四维 AI 分析
  22. 场景 9:盘后 AI 复盘
  23. 场景 10:飞书推送集成
  24. 用户群体总结
  25. 💰 部署方案
  26. 🎯 总结

本文仅作技术交流,不构成投资建议。股市有风险,投资需谨慎。

📌 核心价值:自托管、零运维、单容器,把 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 一条命令启动。

GitHub stars GitHub forks

整个仓库已 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

功能说明:市场情绪评分 + 涨跌/成交额榜单 + 概念领涨领跌 + 大盘异动事件流,一屏总览全市场状态。

输入要求:无需参数,启动后自动加载当日数据。

输出效果:Dashboard 页面实时刷新,异动事件 SSE 推送。

适用场景:

  • 个人散户每日盘前 / 盘后 / 盘中盯盘
  • 量化研究员跨市场情绪扫描
  • 多账户联动盯盘的辅助参考

场景 2:18 策略 + AI 生成的选股引擎

策略 Screener

功能说明:18 个内置策略卡片 + 自定义信号 + LLM 策略生成 + 已有代码迁移,Polars 毫秒级扫全 A 股。

输入要求:选择策略 → 调参数 → 点"开始扫描"。

输出效果:命中标的列表 + 信号强度评分 + 历史回放。

适用场景:

  • 经典技术派(MA/MACD/RSI/KDJ/布林)回测
  • 自定义因子探索(多因子打分)
  • LLM 帮你把"找 MACD 金叉 + 量能放大"的想法变成可执行代码

场景 3:vectorbt 三模式回测

回测 Backtest

功能说明:三种回测模式(个股 / 策略组合 / 自由信号),T+1 / 手续费 / 滑点 / 止损一应俱全,SSE 流式进度。

输入要求:选标的 / 策略 → 时间区间 → 初始资金 → 费率参数。

输出效果:净值曲线 / 最大回撤 / 夏普比率 / 胜率 / 交易明细。

适用场景:

  • 策略上线前的"沙盘推演"
  • 因子库 IC/IR、分层收益的批量评估
  • 同策略不同参数区间的敏感性分析

场景 4:实时监控 + 飞书推送

监控中心 Monitor

功能说明:四类监控(策略 / 个股信号 / 价格 / 异动),多条件 AND/OR + 语音播报 + 飞书推送。

输入要求:配置监控规则 → 选标的池 → 设置触发条件 → 选推送通道。

输出效果:盘中实时弹窗 + 浏览器原生 speechSynthesis 语音 + 飞书消息。

适用场景:

  • 工作时段盯盘的"第二双眼睛"
  • 多设备联动(家里电脑 + 公司电脑 + 手机飞书)
  • 复盘时段从监控记录中拉取信号样本

场景 5:连板梯队与异动预警

连板梯队 Limit Ladder

功能说明:连板层级统计 + 概念涨幅轮动 + 盘后 AI 复盘 + 炸板/翘板预警。

输入要求:无需参数,自动抓取实时数据。

输出效果:连板层级表 + 概念涨幅 Top + 炸板预警推送。

适用场景:

  • 短线主题轮动的市场观察
  • 异动个股的二次过滤
  • AI 自动生成的盘后复盘 Markdown

场景 6:概念/行业涨幅矩阵

概念分析 Concept

功能说明: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 + 量化跨界学习者、本地化部署爱好者、教学演示场景

立即体验:


数据截至 2026-07-14,最新信息请以 GitHub 仓库为准。本项目仅供学习与量化研究,不构成任何投资建议。A 股有风险,入市需谨慎。