quant-buddy-skills
🔥 3 秒快速安装
如果你熟悉 Agent 工具(Claude Code、Cursor、OpenClaw 等),可以直接对 AI Agent 说:
帮我安装这个 skill:
npx skills add pseudo-longinus/quant-buddy-skills -g -a claude-code -s quant-buddy-skill -y
如果你不懂如何使用 Agent 和 skill,可以按照小白图文教程一步步展开。
让 AI Agent(智能代理)直接在全 A 股上跑公式、选股、因子和回测。
A-share quant execution layer for Claude Code、Cursor、Codex、GitHub Copilot、Windsurf 等 AI Agent。
quant-buddy-skills 不是普通股票数据 API(应用程序接口)。它把行情、估值、财务、公式引擎、全市场筛选、因子计算、策略回测、净值对比和图表渲染封装成 AI Agent(智能代理)可直接调用的投研工作流。
数据覆盖包括 A 股财务、港美股财务、龙虎榜标签、GICS 行业等常用投研数据。
传统数据 API 只负责"把数据拉出来";quant-buddy-skills 负责让 AI Agent 把自然语言投研想法转成可执行公式、平台侧计算、结构化结果和可复用任务。
官网:https://www.quantbuddy.cn
本项目用于金融数据分析、量化研究、策略验证和教育用途,不构成投资建议、交易建议、收益承诺或自动交易服务。
30 秒示例
你可以直接对 AI Agent(智能代理)说:
筛选今天 14:30 全 A 股中,近 60 个交易日创新高、
成交额高于过去 20 日均值 2 倍、且涨幅排名靠前的公司。
AI Agent(智能代理)会生成公式链,由 quant-buddy(量化投研平台)在平台侧完成全市场计算,然后只返回 TopN(前 N 名)名单、指标、排序和图表。
不用把几千只股票的大表塞进 LLM(大语言模型)上下文,也不用手写数据清洗、字段 join(连接)和回测代码。
为什么值得安装
- 不是只查数据:支持公式、窗口统计、条件筛选、因子排序和策略回测。
- 适合全 A 股横截面计算:平台侧完成大规模计算,只把结果返回给 AI Agent(智能代理)。
- 能沉淀为可复用任务:今天探索出的公式,明天可以固定时间重复运行。
- 面向 AI Agent(智能代理)工作流设计:适配 Claude Code(编程智能代理)、Cursor(智能编辑器)、Codex(编程智能代理)、GitHub Copilot(编程助手)、Windsurf(智能编辑器)等环境。
- A 股能力最完整:行情、估值、财务、选股、因子、回测、图表;港股和美股支持行情、部分估值和财务字段(以接口返回为准);可识别期货品种的行情/窗口序列为有条件支持。
- 覆盖更多投研数据:支持 A 股财务、港美股财务、龙虎榜标签、GICS 行业等常用投研数据。
一句话能做什么
| 你对 AI Agent(智能代理)说 | quant-buddy-skills 做什么 |
|---|---|
| “查贵州茅台最新收盘价、涨跌幅、成交额” | 调用行情数据,返回结构化结果 |
| “筛全 A 股放量突破 60 日新高的前 10 只” | 平台侧执行全市场公式、筛选、排序,只返回 Top10(前十名) |
| “回测低 PE(市盈率)+ 高 ROE(净资产收益率)组合,相对沪深 300 画净值” | 执行策略回测、基准对比、输出净值曲线 |
| “把这个选股条件每天 14:30 跑一遍” | 将验证过的公式沉淀为可复用任务 |
| “把这组算好的指标发布成一个网页能直接读的数据包” | 注册成公式任务包,返回凭证,前端/第三方免 API Key 流式取最新值 |
| “上传我的 CSV(逗号分隔值文件)因子,和 ROE(净资产收益率)一起做排序” | 上传自有因子并参与公式计算、选股和图表输出 |
Skill Matrix(能力矩阵)
| 能力 | 支持范围 | 典型提示词 |
|---|---|---|
| 快速行情查询 | A 股 / 港股 / 美股 / 指数 / 可识别期货(行情以工具返回为准) | “查一下贵州茅台最新收盘价、涨跌幅和成交额” |
| 估值与财务 | A 股 / 港股 / 美股部分字段(以接口返回为准) | “列出宁德时代最近报告期 ROE、净利润和资产负债率” |
| 常用投研数据 | A 股财务、港美股财务、龙虎榜标签、GICS 行业等 | “查一下归母净利润、EBITDA、龙虎榜净买额、GICS 行业” |
| 全市场公式计算 | A 股为主 | “计算全 A 20 日收益和 60 日收益,并按动量排序” |
| 多条件选股 | A 股为主 | “筛选非 ST、低 PE、高 ROE、成交额放大的股票” |
| 因子分析 | A 股为主 | “用股息率、ROE、动量做复合因子排序” |
| 策略回测 | A 股为主 | “回测低 PE + 高 ROE 组合,相对沪深 300 画净值” |
| 盘中任务 | A 股分钟数据能力,以实际接口为准 | “今天 14:30 筛选放量突破 60 日新高的前 30 名” |
| 图表渲染 | K 线、净值、基准对比 | “把策略净值和沪深 300 画成图” |
| 公式任务包 | 把公式组注册成长期包,对外免 API Key(接口密钥)SSE 取数 | “把这组选股公式发布成一个数据页,前端直接取最新结果” |
| 自有数据 | CSV(逗号分隔值文件)因子上传 | “上传我的因子 CSV,和 ROE 一起排序” |
适合谁
- A 股量化研究员:想快速验证选股、因子、事件研究、回测想法。
- AI Agent(智能代理)和 AI 编程工具用户:想让 Claude Code(编程智能代理)、Cursor(智能编辑器)、Codex(编程智能代理)、GitHub Copilot(编程助手)直接完成投研任务。
- 投研自动化开发者:想把每日复盘、盘中筛选、策略监控固化为可重复运行的任务。
- 金融数据分析师 / 内容创作者:想从自然语言直接得到结构化数据、TopN(前 N 名)名单和图表。
不适合谁
- 只需要完全自定义底层数据管道的人。
- 主要研究加密货币、期权、期货估值/财务或美股基本面深度估值的人。
- 期待自动交易下单、收益承诺或个性化投资建议的人。
真实调用示例
以下示例由 quant-buddy-skill 在 2026-05-18 实际调用生成。行情会随市场刷新变化,但可以看到它的核心工作方式:自然语言进入 AI Agent(智能代理),公式引擎在平台侧完成计算,最后只把结构化结果返回给 LLM(大语言模型)。
示例 1:自然语言查数,一次返回多个指标
用户可以直接问:
查一下贵州茅台最新收盘价、涨跌幅和成交额。
AI Agent(智能代理)会生成并执行公式:
贵州茅台收盘 = "全市场每日收盘价" * 取出(贵州茅台)
贵州茅台涨跌幅 = "全市场每日回报率" * 取出(贵州茅台)
贵州茅台成交额 = "全市场每日成交额" * 取出(贵州茅台)
实际返回结果:
| 日期 | 股票 | 收盘价 | 涨跌幅 | 成交额 |
|---|---|---|---|---|
| 2026-05-18 | 贵州茅台 | 1323.69 | -0.70% | 46.01 亿元 |
这个例子展示的是“自然语言提问 -> 公式生成 -> 平台侧取数 -> 结构化结果返回”的最短路径。
示例 2:全市场公式计算,不把大表塞进上下文
用户可以问:
筛选全 A 股中,今天突破 60 日新高、成交额高于过去 20 日均值 2 倍,并按当日涨跌幅排序的前 10 名。
AI Agent(智能代理)会生成公式链:
A股池 = 板块(万得全A) * 缺失填零("非ST股")
60日高基准 = 昨天(最大("全市场每日最高价", 60))
放量基准 = 昨天(平均("全市场每日成交额", 20))
突破60日新高 = ("全市场每日最高价" > "60日高基准") * "A股池"
成交额放量 = ("全市场每日成交额" > 2 * "放量基准") * "A股池"
排序值 = "突破60日新高" * "成交额放量" * 涨跌幅("全市场每日收盘价")
放量突破Top10 = 取前("排序值", 10, 返回数值)
实际返回结果:
| 排名 | 股票 | 代码 | 当日涨跌幅 |
|---|---|---|---|
| 1 | 凡拓数创 | SZ301313 | 20.00% |
| 2 | 索辰科技 | SH688507 | 20.00% |
| 3 | 隆达股份 | SH688231 | 18.23% |
| 4 | 蓝思科技 | SZ300433 | 13.97% |
| 5 | 长盈通 | SH688143 | 13.21% |
| 6 | 广信材料 | SZ300537 | 13.12% |
| 7 | 卡倍亿 | SZ300863 | 12.70% |
| 8 | 佰奥智能 | SZ300836 | 11.79% |
| 9 | 线上线下 | SZ300959 | 11.68% |
| 10 | 中巨芯 | SH688549 | 10.48% |
这里没有把全市场几千只股票的原始矩阵塞进 LLM(大语言模型)上下文。平台侧先完成全市场计算、筛选和排序,最终只返回 Top10(前十名)结果。实际调用中,读取最终 Top10(前十名)明细只返回 10 行,readData(读取数据)响应显示 cost(消耗字段)=2 RU(资源用量单位)。
示例 3:探索后把公式固化,后续直接调用
第一次使用时,用户可以自然语言探索:
帮我设计一个 14:30 盘中选股条件:突破 60 日新高,同时成交额超过过去 20 日均值 2 倍,输出涨幅前 10。
当这个条件被验证后,可以把公式保存为固定任务:
{
"name": "volume_breakout_60d_intraday",
"description": "14:30 盘中放量突破 60 日新高选股",
"params": {
"formulas": [
"A股池 = 板块(万得全A) * 缺失填零(\"非ST股\")",
"60日高基准 = 昨天(最大(\"全市场每日最高价\", 60))",
"放量基准 = 昨天(平均(\"全市场每日成交额\", 20))",
"突破60日新高 = (\"全市场每日最高价\" > \"60日高基准\") * \"A股池\"",
"成交额放量 = (\"全市场每日成交额\" > 2 * \"放量基准\") * \"A股池\"",
"排序值 = \"突破60日新高\" * \"成交额放量\" * 涨跌幅(\"全市场每日收盘价\")",
"放量突破Top10 = 取前(\"排序值\", 10, 返回数值)"
],
"begin_date": 20260101,
"include_description": true,
"use_minute_data": true,
"force_reusable_array": ["放量突破Top10"]
}
}
之后可以跳过反复解释需求,直接由 AI Agent(智能代理)或调度系统在每天 14:30 调用同一套公式:
GZQ_PARAMS='<上面的 params JSON(数据交换格式)>' python scripts/call.py runMultiFormulaBatchStream
执行后,从返回的 data_id(数据标识)读取最终结果:
GZQ_PARAMS='{"ids":["<data_id>"],"mode":"last_column_full"}' python scripts/call.py readData
这就是“探索阶段”和“使用阶段”的区别:探索阶段用自然语言快速改想法,使用阶段直接复用公式和接口,把投研流程固化为可重复执行的生产任务。
公式任务包(Formula Package):把验证过的公式组对外发布
示例 3 把公式固化成「Agent / 调度自己重复跑」的任务;公式任务包再往前一步——把一组验证过的公式注册成一个长期数据服务,让你自己的网页、看板或第三方**无需 API Key(接口密钥)**就能反复取到最新结果。
注册一次(需 API Key),拿到一对凭证 package_id + signature;之后任何能发 HTTP(超文本传输协议)请求的地方,凭这对凭证就能以 SSE(服务器推送事件)流式取数。底层数据一更新,服务端自动按依赖关系重算,取数永远拿最新值、绝不返回过期数据。
与
runMultiFormulaBatchStream(全市场公式批算)的区别:后者是 Agent / 调度在你自己的账号侧执行、读data_id(数据标识);公式任务包是把算好的产出以凭证形式对外只读开放,取数方无需 API Key、也不消耗其配额,费用始终计入包所有者。两者执行池与计费相互独立。
典型场景
- 自建投研日报 / 数据看板:把每天复盘要看的指标(选股名单、因子排序、估值分位、资金流向……)注册成一个包,用一个静态 HTML(网页)页面
fetch(浏览器取数)渲染。打开页面即当日最新,无需后端、无需每天手动重跑公式。 - 给团队 / 客户一个只读数据页:发出去的是
package_id+signature,不是 API Key;对方只能读你固定的产出,改不了公式、拿不到账号权限,可随时撤销。 - 嵌进已有网站 / Notion / 飞书 / 大屏:任何能跑
fetch的地方都能把 quant-buddy(量化投研平台)的计算结果接进你自己的页面。 - 第三方 / 轻量集成:把一个算好的指标包交给合作方只读对接,零配置接入。
它能搭出什么:两个用公式任务包做的真实页面
下面两个页面都是纯静态 HTML(网页)——没有后端、没有数据库,只在浏览器里 fetch(取数)一个公式任务包,把返回的 outputs(产出)渲染成表格和图表。底层数据一更新,刷新页面即当日最新值,API Key(接口密钥)不进前端。
⚠️ 以上页面仅为公式任务包的示例展示,所示数字均为历史 / 示例数据,不构成任何投资或交易建议。
两段式用法
cd skills/quant-buddy-skill
# 1. 注册(需 API Key):params.json 写 formulas + reads,中文公式用 @file 传避免编码截断
python scripts/formula_package.py register @params.json
# 2. 取数(无需 API Key):只需 package_id,signature 可由本地落盘凭证自动补全
$env:FP_PARAMS='{"package_id":"pkg_xxx"}'
python scripts/formula_package.py query
# 管理:列表 / 撤销 / 刷新(轮换签名)
python scripts/formula_package.py list '{"page":1,"page_size":20}'
python scripts/formula_package.py revoke '{"package_id":"pkg_xxx"}'
python scripts/formula_package.py refresh '{"package_id":"pkg_xxx","rotate_signature":true}'
注册用的 params.json 示例(公式语法与 runMultiFormulaBatchStream 同款):
{
"formulas": [
"排序值 = 涨跌幅(\"全市场每日收盘价\")",
"放量突破Top10 = 取前(\"排序值\", 10, 返回数值)"
],
"reads": [
{ "output": "放量突破Top10", "read_mode": "last_day_stats" }
],
"ttl_days": 365
}
- 未列入
reads的公式只作中间变量参与计算、不对外返回。 - 同一个包里不同产出可用不同读取模式:
range_data(区间完整序列)/last_day_stats(最新截面统计)/last_valid_per_asset(每个资产最后一个有效值)。 - 单包最多 100 条公式、20 个对外产出,默认有效期 365 天。
前端直接取数(无需 API Key)
取数接口走 SSE,浏览器用 fetch 读流(签名放 body、不进 URL,不要用 EventSource):
const resp = await fetch('https://www.quantbuddy.cn/skill/queryFormulaPackage', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ package_id, signature }),
})
const reader = resp.body.getReader()
const decoder = new TextDecoder()
const outputs = {}
let buf = ''
for (;;) {
const { value, done } = await reader.read()
if (done) break
buf += decoder.decode(value, { stream: true })
const blocks = buf.split('\n\n'); buf = blocks.pop()
for (const block of blocks) {
const ev = (block.match(/event:\s*(.*)/) || [])[1]
const dt = JSON.parse((block.match(/data:\s*([\s\S]*)/) || [])[1])
if (ev === 'result') outputs[dt.output] = dt // outputs["放量突破Top10"].data ...
else if (ev === 'error') throw new Error(`${dt.code}: ${dt.message}`)
}
}
注册 / 列表 / 撤销 / 刷新需 API Key,必须放在服务端;只有取数接口(
queryFormulaPackage)可暴露给浏览器。完整参数、读取模式结构与错误码见tools/formula_package.md,端到端用法见recipes/formula-package.md。
为什么不是普通数据 API
普通数据 API(应用程序接口)主要解决“把数据拉出来”。但在真实投研里,用户更常遇到的问题是:
- 我想临时构造一个全市场指标,能不能直接算?
- 我想验证一个选股想法,能不能不用手写数据清洗和回测代码?
- 我今天探索出的公式,明天能不能在 14:30 用日内数据再跑一遍?
- 我不想把大表塞进模型上下文,能不能只把计算结果返回给 LLM(大语言模型)?
quant-buddy-skills 的核心思路是:让 AI Agent(智能代理)负责理解目标和组织任务,让 quant-buddy(量化投研平台)负责数据调用、公式计算、金融 SOP(标准作业流程)和结果输出。
核心优势
1. 公式引擎:从查数据到算指标
quant-buddy-skills 支持通过公式语言组合行情、估值、财务、窗口统计、掩码条件和排序逻辑。用户不只是在查基础数据,而是在让 AI Agent(智能代理)生成可执行的全市场计算公式。
2. 探索阶段与使用阶段分离
投研不是一次性问答。一个想法通常要经历两个阶段:
| 阶段 | 用户目标 | quant-buddy-skills 的作用 |
|---|---|---|
| 探索阶段 | 用自然语言试想法、改条件、看结果 | AI Agent(智能代理)生成公式,平台侧执行计算和回测 |
| 使用阶段 | 固定公式,每天重复运行 | 将公式沉淀为可复用任务,可接入 AI Agent(智能代理)或外部调度 |
3. RU(资源用量单位)计费,提升 token efficiency(文本用量效率)
传统“数据 + LLM(大语言模型)”模式通常会把大量原始数据塞进上下文,让模型自己处理。这样 token(模型文本计量单位)消耗高、速度慢,也更容易出现上下文污染。
quant-buddy-skills 采用“平台侧计算 + 结果返回”的方式:大规模数据不进入 LLM(大语言模型)上下文,公式计算在平台侧完成,返回的是结构化结果、名单、统计值或图表。
4. 内置金融 SOP(标准作业流程)
量化投研不只是算数,还需要处理交易日、复权、窗口、排序、基准、事件日期、净值曲线和图表输出等细节。quant-buddy-skills 将常见金融 SOP(标准作业流程)封装成 AI Agent(智能代理)可调用能力,降低用户自己写流程时的错误率。
5. 更适合作为 AI Agent(智能代理)基础设施
一般模式是:
数据 + LLM(大语言模型)
quant-buddy-skills 的模式是:
数据 + 计算 + LLM(大语言模型)
区别在于:计算层不再临时交给 LLM(大语言模型)用上下文和代码拼出来,而是由平台提供稳定的结构化能力。
对比
| 维度 | 新闻 / 研报型金融 Skill(技能) | 量化框架文档 Skill(技能) | 数据 API(应用程序接口) | quant-buddy-skills |
|---|---|---|---|---|
| 核心价值 | 解读新闻、生成观点 | 帮 AI Agent(智能代理)查文档、写代码 | 拉取数据 | 平台侧执行投研计算 |
| A 股全市场筛选 | 弱 | 需要自行写代码 | 需要自行拼数据 | 强 |
| 因子 / 回测 | 通常需要外部实现 | 帮写框架 | 需要用户实现 | 内置工作流 |
| token(模型文本计量单位)消耗 | 中 | 中 / 高 | 高,常塞数据 | 低,只返回结果 |
| 适合用户 | 内容 / 研报 / 事件跟踪 | 量化开发者 | 数据工程 / 自定义管道 | 量化研究员、投研自动化、AI Agent(智能代理)用户 |
| 最佳场景 | “这条新闻影响什么” | “QMT 接口怎么写” | “我要原始数据” | “全 A 筛选 / 因子 / 回测 / 图表” |
数据覆盖范围
| 市场 | 行情 | 估值 | 财务数据 | 选股 / 回测 |
|---|---|---|---|---|
| A 股 | 支持 | 支持 | 支持 | 支持 |
| 港股 | 支持 | 部分 TTM 估值字段(以接口返回为准) | 部分报告期字段(以接口返回为准) | 暂不支持 |
| 美股 | 支持 | 部分 TTM 估值字段(以接口返回为准) | 部分报告期字段(以接口返回为准) | 暂不支持 |
| 主要宽基指数 | 支持 | 部分支持 | - | 可作为基准或股池 |
| 可识别期货品种 | 行情/窗口序列有条件支持(以接口返回为准) | 暂不支持 | 暂不支持 | 仅部分公式/策略场景可尝试 |
港股和美股支持行情价格类数据,例如收盘价、开盘价、最高价、最低价、涨跌幅、成交量和成交额;估值和财务字段以接口实际返回为准。期货目前仅对本地资产库可识别品种尝试行情/窗口序列,不承诺期货估值、财务或 K 线图。
安装
npx(Node.js 包执行工具,推荐)
建议新用户只安装到自己正在使用的 AI Agent(智能代理),不要默认使用 --all。--all 等价于安装全部 skill 到全部支持的 agent,可能在本机创建多处目录或符号链接。
| 你使用的 Agent | 推荐命令 |
|---|---|
| Claude Code | npx skills add pseudo-longinus/quant-buddy-skills -g -a claude-code -s quant-buddy-skill -y |
| Cursor | npx skills add pseudo-longinus/quant-buddy-skills -g -a cursor -s quant-buddy-skill -y |
| OpenClaw | npx skills add pseudo-longinus/quant-buddy-skills -g -a openclaw -s quant-buddy-skill -y |
如果你使用其他支持的 Agent,把 -a 后面的值替换为对应 agent id;不要省略 -a,避免 CLI 自动安装到多个 Agent。
如果你同时使用多个 Agent,可以重复指定 -a:
npx skills add pseudo-longinus/quant-buddy-skills -g -s quant-buddy-skill -a claude-code -a cursor -y
先查看仓库里有哪些 skill(只列出,不安装):
npx skills add pseudo-longinus/quant-buddy-skills --list
已安装用户更新:
npx skills update quant-buddy-skill -g -y
Windows(微软桌面操作系统)用户如果遇到 symlink(符号链接)或权限错误,可以在对应 Agent 命令后追加 --copy,例如:
npx skills add pseudo-longinus/quant-buddy-skills -g -a claude-code -s quant-buddy-skill -y --copy
只有在你明确希望安装到所有支持的 Agent 时,才使用:
npx skills add pseudo-longinus/quant-buddy-skills -g --all
查看当前安装位置:
npx skills list -g --json
配置 API Key(接口密钥)
首次使用前需要配置 quant-buddy API Key(接口密钥):
- 前往 https://www.quantbuddy.cn 注册并获取 API Key(接口密钥)。
- 编辑 skill(技能包)目录下的
config.json,将api_key字段填入你的 Key(密钥)。 - 或在支持写入本地文件的 AI Agent(智能代理)对话中发送:
帮我配置 APIkey:sk-xxxxxxxx
运行环境
- Python(编程语言)3.8+,推荐 Python(编程语言)3.11。
- 核心行情、财务、选股和回测能力仅依赖 Python(编程语言)标准库。
- 可选依赖:
python-dateutil:事件研究辅助功能使用。Pillow:图表图片格式转换时使用。requests:事件新闻搜索辅助功能使用。
- 可选环境变量:
BOCHA_API_KEY,仅事件新闻搜索辅助功能使用。
安全、隐私与免责声明
- quant-buddy API Key(接口密钥)仅用于请求 quant-buddy(量化投研平台)接口。
- API Key(接口密钥)只作为 HTTP(超文本传输协议)
Authorization头发送到 quant-buddy(量化投研平台)声明域名,不写入日志,不转发给第三方主机。 - 可选
BOCHA_API_KEY仅在事件新闻搜索功能启用时使用。 - 本项目用于金融数据分析、量化研究、策略验证和教育用途,不构成投资建议、交易建议、收益承诺或自动交易服务。
- 回测结果不代表未来收益。用户应自行核验数据口径、交易成本、滑点、风险暴露和合规要求。
故障排查
- 环境依赖说明:
references/environment.md - 故障排查:
references/troubleshooting.md - RU(资源用量单位)计费说明:
references/ru-billing.md
联系作者
想看更多策略案例、接入问题、更新路线和真实投研工作流,欢迎添加微信或加入交流群。
Star History
License(开源许可证)
MIT(麻省理工开源许可证)
No comments yet
Be the first to share your take.