A股数据太散?自己搭个量化工作台
用 tickflow-stock-panel 自托管选股、监控、回测和复盘。教程覆盖 Docker 部署、数据档位、备份与安全边界;仅供研究,不构成投资建议。

行情散在不同页面,选股条件靠手工筛,回测结果又在另一套工具里。 tickflow-stock-panel 把 A 股和 ETF 的数据整理、技术指标、策略选股、历史回测、盘中监控、自选和复盘放进同一个自托管面板。
它适合愿意自己维护数据和规则的人。装好以后,还要同步行情、计算指标、理解回测假设,也要面对上游接口、权限档位和模型费用。
风险提示:项目只适合学习研究和技术演示,不构成任何投资建议。选股命中、告警和回测收益都不能直接用于真实资金决策。

先说清项目身份
这是个人维护的开源项目,仓库明确说明它不是 TickFlow 官方产品。面板代码放在 GitHub,数据主要来自 TickFlow,也能接自定义 HTTP 数据源和部分插件。
本次按提交 b1845cf 核验,运行时后端版本显示为 0.1.85。仓库没有对应 Release,前端和项目元数据里的版本号略有差异,部署时更适合记录 commit,而不是只记一个版本号。
代码目录带有 MIT License,但 README 同时写了“严禁商业用途”,两处口径冲突。商业部署、收费服务或行情再分发前,建议先向项目维护方和数据提供方取得明确许可。
数据档位决定哪些功能能用
面板会探测当前数据能力。项目内置的档位表含有旧数据和推断值,具体价格、频率和批量上限应以 TickFlow 当前页面及面板“重新检测”结果为准。
不填 Key
可以获取历史日 K,适合盘后选股、日线指标和基础回测。当日数据通常要等盘后更新,无法承担实时看盘和盘中告警。
免费 Key
增加少量自选标的实时行情。当前代码把它限制为最多 5 个配置标的,最低轮询间隔 6 秒。它能盯几只自选股,无法做全市场实时扫描。
Starter 及以上
全市场实时行情和批量行情能力开始可用,盘中策略扫描、市场异动监控才有较完整的数据基础。
Pro 及以上
增加分钟 K 、分时和五档盘口。分钟级成交回测、真实封单修正、炸板或翘板的盘口阈值监控依赖这类能力。
Expert
增加财务数据等能力。财务页面没有数据时,先检查档位和财务同步任务,不要把空白误判成上市公司没有财报。
Docker 安装:先把密码和数据目录处理好
前置条件是 Git 、 Docker Engine 和 Docker Compose v2 。先确认:
docker --version
docker compose version
然后克隆项目:
git clone https://github.com/shy3130/tickflow-stock-panel.git
cd tickflow-stock-panel
cp .env.example .env
chmod 600 .env
编辑 .env,至少设置访问密码:
AUTH_PASSWORD=换成较长的随机密码
PORT=3018
# 留空仍可使用历史日K
TICKFLOW_API_KEY=
# AI是可选功能
AI_PROVIDER=openai_compat
AI_BASE_URL=https://api.deepseek.com/v1
AI_API_KEY=
AI_MODEL=deepseek-chat
# 需要可选回测依赖时填写 backtest
BACKEND_EXTRAS=backtest
项目只要求密码至少 6 位,实际部署更适合使用密码管理器生成的长密码。
Compose 默认会把主机的 ~/.codex 只读挂进容器。不使用 Codex CLI 时,可以准备一个空目录,避免容器读取真实登录凭据:
mkdir -p "$HOME/.tickflow-empty-codex"
printf '\nCODEX_HOME_HOST=%s\n' "$HOME/.tickflow-empty-codex" >> .env
启动并查看日志:
docker compose up -d --build
docker compose ps
docker compose logs -f --tail=200 app
浏览器打开:
http://服务器IP:3018
默认端口映射会监听宿主机所有网卡。只在本机使用时,可把 Compose 端口改成:
ports:
- "127.0.0.1:${PORT:-3018}:3018"
公网部署需要 HTTPS 反向代理和防火墙。项目 Cookie 没有设置 Secure 属性,直接用公网 HTTP 登录会让密码和会话暴露在明文链路上。
第一次打开后,按这个顺序操作
- 完成首次引导,确认访问密码和免责声明。
- 进入“设置 → 凭据与能力”,填写 TickFlow Key,点击重新检测。
- 在数据页手动运行盘后数据管道,拉取日 K 。
- 等 enriched 指标表计算完成,再进入选股和回测。
- 添加几只自选,检查日 K 和指标是否正常显示。
- 先跑一个内置策略,确认选股结果和历史数据日期一致。
- 再做短区间回测,检查成交模式、手续费、印花税和滑点。
- 需要盘中提醒时,再开启实时行情并建立监控规则。
- AI 、飞书和企业微信都属于可选外部服务,建议在基础链路跑通后再配置。
首次进入就看到选股为空,通常先检查四项:日 K 是否同步、指标表是否计算完成、所选日期是否有数据,以及服务器能否连接 TickFlow 。
能做什么一:规则选股
项目当前有 18 个内置 Python 策略,覆盖趋势、均线、动量、突破、量价和涨跌停语义等方向。选股页面支持股票和 ETF 、历史日期、策略参数、结果排序、二次筛选以及批量加入自选。

自定义信号适合不想写代码的人。可以把最多 8 条数值条件组合成入场或退出信号,支持字段与常量、字段与字段比较,也能引用前 60 个交易日的数据。单个信号内部只支持 AND;盘中路径遇到带日期偏移的条件时会跳过。
熟悉 Python 的用户可以写自定义策略,面板会保存并动态加载。项目做了 AST 检查、导入白名单和危险调用拦截,这些检查仍不构成安全沙箱。来源不明的策略文件可能在后端进程中执行危险代码。
当前选股结果可以展示、筛选和加入自选,前后端没有找到 CSV 或 Excel 一键导出功能。 README 中有关选股导出的说法暂时不要当成已经完成。
能做什么二:回测、参数优化和滚动验证
回测页面包含四条路径:因子回测、策略回测、参数网格优化和 Walk-forward 滚动样本外验证。

因子回测提供固定因子,计算 Rank IC 、 IC 均值、 IR 、胜率、分层净值和理论多空组合。这里的多空组合是研究指标,不代表普通 A 股账户能够实际卖空。
策略回测支持全市场组合或指定标的,可以配置:
- 收盘成交或次日开盘成交;
- 佣金、印花税和滑点;
- 最大持仓数、最大敞口和初始资金;
- 止损、止盈、移动止损及最大持有天数;
- 等权或评分权重。
分钟 K 模式可以用穿越价或 VWAP 细化成交估计,但仍没有逐笔成交、盘口排队、真实市场冲击、融券可得性和券商订单回报。日线回测更依赖价格假设,结果适合验证规则,不适合证明未来收益。
参数优化会批量尝试参数组合;Walk-forward 会在训练区间找参数,再到样本外区间测试。两者能减少“只看一段历史”的偏差,但无法消除过拟合、幸存者偏差和数据质量问题。
能做什么三:盘中监控和告警
监控规则能按策略进入或移出、个股信号、价格指标阈值、全市场异动和连板盘口状态触发。可以设置 AND/OR 、冷却时间、严重级别和股票或 ETF 范围。

告警会写入本地记录,并通过 SSE 推给浏览器。页面支持弹窗、声音和浏览器语音,也可以发送到飞书或企业微信群机器人。

监控只在北京时间连续竞价时段评估,而且需要当天的 enriched 快照。无 Key 模式没有实时行情;免费 Key 只能更新有限自选。全市场盘中监控通常需要 Starter,分钟和五档盘口规则还要更高能力。
当前没有任意 Webhook 的通用发送器,也没有 QMT 自动交易。 Webhook 发送失败只记日志,系统没有可靠消息队列和送达保证。告警应该被当作提醒,再由人核对行情和公告。
能做什么四:自选、截图导入和扩展数据
自选支持股票与 ETF 混合管理、置顶、备注、表格和卡片视图。数据保存在:
data/user_data/watchlist.parquet
截图导入会在本地运行 Tesseract OCR,从 JPG 、 PNG 、 WebP 、 BMP 或 GIF 中提取六位证券代码,再和本地主数据匹配。识别结果先生成候选,用户确认后才加入自选。
它主要识别六位代码,图片模糊、代码被遮挡、只有股票名称或本地主数据缺失时,识别效果会下降。它不支持 PDF,也不会登录券商同步账户自选。
扩展数据可以通过 HTTP 、 CSV/Excel 或 JSON API 导入,再与内置股票数据做 JOIN,用于展示、排序、选股结果和板块分析。自定义 HTTP 源要求用户自己提供稳定接口和字段映射,数据授权、准确性和频率由接入方负责。
能做什么五:AI 分析和复盘
AI 是可选能力。没有 AI Key 时,行情、选股、常规指标和大部分回测仍能运行。配置 OpenAI 兼容接口或 Codex CLI 后,可以自然语言生成策略、做个股和财务分析、生成市场复盘并保存历史。

个股分析会使用最近 K 线、技术指标、关键价位和本地财务数据。所谓“消息面”当前没有接入新闻源,主要从涨停、放量等价量异常推断,并要求标记为推断。它不会主动搜索公告、研报或社交媒体。
系统提示词限制荐股、目标价和交易计划,但模型仍可能误读数据或越过限制。把 API Key 填进面板后,行情、财务数据和关注点会发送给所选模型服务;本地 Ollama 可以减少外发,但仍要确认 AI_BASE_URL 指向本机服务。
复盘会汇总面板里的市场数据,支持保存、定时运行和飞书推送,明确可以下载 Markdown 。它同样不会自动浏览互联网新闻。

明确不能做什么
- 不连接券商账户,不能下单、撤单或同步资金与持仓。
- 没有实盘自动交易系统,监控告警不会变成交易指令。
- 不提供 AI 荐股、涨停预测、目标价或保证收益。
- 免费模式不提供全市场专业实时行情。
- 回测没有完整模拟委托队列、市场冲击、停牌和真实融券。
- AI 个股分析没有新闻舆情输入,无法替代公告和研报核对。
- 截图导入不能同步券商账户,也不能识别所有版式。
- 当前不支持板块作用域告警,保存
sector规则会被拒绝。 - 不是多租户 SaaS,只有单实例访问密码,没有用户、角色和团队审计体系。
- 默认 Docker 不包含 stock-sdk;自行开启第三方抓取还要承担网站条款、反爬和行情版权风险。
- 不能保证上游行情、扩展接口、 OCR 或 AI 输出一直准确可用。
数据和凭据怎么保护
data/ 会保存行情、指标、自选、策略、回测、告警、访问密码哈希、会话、 TickFlow/AI Key,以及飞书和企业微信机器人配置。整个目录都应该按敏感数据保护。
项目对主凭据文件做了权限限制,但部分 Webhook 和机器人密钥保存在 preferences.json,接口会向已认证客户端返回原始值。面板只应交给管理员使用,不适合暴露给不受信任的多人。
自定义 HTTP 数据源可以让后端访问指定 URL,插件还可能安装依赖或执行代码。公共部署会带来 SSRF 、供应链和代码执行风险。
备份、更新和卸载
为了让 Parquet 、 JSON 和数据库文件保持一致,先停服务再备份:
docker compose stop
tar -czf tickflow-backup-$(date +%F).tar.gz data .env
chmod 600 tickflow-backup-*.tar.gz
docker compose start
更新前同样先备份:
docker compose stop
tar -czf tickflow-before-update-$(date +%F).tar.gz data .env
chmod 600 tickflow-before-update-*.tar.gz
git pull
docker compose up -d --build
docker compose logs -f --tail=200 app
不要运行 git clean -fdx,它会删除被 Git 忽略的 data/ 和 .env。
停止并保留数据:
docker compose down
彻底删除项目前,先确认备份可用。删除项目目录会同时删除 data/。
常见故障
没有 docker compose 命令
安装 Compose v2 插件,再确认:
docker compose version
端口 3018 被占用
修改 .env:
PORT=8080
随后重新启动,访问 http://服务器IP:8080。
页面能打开,但没有行情或选股为空
检查日志、数据档位、盘后管道和 enriched 指标计算。免费数据的当日更新需要等待盘后。
老 CPU 出现 avx2、fma 或退出码 132
在 .env 中设置:
BACKEND_EXTRAS=legacy-cpu
需要可选回测依赖时:
BACKEND_EXTRAS=legacy-cpu backtest
然后执行:
docker compose build --no-cache
docker compose up -d
忘记密码
停服务并先备份:
docker compose stop
cp data/user_data/auth.json data/user_data/auth.json.bak
rm data/user_data/auth.json
在 .env 中设置新的 AUTH_PASSWORD,再启动。旧会话会同时失效。
适合谁,不适合谁
适合:愿意自己维护 Docker 、数据同步和策略假设的个人研究者;需要把 A 股/ETF 数据、规则选股、历史回测和告警放在本地工作台的人;希望学习策略工程、参数优化和 Walk-forward 的开发者。
不适合:只想安装后直接收到买卖建议的人;需要券商交易、机构级实时行情和审计级回测的团队;无法管理密码、 API Key 、备份和公网安全的用户。
项目把数据、策略和研究工具集中到一个界面里,使用门槛仍然包含数据权限、机器资源和运维工作。先在历史数据上跑通一条最小流程,再逐步增加实时、 AI 和外部推送,会比一次性打开所有功能稳得多。
再次提醒:所有界面、告警、 AI 报告和回测结果只供研究,不构成任何投资建议。
你最需要的是规则选股、盘中告警,还是回测和滚动验证?