<< All versions

Skill v1.0.0

currentAutomated scan100/100
jingxuanc/quant-agent-skills/news-credibility
──Details
PublishedSeptember 27, 2026 at 03:41 AM
Content Hashsha256:5cd24dfe03cff401...
Git SHA
──Files
Files (1 file, 10.0 KB)
SKILL.md10.0 KBactive
SKILL.md · 119 lines · 10.0 KB

version: "1.0.0" name: news-credibility description: 当你手上有一个信号、统计结论或回测结果,想验证它到底靠不靠谱(是不是伪相关/过拟合)时使用;用户常说「这个结论靠谱吗」「这信号是真的吗」「是不是过拟合」「car 显著是真因果吗」「怎么验证」。注意:本技能做的是信号/结论的统计可信度检验,不是判断新闻消息真假——用户问「这条消息能不能信」属于消息溯源与事实核验,不在本技能范围。


信号可信度检验

⚠️ 命名说明:本技能原名为「消息可信度检验」,但实际做的是信号与统计结论的过拟合检验
(DoWhy 三重反驳 / 异质处理效应 / Granger 复核),与新闻消息的真伪判定无关。
「这条消息能不能信」「这消息是真的假的」不在本技能范围。
若用户想找消息,走 news-radar;想算消息的股价冲击,走 event-impact。

何时使用

触发本技能的典型话术(都是"手上已有一个结论,检验它"):

  • 「这个结论靠谱吗?」
  • 「这信号是真的吗,还是噪音?」
  • 「我这策略是不是过拟合了?」
  • 「怎么验证这个事件真的推动了股价?」
  • 「上次那个分析我能信几分?」
  • 「帮我把这个结果挑挑刺 / 压力测试一下」

轻问 vs 深问(成本控制)

轻问(30 秒级,1–2 个工具)

  • 用户只想快速看一个事件冲击是否显著:直接 causal-event_study 出 CAR + p 值,再用 causal-refute 跑一次三重反驳。
  • 输出 3–5 行结论:显著与否、方向、评级、一句话风险提示。

深问(多轮,完整链路 + 结构化报告)

  • 用户要「完整可信度评估」:事件研究 → 反驳 → (可选)反事实影响/因果发现 → 完整报告。
  • 最贵的一步是 `causal-refute` 与 `causal-event_study_batch` 的多事件批量计算(要跑 placebo / 随机共因 / bootstrap 三轮回测,单次可能数十秒到分钟级)。批量任务先拿 job_id 再说,不要在前台傻等。

工具链

第 0 步:确认输入(缺数据就先要数据)

必须拿到,否则无法开跑:

  1. 标的代码:如 sh600519 / 002371。
  2. 事件日期:YYYY-MM-DD。
  3. K 线数据 `klines`:[{date:'YYYY-MM-DD', close:number}, ...],按日期升序,建议事件前至少 90 个交易日、事件后至少 10 个交易日。
  4. 基准数据 `benchmark`(强烈建议):沪深300 / 中证500 等指数同区间日 K,与 klines 对齐。没有基准只能做绝对收益,结论会被大盘涨跌污染。

数据来源说明:工具本身不拉行情。请用户从券商客户端或行情软件(同花顺/通达信)导出后粘贴;若用户只给「代码 + 日期」而不给 K 线,应明确告诉用户「需要你提供该区间日 K 收盘价」,不要自己编造价格。

第 1 步:算事件冲击(得到因果链)

  • 调 causal-event_study,传 symbol、event_date、klines、可选 benchmark、可选 sector_benchmark(有板块指数时启用市场+板块双因子模型,更干净)。
  • 返回关键字段:car_1d / car_3d / car_5d、car_pre1d、p_value、is_significant、direction、alpha、beta_market、r_squared。
  • 多个事件一起验(比如「这个策略过去 20 次信号」)→ 用 causal-event_study_batch,传 events: [...] 与 timeout。这是重任务:先提交拿 job_id,再用 causal-job_status 轮询,不要傻等。

第 2 步:三重反驳(核心步骤)

  • 用第 1 步的结果组装 chain,调 causal-refute:

`` chain = { symbol, event_id, event_title, car_1d, car_3d, car_5d, p_value, direction } ` 其中 car_* 必须来自 causal-event_study`,不要手填。

  • 三轮回测的含义(讲给用户听):
  1. 安慰剂处理(placebo_treatment):把「事件日」随机挪到没有事件的日子,如果照样出现同样的 CAR,说明你测到的不是事件效应。
  2. 随机共因(random_common_cause):引入随机变量作为混杂因素,检验结论是否依赖某个没控制住的共同驱动。
  3. 数据子集 bootstrap(data_subset):反复抽样子集重算,检验结论对样本选择是否敏感。
  • 返回:逐项 robust / refuted 判定、passed / failed 计数、总体 grade(A–F)、recommendation。

第 3 步(可选,深问才走)

  • 想量化「这件事到底带来多少异常收益」:causal-causal_impact,传 symbol、event_date、klines、benchmark,返回 cumulative_impact、ci_95、significant,比单点 CAR 更稳。
  • 想验「是它领先大盘,还是大盘领先它」:causal-granger_te,传 x(基准收益率序列)、y(标的收益率序列)、max_lag,看 lead_lag 与 transfer_entropy。
  • 想验「哪类标的对事件反应更强」:causal-dml_cate,传 treatment(事件哑变量 0/1)、outcome(事件后前瞻收益)、features(特征面板)。

第 4 步:沉淀

记忆回路(前查后记)

时机动作工具
执行前检索同标的/同板块/同类事件历史上跑过的三重反驳:当时的评级(A–F)、被哪一项反驳打掉、以及那个评级后来被市场证明是对的还是错的causal-memory-search_causal(query=「三重反驳 评级 A-F 结论是否被后续走势验证 存疑/不成立被打掉」,可叠加 task_tag=news-credibility 与标的代码)
执行后把本次检验结论本身记为一条待验证经验:本次判定(稳健/存疑/不成立)、评级、方向、失败项causal-memory-record_decision(decision=<本次结论>,outcome="待验证",context=<事件类型 + 板块 + 样本区间 + 是否含基准>)
复检时事件窗口走完(T+5 至 T+20 交易日)或用户下次问起同一标的时,用同一条 decision 回填真实结果:CAR 是否兑现、当初「稳健」是否成立、「不成立」是否躲过了伪信号causal-memory-record_decision(同一条 decision,outcome=实际结果 + 判断正确/错误)

本技能的历史参照维度是「被检验结论的最终对错」——不是行情涨跌本身,而是「我们给的评级后来准不准」。参照系分两层:一是同类事件/同板块过去的评级分布与失败项(用于判断这一次是偏乐观还是偏保守),二是过去那些评级在窗口走完后被证实的命中情况,即本技能的自我校准记录。

这个记忆对用户的价值在于:可信度检验本身也会出错——把真信号判成 D 级、或把伪信号判成 A 级,代价都不小。持续回填「评级 → 最终对错」,才能让用户知道这套检验是偏严还是偏松;在输出「类似情境 N 次,其中 X 次判断正确」时,用户拿到的就不是一句孤立的评级,而是一个带历史命中率的判断。

输出格式

Agent 必须按以下契约输出(缺数据的项写「未提供」,不要留空也不要猜):

  1. 一句话结论:这个结论属于「稳健 / 存疑 / 不成立」。
  2. 冲击指标表:CAR_1d / CAR_3d / CAR_5d、p 值、是否显著、方向、R²、beta。
  3. 三重反驳表:逐一列 安慰剂处理 / 随机共因 / 数据子集 bootstrap 的 robust 或 refuted。
  4. 评级与解读:A–F 评级 + 一句话含义。
  5. 数据说明:样本区间、基准、K 线来源(用户提供 or 指定数据源)。
  6. 照此采信的建议:
  • A / B 级 → 才算稳健,可以采信,并提示「结论基于历史统计,不保证未来重现」。
  • C 级 → 结论不稳定,需补数据或换窗口再验。
  • D / F 级 → 明确提示用户不要采信,并指出被哪一项反驳打掉(安慰剂?随机共因?子集敏感?)。
  1. 如果不显著或事件无法定位:如实说「本次检验未能证明事件与价格存在稳定因果」,不得为了给结论而放宽标准。
历史参照(必填小节):若检索到同类历史,写明「类似情境 N 次,其中 X 次 <本技能的判断维度> 正确」;
无历史则写「首次记录此类情境,本次判断已存入记忆供将来对照」。

合规边界

  • 只输出统计计算结果:CAR、p 值、置信区间、评级、反驳判定。
  • 不输出买入/卖出建议,不输出目标价,不输出收益承诺。
  • 不因用户追问就补一句「所以建议买入」——那超出本技能范围,可提示用户转交易流程(本仓库不执行交易,请走你自己的风控流程)。
  • 涉及任何预测类模型(Kronos / ML 打分)时,必须声明「模型输出,非承诺」。
  • 引用新闻/事件时标注来源,不把传闻当事实;情绪分与叙事只作辅助证据,不作因果证明。

常见问题

  1. 没有基准就跑,等于白跑。 缺 benchmark 时算出来的「异常收益」只是绝对涨跌,牛市里任何消息都显得「显著」。没基准就先跟用户要指数数据,或明确降级标注「未剔除市场收益,可信度下降」。
  2. 事件日选错,全盘失真。 事件日若落在非交易日,工具会取最近交易日;但如果是盘后发布的消息,真实反应在 T+1,应把 event_date 设成消息次一交易日,否则 CAR_1d 会被摊薄。
  3. p 值小 ≠ 结论真,所以才要三重反驳。 样本小、事件日扎堆、口径反复试,都能造出漂亮的 p 值;安慰剂那一关专门抓这个。评级 D/F 时不要用「样本少」当借口让用户采信。
  4. 评级是相对稳健性,不是准确率。 A 级只说明「在这次数据上三关都过了」,不说明未来一定赚钱;每次换新数据都要重跑。
  5. 批量验证先拿 job_id。 超过几个事件的 causal-event_study_batch 属于重任务,提交后用 causal-job_status 轮询;在此期间可以先输出单事件结果,不要空转等待。
All versions