决策科学

系统 1 与系统 2 — 投资决策应该用慢思考,但大部分时候我们在用快思考

两套系统

Kahneman 把大脑的决策方式分为两套系统。这不是比喻,神经科学有证据支持——大脑确实有"快速通道"(杏仁核→前额叶的捷径)和"慢速通道"(前额叶的审慎推理):

系统 1(快思考)
自动的、快速的、直觉的、无意识的。看到一张愤怒的脸立刻感到威胁,不需要思考。这是大脑的默认模式,省能量。进化了上百万年,帮我们躲避猛兽。
系统 2(慢思考)
刻意的、缓慢的、理性的、有意识的。算 17×24 需要调动系统 2。费能量,大脑能不用就不用。进化时间短,但能处理复杂逻辑。

问题在于:系统 1 太勤快,系统 2 太懒惰。大部分决策都被系统 1 抢先做了,系统 2 还没来得及启动。

一个小实验

试试这个:球和球拍一共 1.1 元,球拍比球贵 1 元,球多少钱?如果你的第一反应是 0.1 元——那是系统 1 在回答。正确答案是 0.05 元。系统 1 总是抢答,但经常答错。

投资中的系统 1 陷阱

投资决策应该用系统 2——理性分析公司、计算估值、评估风险。但实际操作中,系统 1 经常抢先:

  • 看到涨了就想追 — 系统 1 的"可得性偏差",最近涨的股票更容易被想到。FOMO(害怕错过)本质上是系统 1 在喊"快买,再不买就来不及了!"
  • 亏了不割 — 系统 1 的"损失厌恶",卖掉 = 承认亏损 = 巨大痛苦。系统 1 的解决方案:不卖就不算亏。详见损失厌恶
  • 听了消息就买 — 系统 1 的"从众效应",别人都在买,我也买。进化让我们跟群体保持一致——在原始社会,脱离群体意味着死亡。但股市不是原始社会。
  • 越看越觉得好 — 系统 1 的"确认偏误",只注意支持自己判断的证据。详见认知偏差

这些都是系统 1 在做决策,系统 2 只是在事后给系统 1 的决定找理由(合理化)。你以为自己在理性分析,其实只是在给直觉找借口。

一个真实的决策场景

2025 年 11 月某天,我盯盘时看到一只股票突然拉升 5%。我的心跳加速了,手指已经在交易软件上输入了代码。这时候系统 1 在喊:"快买!主力在拉升!再不买就追不上了!"

但我强迫自己停下来,拿出笔记本写了三个问题:

  1. 我研究过这家公司吗?→ 没有
  2. 它符合我的买入标准吗?→ 不知道,没看过财报
  3. 如果买了跌 20% 我能接受吗?→ 不能

三个问题回答完,冲动消失了。那只股票第二天跌了 8%。

这就是"强制系统 2 介入"

系统 1 的冲动来得快去得也快。你只需要给自己设一个"减速带"——在冲动和行动之间插入一个必须完成的步骤(写下来、回答问题、等 24 小时)。这个减速带让系统 2 有时间启动。

用规则强制系统 2 介入

你不能靠意志力让系统 2 介入——系统 1 太快了,等你意识到的时候决定已经做了。唯一的办法是用规则提前锁定决策

  1. 买入前写清单 — 为什么要买?什么情况下卖?写下来再操作,强制系统 2 参与。我用的模板:公司名 / 买入理由 / 目标价 / 止损价 / 预期持有时间。
  2. 设止损线 — 买入前就定好止损点,到了自动执行。不给系统 1 "扛一扛"的机会。FinBuddy 帮我设了自动提醒。
  3. 冷却期 — 想买的时候等 24 小时。如果 24 小时后还想买,再买。大部分冲动会消失。我试过 10 次冷却期,7 次放弃了。
  4. 投资日志 — 记录每次决策的理由和结果,定期复盘。详见投资日志。这是最痛苦但最有效的方法——因为你得面对自己的错误。
  5. 预承诺 — 在市场平静时就定好规则(比如"PE 超过 30 不碰"),市场波动时只执行规则,不做新决策。这就像奥德修斯把自己绑在桅杆上——提前绑好,才能抵抗海妖的歌声。
# FinBuddy 决策规则引擎 — 预承诺机制
class DecisionRuleEngine:
    """在市场平静时设定规则,波动时只执行"""

    RULES = {
        "max_pe": 30,
        "max_position_pct": 0.2,
        "stop_loss_pct": -0.15,
        "cooling_hours": 24,
    }

    async def check_buy(self, trade: TradeIntent) -> RuleCheck:
        violations = []
        if trade.pe > self.RULES["max_pe"]:
            violations.append(f"PE {trade.pe} 超过上限 30")
        if trade.position_pct > self.RULES["max_position_pct"]:
            violations.append(f"仓位 {trade.position_pct:.0%} 超过上限 20%")
        if trade.cooling_remaining > 0:
            violations.append(f"冷却期未过,剩余 {trade.cooling_remaining}h")
        return RuleCheck(passed=len(violations) == 0, violations=violations)

这些规则的本质是:把系统 2 的决策提前到情绪还没上来的时候做,而不是在情绪最激烈的时候靠意志力对抗系统 1。就像 Kahneman 说的:意志力是有限的资源,规则是无限的

AI 能帮什么忙?

有趣的是,AI 在某种程度上可以充当"系统 2 的代理"。它没有情绪,不会因为恐慌而割肉,也不会因为贪婪而追高。当然,AI 有自己的问题——它会"幻觉",会过度自信——但至少它的偏差跟人类不一样。

我在 FinBuddy 里加了几个"系统 2 代理"功能:

  • 买入前偏差检查 — 扫描买入理由中的认知偏差信号
  • 自动止损提醒 — 到了止损位弹通知,减少"假装没看到"的可能
  • 反面证据生成 — 自动搜索不买入的理由,对抗确认偏误

但 AI 不能替你做决策。最终拍板的还是你自己——AI 只是帮你把系统 2 叫醒。