3、情绪与市场:过度自信、损失厌恶、后悔厌恶、处置效应

各位同学,咱们今天聊点实在的。

做量化策略,很多人以为拼的是数学、拼的是代码。其实不然。我做了这么多年,发现真正让策略亏钱的,往往不是模型错了,而是人自己出了问题。说白了,就是情绪在作祟。

你想想看,一个完美的回测曲线,实盘一跑就变形。为什么?因为回测里没有「人」这个变量。而实盘里,全是活生生的人——包括你自己。

核心观点:行为金融学不是玄学,它是可以量化的。今天讲的四种情绪偏差,每一种都能写成因子,放进你的回测框架里。

3.1 过度自信:你以为你比市场聪明?

过度自信,是我在交易员身上见过最多的毛病。包括我自己,早期也吃过这个亏。

什么叫过度自信?就是你觉得自己的判断比实际更准。比如你预测某只股票要涨,概率明明只有60%,你心里却觉得有90%。

量化表现:

  • 交易频率异常高——越自信,越爱动
  • 持仓集中度偏高——不敢分散,怕稀释收益
  • 止损设置过窄——觉得「我选的票不可能跌」

我的经验:我曾经给一个私募团队做策略优化,发现他们的换手率是同类策略的3倍。一查,原来是基金经理每天看盘,越看越觉得自己能「做T」赚钱。结果呢?手续费吃掉了一半利润。后来我强制加了一条规则:每日交易次数上限。效果立竿见影。

怎么在策略里捕捉过度自信?我建议用这个指标:

# 过度自信因子:基于持仓集中度与换手率的复合指标
def overconfidence_factor(portfolio):
    # 持仓集中度:前3大持仓占比
    top3_weight = portfolio['weight'].nlargest(3).sum()
    # 换手率:过去20日平均
    turnover = portfolio['turnover'].rolling(20).mean()
    # 复合因子
    factor = top3_weight * turnover
    return factor

这个因子值越高,说明该交易者越可能处于过度自信状态。你可以用它来做反向指标——因子值过高时,减仓。

3.2 损失厌恶:亏100块的痛,赚200块都补不回来

行为金融学里有个经典实验:给你两个选择——A. 确定赚50块;B. 50%概率赚100块,50%概率赚0块。大多数人选A。但如果换成亏损:A. 确定亏50块;B. 50%概率亏100块,50%概率亏0块。大多数人选B。

为什么会这样?因为人对损失的敏感度,大约是对收益的2倍。这就是损失厌恶。

在策略中的体现:

  • 浮亏时死扛,浮盈时早早了结
  • 止损位形同虚设——「再等等,马上就反弹了」
  • 喜欢卖赢补亏——把赚钱的票卖掉,去补仓亏钱的

避坑指南:我曾经见过一个策略,回测时夏普比率2.0,实盘直接腰斩。原因就是策略里没有考虑「人的止损执行力」。回测假设你会在-5%时止损,但实盘里你根本下不去手。所以我现在做策略,一定会加一个「行为损耗系数」,默认打8折。

量化损失厌恶,可以用这个思路:

# 损失厌恶指标:基于持仓盈亏状态的交易行为分析
def loss_aversion_analysis(trades):
    # 盈利交易的平均持有期
    win_hold = trades[trades['pnl'] > 0]['hold_days'].mean()
    # 亏损交易的平均持有期
    loss_hold = trades[trades['pnl'] < 0]['hold_days'].mean()
    # 比值越大,损失厌恶越严重
    aversion_ratio = loss_hold / win_hold
    return aversion_ratio

这个比值如果大于1.5,说明交易者明显存在「死扛亏损、急于止盈」的倾向。嗯,这时候就要小心了。

3.3 后悔厌恶:怕犯错,比犯错本身更可怕

后悔厌恶,说白了就是「怕自己做了错误决定之后会后悔」。这种情绪会导致两个极端:

  • 不作为偏差:明明该调仓了,但怕调错,干脆不动
  • 从众行为:跟着大家买,就算亏了也不丢人——「大家都亏嘛」

我记得有个案例特别典型。2015年股灾前,很多基金经理其实已经看到估值泡沫了,但没人敢减仓。为什么?因为减仓了万一继续涨,会被骂「踏空」。结果呢?大家都死扛,一起亏。这就是后悔厌恶在作祟。

量化识别方法:

指标 计算公式 后悔厌恶特征
持仓调整频率 调仓次数 / 交易天数 显著低于同类策略
行业集中度 前3大行业占比 与市场基准高度一致
极端行情反应 单日跌幅>5%时的操作 倾向于不操作或反向操作

我的建议:如果你发现自己的策略在极端行情下「一动不动」,别急着夸自己淡定。先检查一下,是不是后悔厌恶在作怪。我个人的做法是:提前写好「极端行情操作清单」,到了那个点就执行,不给自己犹豫的机会。

3.4 处置效应:卖赢留亏,你中招了吗?

处置效应,是损失厌恶的一个具体表现。简单说就是:投资者倾向于过早卖出盈利的股票,而长期持有亏损的股票。

你想想看,你的账户里是不是经常这样:

  • 那只赚了10%的票,你早早卖掉了
  • 那只亏了20%的票,你还死死拿着

为什么会这样?因为卖掉盈利的票,你能获得「落袋为安」的快感。而卖掉亏损的票,意味着你要承认自己错了——这太痛苦了。

量化处置效应:

# 处置效应检测:计算盈利/亏损持仓的卖出概率
def disposition_effect(portfolio, price_data):
    # 计算每只持仓的盈亏比例
    portfolio['return'] = (price_data - portfolio['cost']) / portfolio['cost']
    # 盈利持仓的卖出概率
    win_sell_prob = portfolio[portfolio['return'] > 0]['sold'].mean()
    # 亏损持仓的卖出概率
    loss_sell_prob = portfolio[portfolio['return'] < 0]['sold'].mean()
    # 处置效应系数:大于1说明存在处置效应
    effect = win_sell_prob / loss_sell_prob
    return effect

这个系数如果大于1.5,说明处置效应已经很明显了。我见过最夸张的一个账户,这个系数到了4.2——盈利的票几乎全卖了,亏损的票一个没动。

实战建议:如果你在做量化策略,我强烈建议你把处置效应作为一个风险因子加入模型。具体做法是:当策略持仓中出现「盈利仓位的平均持有期 < 亏损仓位的平均持有期」时,触发风控警报,强制减仓10%。

3.5 四种情绪的综合影响

这四种情绪不是孤立存在的。它们经常同时出现,互相强化。比如:

  • 过度自信 → 频繁交易 → 亏损 → 损失厌恶 → 死扛 → 后悔厌恶 → 不敢动 → 处置效应 → 卖赢留亏

你看,一个完整的「亏钱链条」就出来了。

我个人的做法是,在策略框架里加一个「行为情绪综合评分」:

# 行为情绪综合评分
def behavioral_score(portfolio, trades):
    oc = overconfidence_factor(portfolio)  # 过度自信
    la = loss_aversion_analysis(trades)    # 损失厌恶
    de = disposition_effect(portfolio)     # 处置效应
    # 综合评分(归一化后加权)
    score = 0.3 * oc + 0.4 * la + 0.3 * de
    return score

当这个评分超过阈值时,我会启动「冷静模式」——降低仓位、减少交易频率、扩大止损范围。说白了,就是让机器来管住人。

最后提醒一句:别以为量化了情绪,你就不会被情绪影响。我做了这么多年,该犯的错一个没少。区别在于,我现在知道什么时候自己可能犯错了。知道,就是改变的开始。

行为金融情绪偏差与策略影响 情绪偏差 过度自信 损失厌恶 后悔厌恶 处置效应 高换手率 持仓集中 死扛亏损 急于止盈 不作为 从众行为 卖赢留亏 持有亏损 综合评分 → 触发风控 → 降低仓位/减少交易

这张图把四种情绪偏差的关系理清楚了。你可以看到,它们不是孤立的,而是互相影响、互相强化。做策略的时候,别只看单一指标,要综合评估。

核心总结:情绪不是敌人,无视情绪才是。把行为偏差量化,纳入你的策略框架,你会发现——原来亏钱是有规律的。而规律,就是可以赚钱的。

专注资料整理