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

一、为什么 A 股研究需要"工作流自动化"?

Agent量化交易

配套媒体

本页对应的 PPT 与演示视频

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

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

PPT../../kakaaaa-quant-recommend.pptx
视频../../kakaaaa-quant-recommend.mp4
本文目录
  1. title: "A股研究工作流自动化|Kaka Quant轻量工作台实战" date: 2026-08-31 author: AI 量化带你飞 tags: [A 股研究, Tushare Pro, FastAPI, React, 工作流自动化, 事件研究] tool: kakaaaa-quant github: Conquerer-yinn/Kakaaaa-quant stars: 40 license: MIT
  2. 一、为什么 A 股研究需要"工作流自动化"?
  3. 二、它解决什么问题?
  4. 三、三层架构与数据流
  5. 四、核心能力拆解
  6. 4.1 情绪指标体系:可复用 + 口径就近
  7. 4.2 Excel 历史主表:写前自动备份 + 区域自维护
  8. 4.3 三类飞书卡片:可预览可刷新可推送
  9. 4.4 事件研究 V2:基准超额 + 样本质量表
  10. 4.5 FastAPI 服务层 + React 前端
  11. 4.6 质量保障:96 项自动化测试 + CI
  12. 五、快速开始(5 分钟上手)
  13. 5.1 安装
  14. 5.2 启动后端 + 前端
  15. 5.3 跑一个真实任务
  16. 5.4 Docker 一键启动
  17. 六、它和传统量化平台的区别
  18. 七、它适合谁?
  19. 八、路线图与未来
  20. 九、总结

title: "A股研究工作流自动化|Kaka Quant轻量工作台实战" date: 2026-08-31 author: AI 量化带你飞 tags: [A 股研究, Tushare Pro, FastAPI, React, 工作流自动化, 事件研究] tool: kakaaaa-quant github: Conquerer-yinn/Kakaaaa-quant stars: 40 license: MIT

风险提示:本文仅作技术交流与开源项目介绍,不构成任何投资建议。文中涉及的"事件研究"结果不含交易成本与执行摩擦,不能代表可复制表现。市场有风险,据此操作产生的一切后果自负。

一、为什么 A 股研究需要"工作流自动化"?

最近一两年,开源量化圈里出现了一个明显趋势:研究者最稀缺的不是策略,而是把"每天重复的研究动作"自动跑起来的能力。

传统量化平台——不管是 zipline、backtrader 还是 Qlib——它们的强项是"跑回测"。但 A 股研究者的真实一天是这样的:

  • 收盘后手动复盘:当日强势信号、炸板观察、连板高度、创业板反馈、大回撤个股;
  • 把当日数据增量写进 Excel 主表(区域、格式、备份一气呵成);
  • 把"今日情绪"压成一张飞书卡片,推送到群;
  • 周末把"创业板强势后 5 日事件研究"再跑一遍,看样本质量、更新结论。

每一步都很轻量,但串起来要 1~2 小时。如果哪天忘了哪个环节,复盘质量立刻断崖式下跌。

Kaka Quant(Conquerer-yinn/Kakaaaa-quant)就是为这个场景写的——一个面向 A 股研究工作流的轻量个人量化工作台,把"盘后复盘 → 情绪指标 → Excel 历史主表 → 飞书卡片 → 网页展示 → 策略验证"串成一条自动化闭环。

本文就带你从架构、模块、代码三个层面,把它完整拆开。

二、它解决什么问题?

多数量化框架为"跑策略"而生,Kaka Quant 为"做研究"而生。它不是重型量化平台,而是把一个 A 股研究者每天真实要做的事串成一条自动化闭环。

能力 说明
📊 市场情绪指标体系 价格限制 / 炸板 / 大回撤 / 连板高度 / 创业板专区 / 强势股次日反馈 / 位置度量
🗂 Excel 历史主表 增量补数、区间命名、滚动改名、写前自动备份、表格区域自动维护
📮 三类飞书卡片 盘后复盘 / 竞价观察 / 盘中节奏,一键预览、刷新、推送到群
🧬 策略事件研究 创业板强势后 1/3/5 日事件研究:基准超额表现、首板/连板与市场环境分组、样本质量表
⚡ FastAPI 服务层 任务注册表、后台任务、状态轮询与协作式取消
🖥 React 展示前端 历史数据图表联动、卡片管理、策略研究复盘页
🎯 策略研究主线 注册表驱动:研究 → 登记 → 试运行 → 启用 → Excel 复盘
🧪 工程化保障 96 项自动化测试 · Ruff · GitHub Actions · Docker Compose

Kaka Quant 项目封面

三、三层架构与数据流

整个仓库走的是三层结构 + 单向依赖:

flowchart LR
    TS[("Tushare Pro")] --> ENG["data_engine<br/>取数封装 · 限流重试"]
    ENG --> IND["market/indicators<br/>情绪指标体系"]
    IND --> JOBS["market/jobs<br/>任务入口"]
    JOBS --> XLSX[("storage<br/>Excel 历史主表")]
    IND --> SNAP["market/services<br/>卡片快照"]
    SNAP --> CARD["push_views<br/>飞书卡片"]
    JOBS --> API["backend<br/>FastAPI 服务层"]
    XLSX --> API
    SNAP --> API
    API --> FE["frontend<br/>React 展示壳"]
    ENG --> STRAT["strategies<br/>事件研究 + 注册表驱动"]
    STRAT --> XLSX

要点有三:

  1. 数据入口唯一:所有原始行情都从 data_engine 拉 Tushare Pro,再向下分发。这一层把"限流、重试、交易日历、字段对齐"全包了,下游不用再操心。
  2. 指标和卡片是兄弟:指标结果写 Excel(用于历史回看),同时建快照喂卡片(用于即时推送),两者都是指标的消费者,互不反向依赖。这避免了"卡片必须等 Excel 写完才能渲染"的串行阻塞。
  3. 策略是注册表驱动:strategies/ 下每条研究都是一个独立脚本,由注册表统一调度,研究 → 登记 → 试运行 → 启用 → Excel 复盘五步闭环。新增研究不用改主代码。

三层架构与单向依赖

Kaka Quant 工作台仪表盘

目录结构(截选):

Kaka_Quant/
├── backend/            # FastAPI 轻量服务层:任务、读取、卡片、策略接口
├── common/             # 配置(全部走环境变量)与飞书通知器
├── data_engine/        # Tushare 封装:日历 / 行情 / 价格限制 / 竞价 / 实时
├── frontend/           # React + Vite 展示前端
├── market/
│   ├── indicators/     # 可复用情绪指标(口径文档就近维护)
│   ├── jobs/           # 可独立运行的任务入口
│   ├── services/       # 三类卡片快照构建
│   └── push_views/     # 飞书卡片视图
├── storage/            # Excel 主表 / 备份 / 表格区域维护
├── strategies/         # 事件研究 + 策略脚本 + 研究笔记 + 注册表
├── tests/              # 96 项 Python 自动化测试
└── docs/               # 架构 / 安全 / 运行手册 / 研究设计

四、核心能力拆解

4.1 情绪指标体系:可复用 + 口径就近

market/indicators/ 是整套系统的"指标库"。每个指标是纯函数(输入日期或行情 DataFrame,输出指标结果),代码旁边紧跟一份"口径文档"——这一招对个人项目尤为重要:跑出来的数字别人能直接 review,不用去翻聊天记录。

以"创业板强势后 1/3/5 日事件研究"为例,它的口径文档会写清楚:

  • 样本范围:创业板(30/68 开头)+ 当日触达日间价格上限事件
  • 排除规则:ST 股、上市未满 60 天
  • 基准:399006.SZ(创业板指)
  • 输出:原始价格变动 + 相对基准超额变动
  • 分组:首板 / 连板 × 弱 / 中 / 强 市场环境
【说明:基准】所有相对变动都以「399006.SZ」为基准,避免用错指数失真
【说明:窗口】事件后第 1/3/5 个交易日,不含事件当日
【说明:样本质量】所有排除项都计数并写入"质量表",不静默丢掉

4.2 Excel 历史主表:写前自动备份 + 区域自维护

A 股研究者的 Excel 主表"格式一致性"非常关键——一旦公式断裂或表头错位,下游所有引用都会崩。storage/ 模块的处理方式值得借鉴:

  • 写前自动备份:每次落盘前复制上一版本到 storage/backup/YYYYMMDD_HHMMSS/,文件名带时间戳;
  • 增量补数:按日期判定哪些行是新数据,只追加不覆盖,避免人工合并冲突;
  • 表格区域自维护:用 openpyxl 维护"已使用行/列"边界,新增数据后自动扩区,公式跨行引用不会失效;
  • 滚动改名:主表按"区间"自动归档(例如月度主表 → market_sentiment_202608.xlsx)。

这套设计让 Excel 不再是脆弱的"个人云盘",而是可版本化、可回滚的研究档案。

4.3 三类飞书卡片:可预览可刷新可推送

飞书自定义机器人的卡片消息可以承载非常丰富的内容。Kaka Quant 做了三类:

卡片 触发时点 内容 状态
盘后复盘 收盘后 量能、价格限制、炸板、连板高度、创业板反馈、规则化情绪结论与风险提示 ✅ 稳定
竞价观察 9:25 后 指数开盘强弱、竞价成交额、竞价价格限制与前排个股 ✅ 第一版
盘中节奏 盘中任意 实时指数、全天成交额外推、时段节奏;实时权限不足自动降级为日线 🧪 实验性

每张卡片都支持三种动作:预览(dry-run,不发群)/ 刷新(重新计算后发群)/ 发送(历史快照发群)。这意味着写新卡片时不用真的"把群炸一次"才能验证,可以先 dry-run 看排版,再正式发。

4.4 事件研究 V2:基准超额 + 样本质量表

第一条真实研究闭环是创业板强势后 5 日事件研究(V2),逻辑非常标准但细节严谨:

  • 识别创业板触达日间价格上限事件,只统计未来 5 个交易日行情完整的样本,排除 ST 与上市未满 60 天个股
  • 计算事件后第 1、3、5 日原始价格变动及相对 399006.SZ 的超额变动
  • 按首板/连板 × 弱 / 中 / 强 市场环境分组统计
  • 样本质量表显式计数所有排除项(不是静默丢弃)

事件研究 6 步流程

输出五 Sheet Excel(摘要 / 分组 / 质量 / 明细 / 运行信息),API 与 /strategies 页面直读。这种"显式排除"是科研级数据处理的态度,比"看上去不错"的批量回测可信度高一个量级。

4.5 FastAPI 服务层 + React 前端

后端用 FastAPI 搭一个轻量服务层:

  • 任务注册表:所有 market/jobs/ 下的脚本自动注册为可调度的任务
  • 后台任务:长任务异步执行,前端轮询状态
  • 协作式取消:用户可在前端点"取消"安全中断任务
  • OpenAPI 文档:访问 http://127.0.0.1:8000/docs 看全部接口

前端用 React + Vite,做了三件事:

  1. 历史数据图表联动:选日期 → 自动刷新多个指标卡片
  2. 卡片管理:列出所有可用卡片 + 三按钮(预览/刷新/发送)
  3. 策略研究复盘页:直接读 Excel 五 Sheet,渲染成可交互表格

4.6 质量保障:96 项自动化测试 + CI

个人项目里愿意做 CI 的不多。Kaka Quant 把测试当一等公民:

  • 96 项自动化测试(90 Python + 6 前端):覆盖指标口径、Excel 读写去重、事件研究口径、基准与分组统计、卡片结构、任务生命周期、API 集成、凭据安全扫描
  • Ruff 语法闸门:每次 push 自动跑 lint
  • GitHub Actions:CI 后端 + 前端双校验
  • 凭据零明文:仓库零明文密钥,全部走环境变量
【说明:测试覆盖】指标函数纯函数化 + 集成测试双层保障
【说明:安全策略】自定义网关强制 HTTPS,凭据只走 env vars

五、快速开始(5 分钟上手)

5.1 安装

git clone https://github.com/Conquerer-yinn/Kakaaaa-quant.git && cd Kakaaaa-quant
pip install -r requirements.txt
cp .env.example .env        # 填入 TUSHARE_TOKEN 与 FEISHU_BOT_WEBHOOK

5.2 启动后端 + 前端

# 后端(http://127.0.0.1:8000/docs 查看全部接口)
uvicorn backend.main:app --reload

# 前端(另开终端,http://127.0.0.1:5173)
cd frontend && npm ci && npm run dev

5.3 跑一个真实任务

# 增量更新市场情绪历史主表
python market/jobs/run_market_sentiment.py

# 盘后飞书卡片先 dry-run 预览,再去掉参数真实推送
python market/jobs/push_post_close_card.py --dry-run

# 运行创业板事件研究(最近 120 天)
python strategies/run_chinext_limit_up_event_study.py

5.4 Docker 一键启动

docker compose up --build
# backend: http://127.0.0.1:8000   frontend: http://127.0.0.1:5173

六、它和传统量化平台的区别

传统量化平台 vs Kaka Quant

维度 传统量化平台(backtrader / zipline / Qlib) Kaka Quant
定位 跑回测 做研究
数据源 多源,配置复杂 Tushare Pro 单源封装
输出 净值曲线、回撤指标 Excel 主表 + 飞书卡片 + 网页展示
策略 事件驱动 / 向量化回测 注册表驱动的事件研究
部署 笔记本 / 服务器 Docker Compose 一键
适用 写策略 + 验证 日复盘 + 事件研究
学习曲线 高(要懂框架) 低(Python 脚本即可)

传统 vs Kaka Quant 详细对比表

简而言之:传统平台是"怎么跑回测",Kaka Quant 是"怎么让研究每天都跑一遍"。

七、它适合谁?

✅ A 股个人研究者:每天 1~2 小时复盘时间宝贵的人,想把研究流程自动化 ✅ 飞书团队:已经用飞书做日常协作的团队,复盘卡片可以直接进群 ✅ 事件研究入门者:想做事件研究但不想重造轮子的人 ✅ 科研型量化爱好者:强调"样本质量表""基准超额"的严谨研究态度

如果你已经在用 Tushare Pro + 飞书机器人 + Excel 主表做日常研究,Kaka Quant 的设计值得直接抄作业——哪怕不用它的代码,也可以照搬它的"三层架构 + 单向依赖 + 注册表驱动策略"。

八、路线图与未来

作者在 README 里写得很清楚:

  • ✅ v1.0.0 —— 情绪指标体系 · 历史主表 · 三类卡片 · 前后端闭环 · 策略主线 · 测试与 CI
  • ✅ 首个事件研究闭环 —— 创业板强势后 1/3/5 日 · 基准超额 · 首板/连板与市场环境分组 · 样本质量表
  • ☐ 更多旧指标迁移到 market/indicators/
  • ☐ 事件研究扩展到更多板块与观察窗口
  • ☐ 盘中卡片实时链路稳定性提升
  • ☐ 评估数据库层与更通用的任务调度

这是一个真实使用驱动的个人项目,节奏以研究需求优先,作者明确欢迎 Issue 和 PR。

九、总结

Kaka Quant 给我的最大启发不是某个具体功能,而是它的"工作流一体化"思路:

  1. 不重造轮子:数据源用现成的 Tushare Pro、推送用现成的飞书机器人、存储用现成的 Excel——把所有精力放在"研究动作自动化"上。
  2. 三层架构 + 单向依赖:避免循环引用,让每个模块都能独立测试。
  3. 注册表驱动策略:新增研究只需加一个脚本 + 注册一次,不用改主代码。
  4. 显式排除 = 严谨态度:所有样本排除项都计数写入"质量表",不静默丢弃。
  5. 96 项自动化测试 + CI:个人项目也按企业级标准做质量保障。

如果你每天都在重复"复盘 + 写 Excel + 推卡片"这套动作,不妨花 5 分钟 clone 下来跑跑看。

本文仅作技术交流与开源项目介绍,不构成任何投资建议。文中涉及的"事件研究"结果不包含交易成本与执行摩擦,不代表可复制表现。市场有风险,据此操作产生的一切后果自负。


项目地址:https://github.com/Conquerer-yinn/Kakaaaa-quant

License:MIT

核心依赖:Python 3.12+ / Tushare Pro / FastAPI / React + Vite / openpyxl / Ruff / Docker Compose