情绪信号指什么?三种用法有什么区别
三者的证据要求完全不同,混在一起谈就会得出「有效 / 无效」这种没法验证的结论。
| 用法 | 它声称什么 | 需要什么证据 | 常见过度声称 |
|---|---|---|---|
| 情绪指标 | 「这段时间市场对这只票的表述偏正还是偏负」 | 数据可追溯、去重、时间对齐 | 把描述性统计说成预测能力 |
| 事件信号 | 「某类事件发生时,后续价格行为有某种倾向」 | 事件定义明确、样本量足够、控制同期市场 | 用少量样本、只在个别标的上验证 |
| 量化因子 | 「把情绪作为横截面因子,能带来超额收益」 | 横截面覆盖、样本外检验、成本与换手、与已有因子正交 | 只报多头收益、不提成本与换手 |
一份报告能不能采信?要看哪四件事
每一项都能在不看结论的情况下独立判断。
| 检查 | 要回答的问题 | 不合格的样子 | 合格的样子 |
|---|---|---|---|
| 来源链 | 每个数字来自哪个源、什么时候取的、有没有走兜底 | 只写「数据来自公开渠道」 | 写成「实时行情:X / 历史行情:Y / 兜底:Z / 历史 K 线 N 根」 |
| 口径对齐 | 与什么基准比、区间是否一致、币种与复权是否一致 | 拿这只票的收益和另一个指数直接比 | 基准、区间、复权方式三项都写明 |
| 样本外切分 | 是按时间顺序切分,还是随机打乱 | 随机切分、或用全样本调参后再报同一批结果 | 按时间先后切分,参数只用训练段选择 |
| 可复现 | 别人能不能拿到同样的数字 | 只有一个截图或一段文字结论 | 有可回放的快照文件或可重跑的命令 |
为什么「来源链」排第一
因为换源会改变数值。同一只票,实时源与兜底源给出的量比可能不同;历史 K 线不足时技术指标会直接变成「不可用」。不写来源的报告,你无法判断某个数字为什么和别人不一样。
为什么「样本外」不能省
情绪信号很容易过拟合:阈值取 0.05 还是 0.1、窗口取 5 日还是 10 日,都能在历史数据上找出事后收益靠前的组合。只有按时间切分,用后一段数据检验前一段选出的参数,才能看出这是不是巧合。
情绪信号做回测时,哪些口径必须写死在文档里
前四项来自 StockSight-Skill 官方 README 的口径说明,后四项是本站建议补充的记录项。
| 项 | StockSight-Skill 的写法 | 为什么必须记录 |
|---|---|---|
| 信号形成时点 | 收盘形成信号 | 决定「用什么信息做决策」 |
| 入场时点 | 次交易日开盘进入 | 避免用当日收盘价成交带来的偏差 |
| 事件去重 | 仅记录策略状态的首次切换 | 否则同一次信号会被反复计数,放大样本量 |
| 交易成本 | 默认扣 10bps 往返,可用 --cost-bps 修改 | 情绪类信号换手通常高,成本能吃掉全部收益 |
| 观察窗口 | 主要看 10 个交易日净收益,同时统计 5 日和 20 日 | 只报一个窗口容易挑出事后好看的那个 |
| 量比口径 | 历史量比按「当日成交量 ÷ 前 5 日平均成交量」重建,不等同于盘中供应商量比 | 口径不同会导致回测与实盘对不上 |
| 样本切分方式 | 按时间顺序切分的样本外验证 | 决定结论能否外推 |
| 样本量与覆盖率 | 本站建议额外记录 | 样本太少时任何胜率都不具统计意义 |
校准文件里的那几个数字,分别在看什么?
StockSight-Skill 的回测脚本会额外输出一个校准 JSON。README 列出了它包含的指标。
| 指标 | 看的是什么 | 怎么读 | 容易被误读成 |
|---|---|---|---|
| Brier Score | 概率预测的均方误差,越低越好 | 必须与「基准 Brier」一起看 | 单独看数值大小没有意义 |
| 基准 Brier | 用「总是预测基准概率」的朴素做法得到的分数 | 作为对照线 | — |
| Brier Skill | 相对基准的改进程度 | 接近 0 表示没有改进;为负表示不如朴素做法 | 误读成「准确率」 |
| ECE | 预测概率与真实频率的偏离程度 | 越小表示「说 70% 就真的约 70%」 | 误读成「模型准不准」 |
| 动作/评分分组胜率与平均收益 | 不同建议等级的实际表现 | 要看每组样本量 | 只看最高分组的收益 |
| MFE / MAE | 持仓期间最大有利/不利偏移 | 用来判断止损与目标位设置是否现实 | 误读成收益 |
这一组指标的价值在于它们会告诉你信号什么时候没用:Brier Skill 接近 0、ECE 很大、各分组胜率没有区分度,都是「这套评分暂时不能用于决策」的直接证据。官方 README 把这些指标列出来,本身就是一个诚实的设计选择。以官方脚本实现为准。
本站跑出来的报告,有三处渲染问题
这些不是「项目不行」,而是你接它的时候要知道的坑。全部可在自带样例上复现。
| 现象 | 复现方式 | 影响 | 建议 |
|---|---|---|---|
| 「最终判断」与「关注维度」两张表只有表头,没有数据行 | 用自带 examples/a-share-detailed.json 渲染 HTML / Markdown | 报告最重要的结论区变成空白,容易被误读为「没有风险」 | 把表头为空视为「数据缺失」显式提示,而不是渲染空表 |
成交额被渲染成 RMB 389,400,000万 | 同上 | 数值荒谬,直接影响可信度 | 接入前先校验单位换算逻辑 |
| BOLL20 与 KDJ9 显示「数据不足」 | 同上 | 技术指标区缺失,属于正常降级 | 这正是「不可用标签」机制在工作的表现,可保留 |
一份可以交给人看的报告至少要包含哪些内容
这是本站综合四道检查与实跑发现整理的清单,可直接当作验收表。
| 项 | 要求 | 不合格的例子 |
|---|---|---|
| 时间戳 | 行情时间与指标截止日都有 | 只写「最新数据」 |
| 来源链 | 实时源、历史源、兜底源、K 线根数 | 只写数据来自公开渠道 |
| 数据可信度标签 | 可确认 / 推导 / 历史计算 / 不可用四态 | 所有数字一视同仁 |
| 口径声明 | 复权方式、币种、基准、区间 | 只给一个收益率数字 |
| 缺失显式化 | 缺数据的区域明确写「不可用」并说明原因 | 渲染空表 |
| 可回放证据 | 快照文件或可重跑命令 | 只有一张截图 |
| 风险声明 | 明确写出不构成投资建议、不承诺收益 | 用「建议买入」这类表述 |
先看这七项齐不齐
不齐就不用往下看结论了,因为无法判断结论的适用范围。
再抽查一两条数据
挑一个能独立验证的数字(例如换手率)自己算一遍,对得上再相信其余部分。
最后看它有没有说「不知道」
一份从不承认数据缺失、从不给出反例的报告,通常不可信。像「BOLL20 数据不足」这种输出,反而是好现象。
情绪类研究最常见的六个翻车点是什么
下面每一条都不需要复杂技术,但都会让结论失去意义。
| 翻车点 | 典型表现 | 为什么致命 | 怎么防 |
|---|---|---|---|
| 未来信息泄露 | 盘后新闻被算进当日盘中信号 | 回测结果无法在实盘中复现 | 信号时间必须晚于信息可用时间;按时间切分验证 |
| 样本量幻觉 | 用单只票、两三个月数据得出「有效」结论 | 参数是拟合噪声拟合出来的 | 记录样本量与覆盖率;样本太少时不下结论 |
| 忽略交易成本 | 只报毛收益,不提手续费与冲击成本 | 高频换手的情绪信号,成本常能吃掉全部收益 | 明确写出成本假设并做敏感性测试 |
| 只看单一窗口 | 只报事后收益靠前的那个观察期 | 本质是挑选结果 | 同时报多个窗口(如 1 / 5 / 10 日) |
| 标签质量未校验 | 直接用情绪分数当因子,不检查标注是否准确 | 测出来的是词典的偏差,不是市场规律 | 先建人工标注校准集,报告方向一致率 |
| 口径混用 | 把「盘中供应商量比」与「历史重建量比」当成同一个指标 | 回测与实盘对不上 | 在报告里写明每个指标的构造方式 |
这六条里有五条与代码无关,只与记录习惯有关。把口径、样本量、成本、窗口全部写进报告,是成本最低、收益最高的一步。
关于 StockSight 信号与报告可信度的常见问题有哪些
情绪信号到底有没有用?
本站不给统一答案,因为「有没有用」取决于你的用法与验证方式。可以说的是:本机实测显示词典/规则模型在财经术语上有系统性漏判,这意味着直接用它的输出构造因子会引入噪声。要先解决标签质量,再谈有效性。以你自己的样本外验证结果为准。
样本外为什么不能用随机切分?
因为金融数据有时间顺序。随机切分会让「未来信息」通过相邻样本渗入训练集(例如相邻两天的收益高度相关),得到的结果无法外推到真实场景。正确做法是按时间先后切分,参数只用前一段选择。以时间序列交叉验证的通用做法为准。
为什么要扣交易成本?比例该设多少?
情绪类信号的换手通常很高,成本能吃掉大部分收益。StockSight-Skill 的回测默认扣 10bps 往返,并开放 --cost-bps 让你按自己的情况调整。具体该设多少取决于你的账户费率与成交方式,本站不给统一数值。以你实际券商的费率与官方脚本参数为准。
Brier Skill 是负数意味着什么?
意味着你的概率预测还不如「直接使用基准概率」这个朴素做法,即这套评分在当期样本上没有增量信息。这是一个有用的信号,说明该换模型或换特征,而不是继续调阈值。具体口径以官方回测脚本的实现为准。
报告里有空表,是不是说明这只票没问题?
不能这样理解。本机实跑时「最终判断」与「关注维度」两张表都是空的,这是渲染/数据传递问题,不是「无风险」的判断。空表应当被显式标为「数据缺失」。这是本项目的一个已知现象,以官方实现为准。
把情绪信号和技术指标一起用会更好吗?
不确定,需要实测。可以确定的是:StockSight-Skill 的文档里写明了「看空的技术信号可以提高风险等级,但看多的技术信号不会降低已有风险」——也就是说,它自己采用的是不对称的风险口径,而不是把两类信号简单相加。这种做法更保守,值得借鉴。以官方 SKILL.md 为准。