信号审计

股票情绪信号值不值得用:四道检查与报告可信度判据

情绪分数算得出来,不等于可以用。本页把「这个信号能不能采信」拆成四道可以逐条回答的检查,并说明每一道为什么不可跳过。

同时公开本站实跑 StockSight 报告时发现的渲染问题——一份报告有缺陷,不代表思路错,但你必须知道缺陷在哪。

方法来源:GearVoid/StockSight-Skill 的 SKILL.md 与 README补充判据:本站整理核验日期:2026-09-30

来源链数据从哪来
口径对齐与谁在比
样本外按时间切分
可复现快照回放
示意图:报告可信度的四项检查,依据 StockSight-Skill 的 SKILL.md 与 README 整理,并结合本机实跑时发现的空表问题。
先分清三种用法

情绪信号指什么?三种用法有什么区别

三者的证据要求完全不同,混在一起谈就会得出「有效 / 无效」这种没法验证的结论。

用法它声称什么需要什么证据常见过度声称
情绪指标「这段时间市场对这只票的表述偏正还是偏负」数据可追溯、去重、时间对齐把描述性统计说成预测能力
事件信号「某类事件发生时,后续价格行为有某种倾向」事件定义明确、样本量足够、控制同期市场用少量样本、只在个别标的上验证
量化因子「把情绪作为横截面因子,能带来超额收益」横截面覆盖、样本外检验、成本与换手、与已有因子正交只报多头收益、不提成本与换手
本机实测的三个模型在财经术语上存在系统性漏判(详见情绪模型页),这意味着用它构造的因子本身就带有噪声。在讨论「因子是否有效」之前,先确认标签质量——否则测出来的可能只是噪声的统计特性。
四道检查

一份报告能不能采信?要看哪四件事

每一项都能在不看结论的情况下独立判断。

检查要回答的问题不合格的样子合格的样子
来源链每个数字来自哪个源、什么时候取的、有没有走兜底只写「数据来自公开渠道」写成「实时行情:X / 历史行情:Y / 兜底:Z / 历史 K 线 N 根」
口径对齐与什么基准比、区间是否一致、币种与复权是否一致拿这只票的收益和另一个指数直接比基准、区间、复权方式三项都写明
样本外切分是按时间顺序切分,还是随机打乱随机切分、或用全样本调参后再报同一批结果按时间先后切分,参数只用训练段选择
可复现别人能不能拿到同样的数字只有一个截图或一段文字结论有可回放的快照文件或可重跑的命令

为什么「来源链」排第一

因为换源会改变数值。同一只票,实时源与兜底源给出的量比可能不同;历史 K 线不足时技术指标会直接变成「不可用」。不写来源的报告,你无法判断某个数字为什么和别人不一样。

为什么「样本外」不能省

情绪信号很容易过拟合:阈值取 0.05 还是 0.1、窗口取 5 日还是 10 日,都能在历史数据上找出事后收益靠前的组合。只有按时间切分,用后一段数据检验前一段选出的参数,才能看出这是不是巧合。

回测口径

情绪信号做回测时,哪些口径必须写死在文档里

前四项来自 StockSight-Skill 官方 README 的口径说明,后四项是本站建议补充的记录项。

项StockSight-Skill 的写法为什么必须记录
信号形成时点收盘形成信号决定「用什么信息做决策」
入场时点次交易日开盘进入避免用当日收盘价成交带来的偏差
事件去重仅记录策略状态的首次切换否则同一次信号会被反复计数,放大样本量
交易成本默认扣 10bps 往返,可用 --cost-bps 修改情绪类信号换手通常高,成本能吃掉全部收益
观察窗口主要看 10 个交易日净收益,同时统计 5 日和 20 日只报一个窗口容易挑出事后好看的那个
量比口径历史量比按「当日成交量 ÷ 前 5 日平均成交量」重建,不等同于盘中供应商量比口径不同会导致回测与实盘对不上
样本切分方式按时间顺序切分的样本外验证决定结论能否外推
样本量与覆盖率本站建议额外记录样本太少时任何胜率都不具统计意义
官方 README 明确写了「不要用单只股票或少量样本宣称策略有效」。这句话值得抄进任何一份情绪类研究的方法论章节。本站没有对任何标的做回测,本页只整理口径,不给结论。
StockSight · 校准指标

校准文件里的那几个数字,分别在看什么?

StockSight-Skill 的回测脚本会额外输出一个校准 JSON。README 列出了它包含的指标。

指标看的是什么怎么读容易被误读成
Brier Score概率预测的均方误差,越低越好必须与「基准 Brier」一起看单独看数值大小没有意义
基准 Brier用「总是预测基准概率」的朴素做法得到的分数作为对照线—
Brier Skill相对基准的改进程度接近 0 表示没有改进;为负表示不如朴素做法误读成「准确率」
ECE预测概率与真实频率的偏离程度越小表示「说 70% 就真的约 70%」误读成「模型准不准」
动作/评分分组胜率与平均收益不同建议等级的实际表现要看每组样本量只看最高分组的收益
MFE / MAE持仓期间最大有利/不利偏移用来判断止损与目标位设置是否现实误读成收益

这一组指标的价值在于它们会告诉你信号什么时候没用:Brier Skill 接近 0、ECE 很大、各分组胜率没有区分度,都是「这套评分暂时不能用于决策」的直接证据。官方 README 把这些指标列出来,本身就是一个诚实的设计选择。以官方脚本实现为准。

StockSight · 实跑发现的问题

本站跑出来的报告,有三处渲染问题

这些不是「项目不行」,而是你接它的时候要知道的坑。全部可在自带样例上复现。

现象复现方式影响建议
「最终判断」与「关注维度」两张表只有表头,没有数据行用自带 examples/a-share-detailed.json 渲染 HTML / Markdown报告最重要的结论区变成空白,容易被误读为「没有风险」把表头为空视为「数据缺失」显式提示,而不是渲染空表
成交额被渲染成 RMB 389,400,000万同上数值荒谬,直接影响可信度接入前先校验单位换算逻辑
BOLL20 与 KDJ9 显示「数据不足」同上技术指标区缺失,属于正常降级这正是「不可用标签」机制在工作的表现,可保留
把这三条放在一起看,可以得到一个实用判据:一份报告的「空」比「错」更危险。错数至少能被人看出异常,空表容易被当成「没发现风险」。接入任何自动报告时,先检查「该有内容的区域是不是空的」。以该项目的官方实现为准。
StockSight · 交付清单

一份可以交给人看的报告至少要包含哪些内容

这是本站综合四道检查与实跑发现整理的清单,可直接当作验收表。

项要求不合格的例子
时间戳行情时间与指标截止日都有只写「最新数据」
来源链实时源、历史源、兜底源、K 线根数只写数据来自公开渠道
数据可信度标签可确认 / 推导 / 历史计算 / 不可用四态所有数字一视同仁
口径声明复权方式、币种、基准、区间只给一个收益率数字
缺失显式化缺数据的区域明确写「不可用」并说明原因渲染空表
可回放证据快照文件或可重跑命令只有一张截图
风险声明明确写出不构成投资建议、不承诺收益用「建议买入」这类表述
  1. 先看这七项齐不齐

    不齐就不用往下看结论了,因为无法判断结论的适用范围。

  2. 再抽查一两条数据

    挑一个能独立验证的数字(例如换手率)自己算一遍,对得上再相信其余部分。

  3. 最后看它有没有说「不知道」

    一份从不承认数据缺失、从不给出反例的报告,通常不可信。像「BOLL20 数据不足」这种输出,反而是好现象。

StockSight · 常见翻车点

情绪类研究最常见的六个翻车点是什么

下面每一条都不需要复杂技术,但都会让结论失去意义。

翻车点典型表现为什么致命怎么防
未来信息泄露盘后新闻被算进当日盘中信号回测结果无法在实盘中复现信号时间必须晚于信息可用时间;按时间切分验证
样本量幻觉用单只票、两三个月数据得出「有效」结论参数是拟合噪声拟合出来的记录样本量与覆盖率;样本太少时不下结论
忽略交易成本只报毛收益,不提手续费与冲击成本高频换手的情绪信号,成本常能吃掉全部收益明确写出成本假设并做敏感性测试
只看单一窗口只报事后收益靠前的那个观察期本质是挑选结果同时报多个窗口(如 1 / 5 / 10 日)
标签质量未校验直接用情绪分数当因子,不检查标注是否准确测出来的是词典的偏差,不是市场规律先建人工标注校准集,报告方向一致率
口径混用把「盘中供应商量比」与「历史重建量比」当成同一个指标回测与实盘对不上在报告里写明每个指标的构造方式

这六条里有五条与代码无关,只与记录习惯有关。把口径、样本量、成本、窗口全部写进报告,是成本最低、收益最高的一步。

FAQ

关于 StockSight 信号与报告可信度的常见问题有哪些

情绪信号到底有没有用?

本站不给统一答案,因为「有没有用」取决于你的用法与验证方式。可以说的是:本机实测显示词典/规则模型在财经术语上有系统性漏判,这意味着直接用它的输出构造因子会引入噪声。要先解决标签质量,再谈有效性。以你自己的样本外验证结果为准。

样本外为什么不能用随机切分?

因为金融数据有时间顺序。随机切分会让「未来信息」通过相邻样本渗入训练集(例如相邻两天的收益高度相关),得到的结果无法外推到真实场景。正确做法是按时间先后切分,参数只用前一段选择。以时间序列交叉验证的通用做法为准。

为什么要扣交易成本?比例该设多少?

情绪类信号的换手通常很高,成本能吃掉大部分收益。StockSight-Skill 的回测默认扣 10bps 往返,并开放 --cost-bps 让你按自己的情况调整。具体该设多少取决于你的账户费率与成交方式,本站不给统一数值。以你实际券商的费率与官方脚本参数为准。

Brier Skill 是负数意味着什么?

意味着你的概率预测还不如「直接使用基准概率」这个朴素做法,即这套评分在当期样本上没有增量信息。这是一个有用的信号,说明该换模型或换特征,而不是继续调阈值。具体口径以官方回测脚本的实现为准。

报告里有空表,是不是说明这只票没问题?

不能这样理解。本机实跑时「最终判断」与「关注维度」两张表都是空的,这是渲染/数据传递问题,不是「无风险」的判断。空表应当被显式标为「数据缺失」。这是本项目的一个已知现象,以官方实现为准。

把情绪信号和技术指标一起用会更好吗?

不确定,需要实测。可以确定的是:StockSight-Skill 的文档里写明了「看空的技术信号可以提高风险等级,但看多的技术信号不会降低已有风险」——也就是说,它自己采用的是不对称的风险口径,而不是把两类信号简单相加。这种做法更保守,值得借鉴。以官方 SKILL.md 为准。

接下来该看什么?最实用的一页是报错原文

三个仓库在本机跑出来的全部异常,按「报错原文 → 所属层 → 下一步查什么」整理。