财报因子分析

SKILL研究检索
研究检索 未标注权限 许可证不明确
安装这个技能

把财报因子落成可复现的选股因子,并验证提前使用最新财报数据的披露择时策略:23 个财报因子的 IC/IR/分档诊断,披露月与非披露月表现对比,起始比例与持有期敏感性。边界如实标注,基本面数据未获取则给文献对照。

一句话选型结论

按资料字段整理

财报因子分析是研究检索类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类研究检索 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install zerone-iteration/financial-report-factor-lab
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

研究检索
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方zerone-iteration仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 enterprise
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791729095
正文体量19.4 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
查资料并整理出处

让模型按主题查资料,并把引用来源整理成清单。

网页与文献要点提炼

把长文、论文、网页压成能直接看的要点。

竞品与行业汇总

按关键词汇总竞品动态与行业信息。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在研究检索场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
财报因子分析当前 未标注权限 未标注 未标注 未标注 有
寻找技能 浏览器控制 GitHub 仓库 3120.0 万 Codex、Claude、Cursor 有
自我改进 Agent 接触敏感数据 ClawHub 市场 1646.4 万 OpenClaw 有
灵魂追踪 联网访问 GitHub 仓库 758.9 万 Codex、Claude、Cursor 有
自我完善 联网访问 ClawHub 市场 682.9 万 OpenClaw 有
微软代工厂 调用外部服务 GitHub 仓库 661.4 万 Codex、Claude、Cursor 有

SKILL.md 全文

19.4 KB
模型实际读到的说明书原文,来自技能仓库

财报因子拆解台

> Pay Skill 范式:鉴权型(agent_local)
> 鉴权型:履约在本机执行(需本地取数 / 解析基本面大文件),远端网关只做支付鉴权,支付通过后返回 fulfillment: "agent_local",Agent 再跑 scripts/ 下的脚本产出结果。

Overview

把财务报告数据落成 23 个可复现的财报选股因子,并验证「提前使用最新财报数据」这一披露择时思想。
直接回答「这个财报因子怎么算、月度 IC 和方向对不对、披露月提前用新数据能不能提升有效性」。

覆盖三套可独立调用的范式(公式、参数、方向、边界见 references/methodology.md):

范式 mode 要解决的问题 数据门槛
23 因子诊断 factors 23 个财报因子的月度 IC / 年化 ICIR / 命中率 / 5 分档多空 / 回撤 需基本面 CSV(原始财务字段)+ 日线价格
披露择时 timing 披露月(新报已出)vs 非披露月(沿用旧报)单因子 IR 对比,复现「提前使用」提升 额外需披露日期列
因子目录 catalog 23 因子公式目录 + 原始文献实测对照(不需数据) 无

本包可真实复现的范式:factors / timing——只要用户提供含原始财务字段(或已算好的 23 因子列)的基本面 CSV 与本包日线价格。catalog 永远可用(公式目录 + 文献对照)。
未获取(缺基本面/披露日期):共享面板仅有日线、无财务字段,故 factors/timing 默认【未获取】,只输出公式目录与原始文献实测对照(不具名、不编造)。

边界:只做因子构造与统计诊断,不做行情预测、不给买卖点位、不连接任何券商交易接口;
不访问用户未明确提供的外部系统;取不到的数据一律标注「未获取」,不用代理变量凑数。

When to Use(触发条件)

  • 用户说「我想验证财报因子——ROE/毛利率/净利增长这些因子在我的样本上 IC 和方向对不对」时
  • 用户说「提前使用最新财报数据选股到底有没有用,帮我对比披露月和非披露月的表现」时
  • 用户说「23 个财报因子怎么构造,原始财务字段怎么算成因子,方向怎么定」时
  • 用户说「我的面板只有价量没有财务数据,财报类因子还能跑哪几个」时
  • 用户说「别给我讲理论——把因子公式和数值直接跑出来,要和文献口径可对」时
  • 用户说「起始比例/持有期/快报对财报择时策略影响多大,帮我做敏感性」时

Workflow(工作流)

Step 0 收集口径(缺一项就问,不猜)

需要确认 默认
基本面数据 提供 CSV:ticker, report_date + 原始财务字段(营业收入/净利润/总资产/股东权益/负债/存货/流动资产/经营现金流/每股净资产/股本/销售&财务费用 等);或已算好的 23 因子列
价格数据 日线(前复权),用于前瞻下期收益
是否有披露日期 无 → timing 不拆分;有 → 披露月/非披露月 IR 对比
调仓周期 月末(因子用「最新已披露报告」截面,前瞻下月收益)
分档数 5(内部固定,可调参)

Step 1 取数(二选一,脚本都在 scripts/)

# 1) 拉真实 A 股日线(前复权,分段拉长历史)
python3 scripts/fetch_daily.py --out bars.csv --beg 2018-01-01 --end 2026-08-30
# 2) 用自有基本面数据:导出 CSV,列见 references/methodology.md 第零节

Step 2 跑诊断

python3 scripts/run_local.py --fundamentals fin.csv --prices bars.csv \
    --disclosure disc.csv --mode all \
    --groups 5 --out out_dir --html report.html --json result.json \
    --sub-order <支付订单号> --sub-channel "微信支付 · Agent Pay"
  • --mode 可单选(factors / timing / catalog)或 all
  • 只想要目录:--mode catalog(不需任何数据)
  • 支付通过后才执行;--sub-order 由 Agent 在收到 paid:true 后注入

Step 3 读报告(out_dir/report.md 或 report.html)

先看顶部订阅状态横幅,再看因子诊断块(23 因子 IC/IR/多空)与披露择时块(披露月 vs 非披露月 IR 对比)。
factors/timing 缺数据时为「未获取 + 文献实测对照」,不含本包复现结论。

Step 4 判定与交付:按「分级规则」给每个范式定级,输出给用户并附参数回显与边界说明。

输入数据规格

基本面 CSV 列(大小写不敏感,逗号分隔):

列 必填 说明
ticker 是 标的代码(6 位)
report_date 是 财务报告期,YYYY-MM-DD(如 2024-04-30 代表 2023 年报)
原始财务字段 是(factors 必需) revenue(营业收入)/cogs(营业成本)/net_profit(净利润)/total_assets(总资产)/equity(股东权益)/total_liab(总负债)/current_liab(流动负债)/long_liab(长期负债)/inventory(存货)/fixed_assets(固定资产)/current_assets(流动资产)/ocf(经营现金流)/bvps(每股净资产)/shares(股本)/selling_exp(销售费用)/fin_exp(财务费用)
已算好的因子列 否 若直接给 23 因子值,则跳过计算
disclosure_date 否(timing 必需) 实际披露日期,YYYY-MM-DD;用于披露月/非披露月拆分

价格 CSV 列:date, ticker, close(同 references/methodology.md 价量规格)。

必需样本:每只股票至少 2 期报告(增长率类需上期);任一月末有效标的数 >= 10。

Output(输出规范)

固定三段(顺序不可变,让每次结果可横向比对):

  1. 订阅状态横幅(置顶 1 条)
    - 已订阅:订阅状态:您已通过 <渠道> 订阅此技能 · 订单 <号> · 有效期至 <日期>
    - 未订阅:订阅状态:未检测到有效订阅 —— 请先购买订阅(订阅后由 Agent 带入订单号重新生成本报告)
    - Markdown 与 HTML 两个版本都必须有,HTML 版用渐变横幅(已订阅=绿,未订阅=琥珀)
  2. 因子目录块(catalog,永远输出):23 因子公式 + 原始文献披露月/非披露月 IR 对照表
  3. 因子诊断块(factors,有数据才输出):23 因子月度 IC / 年化 ICIR / 胜率 / 多空年化 / IR / 最大回撤
  4. 披露择时块(timing,有披露日期才输出):披露月 vs 非披露月 IR 对比 + 提前使用是否提升

分级规则(决定措辞,不决定用户行为)

等级 触发条件 报告措辞
强有效 |IR| >= 0.50 且样本足 「可进入组合观察池」
弱有效 0.10 <= |IR| < 0.50 「需加约束后再评估」
不显著 |IR| < 0.10 「不得据此下单」
样本不足 有效调仓期 < 24 期,或有效标的数 < 10 「仅作方法验证,结论仅供参考」

缺失信息处理:缺财务字段 → factors 标注「未获取」并说明缺哪一列;
缺披露日期 → timing 标注「未获取」并给文献对照;样本不足 → 标注「样本不足」并给出所需最小样本;
取数失败 → 打印 [未获取] 原因 到 stderr 并返回 1,不输出任何推测结果。

First-Use Configuration(首次使用时向用户确认)

参数 命令行 默认 说明
多空分档数 --groups 5 多空分组数,用于复现收益的截面分档
起始比例 内部 0.0 披露择时起始比例(0=披露日即切换为最激进提前使用)
持有期 内部 20 交易日 前瞻收益持有期(天)

Notes / Constraints(约束)

  1. 免责:所有输出末尾固定一句「本结果为量化方法在有限数据上的统计验证,不构成任何投资建议;
    历史结论不代表未来,因子有效性随市场结构变化而衰减。」不承诺任何收益水平。
  2. 不替代什么:不替代投顾意见、不替代风控审批、不替代合规审查;
    不提供具体买卖点位、不提供仓位建议、不推荐任何标的。
  3. 取不到就标注未获取:文件缺失、列不对、样本不足、取数失败,一律如实标注,
    绝不因用户已付费而推测补造(鉴权型铁律)。factors/timing 依赖基本面/披露日期,本面板仅日线,故只给文献对照。
  4. 口径诚实:本包仅有前复权价量,不含任何财务字段。
    - factors/timing 需用户提供基本面 CSV(原始财务字段或已算好的因子列)+ 日线价格,方可真实复现;
    - 方向依原文献口径(「高」=因子值越大下期收益越高),用户可据自身样本重定方向;
    - 文献 IR 对照(披露月 vs 非披露月)不具名、明确标注「本包未复现」,不得包装成本包实证结论。
  5. 披露择时核心:原文献结论为「大部分因子在披露月表现优于非披露月,且使用快报效果更佳」。
    本包可复现该对比,但属样本依赖结论,须如实标注边界。
  6. 显著不等于有效:IR 受样本期数影响。判定必须同时看年化收益、波动、最大回撤与分档多空,不能只看单一指标。
  7. 付费内容仅报告:本 Skill 售卖的是因子构造计算与报告,不含任何标的推荐名单。

Pay Skill 模式(鉴权型,按次付费,已接入 X402)

本 Skill 为付费技能(Pay Skill),按次收费,已通过腾讯 SkillHub +
微信支付 Agent Pay X402 协议接入。不存在免费运行模式——
未完成支付授权前,不得执行本地履约脚本、不得输出任何付费内容;
鉴权型只由服务端返回的 paid: true 解锁本机履约。

> 使用者须已安装并开通 weixinpay_pay 插件(微信 AI 支付 / AI 专属卡)。
> Step 0 检查不通过时不发起付费调用,直接引导开通后重试。

鉴权型:履约在本机执行(需调用本地取数脚本 / 解析本地或远程大文件),
远端网关只负责订单鉴权与支付状态确认,支付通过后返回 fulfillment: &quot;agent_local&quot;,
不返回业务结果;Agent 收到 paid: true 后才在本地跑 scripts/ 下的脚本产出结果。

  • 统一网关主接口:POST https://pay.zerone-iteration.com/api/invoke
    (请求体 {&quot;skill&quot;: &quot;financial-report-factor-lab&quot;, &quot;skill_version&quot;: &quot;1.0.1&quot;, &quot;query&quot;: &quot;...&quot;, &quot;amount&quot;: 990})
  • 兼容入口:POST https://pay.zerone-iteration.com/api/resource(等价于默认 Skill)
  • 支付回调:POST https://pay.zerone-iteration.com/api/pay/notify
  • 退款回调:POST https://pay.zerone-iteration.com/api/refund/notify
  • 实现:透明网关(nginx + Java 17 / Spring Boot + WechatPay-Java,微信支付公钥模式);
    skill/skill_version 仅做格式校验后透传进 X402 预下单,不查 SkillHub(不查注册表、不反查是否真实存在/已发布/版本匹配);
    无本地白名单,新增 Skill 免 Java 注册、免改 JAR、免重启,直接 POST /api/invoke 传正确 slug+版本即可
  • 状态:于 DEV_MODE=true 下完成本地付费链路冒烟——首次调用返回
    HTTP 402 + WeixinPay-Required(X402 payment_code)+ X-Out-Trade-No,
    模拟回调置位后带订单号重试返回 paid:true / fulfillment:agent_local。
    生产密钥真实扣费待 SkillHub 发布并绑定 X402 商户后实测。
    自托管联调端口:FINANCIAL_REPORT_FACTOR_LAB_PORT(默认 18107)。

Agent 侧调用规范(含付费前置插件检查)

Step 0 付费前置插件检查(必须,缺失则不得发起付费调用)

  1. 检测当前环境中 weixinpay_pay 插件(微信支付 Agent Pay / AI 专属卡)是否已安装并已开通;
  2. 若不存在或未开通:不调用 /api/invoke,改为提示用户先安装/开通微信 AI 支付,完成后再继续;
  3. 若可用:继续 Step 1。

Step 1 调用统一网关:POST /api/invoke,请求体:

{
  &quot;skill&quot;: &quot;financial-report-factor-lab&quot;,
  &quot;skill_version&quot;: &quot;1.0.1&quot;,
  &quot;query&quot;: &quot;用户原始需求(用于订单留痕,不作为履约输入)&quot;,
  &quot;amount&quot;: 990
}
  • skill:必填,固定为本 Skill 的 slug financial-report-factor-lab(与 SkillHub 已发布的一致;透明网关下传错 slug 时错误延后到 SkillHub/微信预下单环节才返回);
  • skill_version:必填,当前版本号 1.0.1(缺失返回 400 MISSING_SKILL_VERSION);
  • amount:必填,单位分,服务端校验为大于 0 的整数(小数/布尔/零/负数一律 400 INVALID_AMOUNT,不静默截断);
    区间不强制,价格由 SkillHub 产品定价约束。

Step 2 支付触发(X402 预下单 → 402):未支付时服务端依次执行——

  1. 生成订单号 out_trade_no(402 响应头 X-Out-Trade-No 与响应体 out_trade_no 均会返回,Agent 须记下);
  2. 调用微信支付 Native 下单,获取 code_url;
  3. 用 SkillHub 开发者私钥(SHA256withRSA)对 X402 AI 预下单请求签名;
  4. 调用 POST https://payapp.weixin.qq.com/palmpayminiapp/clawagentpay/preorder 换取 payment_code;
  5. 返回 HTTP 402,响应头 WeixinPay-Required 与 body WeixinPay 块中
    同时携带 X402 预下单返回的 payment_code(必须是 X402 的 payment_code,
    不能直接把微信 code_url 当作 payment_code 返回),并回显本单 amount 与 out_trade_no。
    ⚠️ body 的 WeixinPay 嵌套结构最易遗漏:缺失时 weixinpay 插件从 body 解析不到
    payment_code,会报「当前支付订单已过期」,该报错常被误判为「返回了 code_url」。

Step 3 用户支付授权:Agent 将 WeixinPay-Required 头(或 body WeixinPay 块)中的
payment_code 作为 paymentCode 交给 weixinpay_pay 插件,向用户申请支付授权。

Step 4 二次调用鉴权:用户完成支付后,Agent 再次调用 POST /api/invoke
(请求体同 Step 1,带请求头 X-Out-Trade-No: &lt;402 返回的订单号&gt;);
服务端按订单号主动向微信查单验证支付成功(不依赖回调到达)后返回:

{&quot;ok&quot;: true, &quot;paid&quot;: true, &quot;fulfillment&quot;: &quot;agent_local&quot;,
 &quot;skill&quot;: &quot;financial-report-factor-lab&quot;, &quot;out_trade_no&quot;: &quot;...&quot;, &quot;already_fulfilled&quot;: false}

Step 5 本地履约(本 Skill 的关键差异):Agent 收到 paid: true 且
fulfillment: &quot;agent_local&quot; 后,在本机执行 scripts/ 下的脚本产出结果
(见 scripts/README.md),再把结果交付给用户。
支付未确认前,不执行本地取数脚本、不输出任何付费内容
(未支付重试返回 402 {&quot;code&quot;:&quot;NOT_PAID&quot;})。

> 幂等说明:already_fulfilled: true 表示同一订单此前已鉴权通过;
> 此时直接复用上次已产出的结果,不要重复跑取数脚本(避免重复消耗外部接口配额)。

异常处理说明(Agent 与服务端两侧)

异常场景 处理方式
weixinpay_pay 插件不可用 不发起付费调用,引导用户安装/开通微信 AI 支付后重试
用户拒绝支付 / 支付取消 如实告知用户支付未完成,不推进后续流程、不输出付费内容;可重新发起(服务端生成新订单)
支付失败(余额不足/风控拦截) 如实转达失败原因,引导稍后重试;失败订单作废,不据此履约
payment_code 过期(最长 15 分钟) 提示订单已过期,Agent 重新调用获取新订单与新 payment_code,不得复用旧码
报错「当前支付订单已过期」 先查 402 响应体是否有 WeixinPay 嵌套结构,其次才是 code_url 方向
支付成功但二次调用仍 402(回调延迟) 等待 3~5 秒后重试,最多 3 次(指数退避),携带 X-Out-Trade-No、订单号不变
网络异常 / 5xx 指数退避重试(1s/2s/4s,上限 3 次);持续失败告知服务暂不可用
本地取数脚本失败(数据源不可用/文件缺失) 如实告知用户并说明原因,不得因为已付费而编造数据;可引导稍后重试同一订单(already_fulfilled 为 false 时不会重复扣费)
金额校验失败(400 INVALID_AMOUNT) 修正 amount 为大于 0 的整数分后重试
skill 传错 / 未发布(错误延后到 X402/微信预下单环节) 核对 skill/skill_version 与 SkillHub 已发布条目一致后重试,不得随便换 slug
skill_version 缺失(400 MISSING_SKILL_VERSION) 补上当前版本号 1.0.1 后重试
未支付即重试(402 NOT_PAID) 等待用户完成支付授权后按 Step 4 重试,不得跳过支付环节
退款 服务端经 /api/refund/notify 接收回调;已退款订单的 payment_code 失效,再次调用将重新走支付流程

> 核心原则(SkillHub 官方教程 FAQ):支付失败/未确认时必须如实告知用户,绝不据此推进后续流程。

核心特征对照表(供审核查验)

# 核心特征 实现位置
1 X402 AI 预下单换取 payment_code(开发者私钥 SHA256withRSA 签名,调官方 preorder 接口;WeixinPay-Required 返回 payment_code 而非微信 code_url) pay/server.py skillpay_x402_preorder();链路 Step 2.3~2.5
2 支付触发(未支付返回 402 + WeixinPay-Required 头/体双通道) pay/server.py _handle_invoke();链路 Step 2.5
3 订单号传递(out_trade_no 全链路关联:下单→预下单→回调置位→X-Out-Trade-No 重试→二次调用) pay/server.py generate_trade_no() / mark_paid / 402 响应 X-Out-Trade-No 头
4 重试机制(402 回调延迟重试带 X-Out-Trade-No、5xx 指数退避、订单过期重新下单) 上表「异常处理说明」
5 付费前置插件检查(weixinpay_pay 可用性检测,缺失不发起付费调用) 链路 Step 0
6 异常处理说明(拒绝支付/取消/过期/退款/本地脚本失败等全场景) 上表「异常处理说明」
7 透明网关(skill/skill_version 仅做格式校验、不查 SkillHub、不查注册表) pay/server.py resolve_skill()(无 SKILL_REGISTRY,免 Java 注册/重启)

包内 pay/server.py 为 Python 参考实现(含 APIv3 签名、X402 预下单、回调验签解密、
主动查单、幂等鉴权、透明网关无需注册表),部署说明见 pay_skill.yaml。

注意:本 Skill 涉及两套独立密钥/证书——

  • 微信支付 API 证书(wechat_pay):用于微信 Native 下单与主动查单;
  • SkillHub 开发者密钥(skillhub):用于 X402 预下单签名。

私钥均不得写入 Skill 包或仓库,须通过环境变量注入服务端。

常见问题

5 问
答案由本站依据条目字段整理
财报因子分析怎么安装?

在支持 Skills 的客户端里执行:skillhub install zerone-iteration/financial-report-factor-lab。安装方式为未标注。装完刷新技能列表或重开客户端。

财报因子分析支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

财报因子分析权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

财报因子分析收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

财报因子分析用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。