halo 的技术博客

返回

绝大多数关于”社交媒体情绪”的量化文章,都停留在同一个简化假设上:把情绪当成一张每日快照—今天看涨情绪 0.6,明天 0.55,然后拿这个数值去回归收益。这个视角最大的问题,是它把**情绪的”传播过程”**整个丢掉了。

价格发现(price discovery)真正发生的地方,不是某个静止的情绪值,而是叙事在人群里被看见、被转发、被争论、被稀释的动态过程。一条关于某公司产能的推文,之所以能影响股价,不是因为它”存在”,而是因为它在 48 小时内从 1 个种子节点扩散到了 5 万个节点,触达了大量原本不会研究这只股票的交易者。

本文要做的,就是把情绪从”快照”还原成”传播”,并告诉你怎么把它变成可回测的信号。

一、为什么情绪是”传播”而非”状态”#

传染病模型是理解信息扩散最成熟的语言。把一条金融叙事(比如”某芯片厂良率崩了”)当作病原体,人群分为三类:

  • S(t) 易感者:还没接触过这个叙事的人;
  • I(t) 传播者:已经知道、且正在转发/讨论的人;
  • R(t) 移除者:话题冷却、注意力转移走、价格已消化的人。

经典的 SIR 动力学是:

dIdt=βSIγI\frac{dI}{dt}=\beta S I-\gamma I

其中 β\beta 是传播率(一条推文被转发的概率乘上触达人数),γ\gamma 是遗忘/冷却率。关键结论是:情绪对价格的影响,主要体现在 I(t) 的爬坡段和峰值附近,而不是在 S(t) 还很高、没人谈论的时候。

这就解释了为什么很多”情绪值”策略失效:它们用的是稳态的情绪水平,而真正有信息含量的是传播速度 β\beta 和峰值时间

这里有个被很多人忽略的量化要点:基本再生数 R0=β/γR_0 = \beta / \gamma。只有当 R0>1R_0>1 时叙事才会”病毒式”扩散,否则会在几轮内自然消亡。这意味着并非每条被讨论的叙事都值得交易—你真正要找的是 R0R_0 显著大于 1 的”真催化”,而不是 R0<1R_0<1 的噪声。从真实转发级联数据里,可以用每日新增传播者数量反推参数:对 ΔI(t)\Delta I(t) 做对数回归,斜率近似为 (βS0γ)(\beta S_0 - \gamma),再结合稳态方程就能解出 β\betaγ\gamma,从而估计一条叙事的”传染力”。

情绪在社交网络中的 SIR 式传播:从话题引爆到冷却

二、情绪如何驱动价格发现#

情绪影响价格的机制,不是玄学,而是三条可验证的链路:

  1. 注意力 → 成交量:叙事扩散带来新参与者,成交量放大,买卖盘失衡被放大。
  2. 分歧 → 波动率:被争论的叙事制造多空分歧,隐含波动率抬升,期权市场先反应。
  3. 提前量 → 领先收益:信息在社交网络里的扩散,往往早于它在价格里的完全反映,于是情绪变化领先于次日收益。

第三点是我们最关心的。用互相关(cross-correlation)可以检验“情绪领先还是收益领先”:如果情绪变化的滞后阶数在 lag<0lag<0 处相关性最强,说明情绪先于价格。

更严谨地,可以用 Granger 因果检验回答“是情绪预测了收益,还是两者只是被同一只看不见的手(比如宏观新闻)共同驱动”。对 (rett,Δsentt1)(ret_t, \Delta sent_{t-1}) 做先后回归,若情绪变化的滞后项系数显著、且加入情绪后收益自身滞后项系数明显下降,才能说情绪“真的”领先于价格。这一步是把“叙事驱动价格”从直觉变成可证伪假设的关键,也是很多看似有效的情绪因子在样本外塌房前的“压力测试”。

情绪指数与未来收益的互相关:情绪领先于价格

三、构建一个”情绪传播力”指标#

与其用单一情绪值,不如构造一组刻画传播结构的特征:

  • 触达规模(Reach):N 轮扩散后被激活的节点数,反映叙事穿透力;
  • 传播速度(Velocity):达到峰值 I(t) 所需天数,越快越可能是”真实催化”而非噪声;
  • 网络中心度:种子节点是否处于高中心度位置(大 V、财经媒体),决定初始放大系数 β\beta;
  • 情绪极性加速度:Δ2Sentiment\Delta^2 Sentiment,比水平值更干净地捕捉”正在发酵”。

这些特征拼接起来,才是一个能在截面/时序上用的信号,而不是一个容易被操纵的”热度数字”。

实践中可以把这四个特征合成一个”情绪传播力分数”:先各自做横截面或时序的 z-score,再按经济意义加权—Reach 与 Velocity 给较高权重(它们是领先性的直接代理),网络中心度作为放大系数乘到前面,极性加速度捕捉”正在发酵”。分数本身不直接等于买卖信号,而是作为一层”注意力温度计”:只有当分数突破历史分位数(例如 90%)且仍在上升时,才说明叙事正处于 I(t) 爬坡段,这才是情绪信号信息含量最高的窗口。把它和已有的量价因子做正交化,往往能挤出一小块与基本面、技术面都低相关的增量 alpha。

四、Python 实战#

下面三段代码可独立运行(数据用合成序列,便于复现),分别对应前面的三个图。

4.1 SIR 情绪传播模拟#

4.2 网络扩散(随机几何图 + BFS 激活时间)#

情绪扩散网络(颜色=激活轮次,红圈=种子)

4.3 领先-滞后检验 + 情绪动量多空回测#

注意第 4.3 段里信号用 np.roll(sent, 1),意味着第 t 日用的是第 t-1 日已确定的情绪变化,这是刻意绕开前视偏差的关键写法(详见第五节)。

五、真实陷阱(不说的都是坑)#

  1. 前视偏差(最常见):用”当日收盘价 + 当日情绪”同时进模型,等于用未来信息。正确做法是信号基于 t-1 及之前的数据,在 t 日执行。举个具体例子:假设你 14:30 用”截至当前的所有推文情绪”生成信号,并用 14:30 的股价做标签回归—这等于用未来半小时的价格信息预测过去,回测年化可以虚高到离谱。正确做法是情绪快照固定在 15:00 收盘后(或次日开盘前),信号只用于下一交易日,且标签用下一日的收益率。
  2. 机器人放大:社交平台大量 bot 会制造虚假传播峰值,直接拉高 β\beta 和 Reach。必须做账号可信度过滤(蓝 V/历史活跃度/转发图谱),否则你在交易水军。
  3. 回音室:同一叙事在封闭社群里反复自引用,看起来触达广,实则没溢出到能影响价格的人群。网络中心度比触达总数更可靠。
  4. 帖子幸存者偏差:能抓到的数据是”还活着”的帖子,被删帖/限流的负面叙事被系统性低估,情绪天然偏多。
  5. 监管与流动性:极端情绪驱动的跳空,往往伴随停牌、涨跌停无法成交,回测里的”完美成交”在实盘根本不存在。
  6. 情绪≠基本面:叙事可以完全错误却仍驱动价格(回忆 GameStop)。情绪信号捕捉的是注意力驱动的短期错配,不是价值。

六、小结#

社交媒体对量化的价值,不在”今天大家是看涨还是看跌”这个静态数字,而在叙事如何传播、以多快速度、从谁出发、触达了谁。把情绪当传播过程建模(SIR + 网络扩散),并用领先-滞后检验确认其确实先于价格,你才拿到一个经得起推敲的另类 alpha 来源。但请永远记得:你在交易的是注意力的短期错配,不是真相本身。

社交媒体情绪传播与价格发现:当叙事先于价格
https://blog.halo26812.eu.org/blog/social-media-sentiment-price-discovery
Author halo
Published at 2026年7月10日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨