一、情绪量化概述:什么是市场情绪?

做量化这些年,我经常被问到同一个问题:「市场情绪到底能不能量化?」

我的回答很直接——能,但没那么简单。

市场情绪,说白了就是参与者对未来的集体预期。它不是一个数字,而是一种氛围。你想想看,当所有人都在恐慌抛售时,价格往往已经跌过头了;当所有人都在狂热追涨时,顶部也就不远了。这就是情绪的力量。

1.1 情绪量化的意义

为什么要量化情绪?

我个人习惯把市场看作一个「情绪放大器」。基本面决定方向,但情绪决定幅度和节奏。举个例子:

  • 同样的利好消息,在乐观情绪下可能涨5%,在悲观情绪下可能只涨1%
  • 同样的技术形态,在情绪高涨时突破成功率更高,在情绪低迷时容易假突破

我在项目中遇到过很多次这样的情况:策略回测表现很好,但实盘就是赚不到钱。后来复盘发现,问题出在「情绪因子缺失」——策略只考虑了价格和成交量,完全忽略了市场情绪的变化。

核心观点:情绪量化不是预测市场,而是理解当前市场处于什么「心理状态」。这能帮你避开大多数坑。

1.2 情绪量化的挑战

嗯,这里要注意——情绪量化有三个绕不开的难题:

  1. 情绪是主观的:同样一根大阳线,有人觉得是突破,有人觉得是诱多。怎么统一?
  2. 情绪是动态的:今天的恐慌可能明天就变成贪婪,情绪切换速度极快。
  3. 情绪难以直接观测:你没法给每个交易者装个传感器,只能通过价格、成交量等间接指标去反推。

我曾经踩过一个坑:直接用VIX指数(恐慌指数)作为情绪指标,结果发现它在A股市场效果很差。为什么?因为A股有涨跌停限制,VIX的计算逻辑在A股水土不服。后来我改用「涨跌停家数比」和「连板高度」来构建情绪指标,效果才明显改善。

避坑指南:不要直接照搬海外市场的情绪指标。不同市场的交易机制、投资者结构差异很大,情绪的表现形式也不同。

1.3 情绪指标在量化交易中的角色

情绪指标在量化交易里到底扮演什么角色?我总结了三层:

角色 说明 典型应用
过滤器 判断当前是否适合交易 情绪极端时暂停策略,避免追涨杀跌
增强器 在情绪共振时加大仓位 情绪+技术形态双重确认时加仓
预警器 提前发现市场拐点 情绪背离时减仓或反向操作

说白了,情绪指标不是用来「预测明天涨跌」的,而是用来「判断当前市场状态」的。我习惯把它当作一个「背景音」——你不需要时刻盯着它,但当你做决策时,它必须在你脑子里。

1.4 情绪量化的知识体系

下面这张图是我自己梳理的情绪量化知识体系,你可以把它当作整个课程的地图:

情绪量化知识体系 市场情绪来源 价格行为维度 成交量维度 衍生品维度 涨跌停家数比 成交量/换手率 期权隐含波动率 连板高度/炸板率 资金流向/大单净额 期货升贴水率 应用:策略过滤器 | 仓位管理 | 风险预警 | 择时增强

个人建议:刚开始做情绪量化时,不要贪多。先盯住1-2个核心指标(比如涨跌停家数比和连板高度),跑通一个简单的情绪过滤器,再逐步扩展。我当年就是先从「涨停家数>50且跌停家数<5」这个简单规则开始的。

1.5 一个简单的情绪量化示例

最后,给你看一个我早期用的情绪量化代码片段。虽然简单,但很实用:

# 计算涨跌停家数比(情绪强度指标)
def calc_emotion_strength(up_limit_count, down_limit_count):
    """
    up_limit_count: 涨停家数
    down_limit_count: 跌停家数
    返回值: [-1, 1] 之间的情绪强度
    """
    total = up_limit_count + down_limit_count
    if total == 0:
        return 0  # 没有极端情绪
    
    # 情绪强度 = (涨停 - 跌停) / (涨停 + 跌停)
    strength = (up_limit_count - down_limit_count) / total
    return strength

# 使用示例
emotion = calc_emotion_strength(80, 5)
print(f"当前情绪强度: {emotion:.2f}")
# 输出: 当前情绪强度: 0.88(极度乐观)

这个公式很简单,但很有效。当情绪强度接近1时,说明市场极度乐观,这时候追高要小心;当情绪强度接近-1时,说明市场极度恐慌,反而可能是机会。

嗯,情绪量化的大门已经打开了。接下来的章节,我们会深入每个指标的具体实现和参数调优。你准备好了吗?


专注资料整理