给程序员的投资指南——风险控制

117 阅读22分钟

本章内容(This chapter covers)

  • 风险分类
  • 风险缓释
  • 对冲策略
  • 用马科维茨模型优化投资组合
  • 评估非财务风险

探索那些可能数倍增值的资产令人兴奋。但如果你把毕生积蓄押在“非凡收益”上,你可能会夜不能寐,怀疑自己在下单那刻是否丢掉了常识。

我们脑海里有两种刻板形象:一种是追求刺激的赌徒;另一种是风险厌恶的投资者——一本正经地谈有效市场理论,不断劝你把钱全投到分散化 ETF。他们有时甚至坚持认为:连低风险评级的个股都“太冒险”。当你憧憬靠潜在回报住上豪宅时,遇到他们像被泼了冷水。无论我们多么热情,他们总能解释为什么事态不会如我们所愿。无论是人性偏见基金经理历史业绩统计,还是其他论据,结论似乎总一样:你打不赢市场,那就买指数

关于风险 vs. 回报的争论无休无止。一方举 Warren Buffett、Jim Simons、Peter Lynch 等人为例,称他们长期跑赢市场,暗示“任何人都能做到”;“精力到哪里,结果就到哪里”,只要耐心且自省,选对方向就能致富。另一方则引用 Eugene Fama、Burton Malkiel 等学者的洞见:有效市场随机漫步。两边各有数据:这边说“优秀主动管理基金胜过被动基金”,那边说“蒙眼扔飞镖的猴子都能挑出战胜老道投资者的组合”,因为市场难以预测。

本章可视为第 4 章的反题:第 4 章强调研究成长潜力能带来收获;这里强调若事与愿违我们会失去什么,进而得到合题:我们既要研究回报也要研究风险,并在非确定性环境中决定可接受的风险

本章首先分类风险;随后讨论度量风险的方法;最后讲如何缓释风险。

7.1 受身(Ukemi)

在武术里,第一课不是跳踢,而是如何安全摔倒。日语称之为 ukemi(受身) 。对系统同样适用:先护航,再扩张

开发者在 TDD(测试驱动开发)中早已熟悉此理:先写测试,再写代码。缺乏整洁代码与 TDD 的项目,常沦为“黑箱”——小改动引发大故障。一旦体验过干净有序的环境,就不愿再回到混沌。虽然同伴评审与谨慎实现看似更慢,但能减少昂贵的修复

投资中的风险管理与此相似:尽早落实最佳实践,未雨绸缪,既保护你的组合,也保护你的心情

7.1.1 止损(Stop-loss)

投资中的关键“受身”是止损单:预设一个价格,一旦触发,券商会自动卖出以限制亏损。若要降低压力,请为每一笔仓位设定止损。没有止损就像无网走钢丝——明明能避免的损失,何必去冒?

止损也可上调随股价上行而移动。比如你以 8买入,一度涨到8** 买入,一度涨到 **25,你看好后市,最初止损设在 7,此时不卖出,而是把止损上调到7**,此时不卖出,而是把**止损上调到 22。这样两全:若继续上行,你仍在场;若回落,也能在 22止盈离场。没有止损,若回到22** 止盈离场。没有止损,若回到 **8,你可能追悔莫及。图 7.1 示意了止损单。

image.png

图 7.1 示例中第 6 天将止损上调至 22;第9天跌破22**;第 9 天跌破 **22 触发止损,按市价卖出。

第 11 章会讲如何通过 API 有效设置止损。当然,你也可直接在券商端下单;选择 GTC(Good Till Canceled) ,让安全网持续有效。

实务中的止损(STOP-LOSS IN PRACTICE)

如图 7.1:止损设 $22,股价跌破即卖。那是否应给所有仓位都设止损?考虑三点:

  • 税务——以 8买入、8** 买入、 **22 卖出有盈利,可能产生资本利得税。有时你不想马上纳税,或需在不同时间亏损抵利得
  • 交易成本——卖出需付手续费。若马上买回,还要受买卖价差影响;“卖了又买回”大概率吃亏。长期持有者在近价位重建仓位也可能成本高。
  • 波动——若跌破 $22 触发卖出,随后又大涨,你若追高买回就吃了亏。能否买到以固定价卖出/买入的权利?这就是止损之后的下一层风控复杂度期权的世界。

7.1.2 风险分类(Risk classification)

作为开发者,做新特性时的创造性冲劲令人上瘾,过度考虑失败可能会拖慢进度。

但软件终要上线,真实用户的抱怨足以让团队睡不着。此时 墨菲定律接管一切——“可能出错的终会出错”。SRE(站点可靠性工程)体现此思维:早期开发偏创造,SRE 则要逆向思考,在每一步设想失败,并分类/优先级处理风险。

工程师明白:全站宕机部分慢要糟得多。类比投资:日常波动的个股仍好过濒临破产的公司。当然,前者可能演变为后者,也可能是警讯;同时波动本就是市场的一部分。要有效管理风险,必须可度量并按影响力分类。

“小事化大”的偏误(BIKESHEDDING)
自行车棚效应”(琐事法则)描述人们倾向于把精力放在简单易懂的小事上,忽视复杂关键问题。投资中亦然:你可能盯住一只股票短跌 5% ,却忽略组合里另一家公司濒临违约的更大风险。聚焦要害是正确决策的关键。

理解系统性风险可从构建市场心智模型、识别足以扰动整个系统的事件入手。经典例子是 2008 金融危机:大型机构倒下,几近引发宏观崩溃

末日情景(如核战争)虽也是系统性风险,但已超出财务规划范围——若担心这些,建避难所比配置组合更实际。

撇开极端灾难,我们仍可系统地分类金融风险,帮助投资者为全市场威胁做准备并减轻损失。常见如下:

  • 市场风险——宏观趋势对股价影响巨大。经济下行、地缘政治、情绪转变等会普跌,即便个别公司基本面良好。
  • 行业风险——过度集中某一行业(科技、能源等)将暴露于该行业监管变动需求迁移技术颠覆
  • 个体资产风险非系统性风险)——公司层面的问题(治理不善、销量下滑、产品失败、丑闻等)导致个股表现不佳。

复利 vs. 高风险押注(THE POWER OF COMPOUNDING VS. HIGH-RISK INVESTING)

两位投资者:Ivan 激进、敢冒险;Alicia 谨慎、只承担必要风险。二人各以 $100,000 投资 10 年

  • Ivan:时赢时亏,10 年后回到 100,000,随后一次神操作一夜翻倍100,000**,随后一次神操作**一夜翻倍**到 **200,000
  • Alicia:每年稳定 10% 。若每年把利润提走,10 年后也是 200,000。但若复投,适用复利公式(P(1+i)n),其中(P=100,000),(i=0.10),(n=10)。结果:(100,000×1.110=259,374)。复投后的200,000**。但若**复投**,适用复利公式 ( P(1+i)^n ),其中 (P=100{,}000), (i=0.10), (n=10)。 结果:(100{,}000 \times 1.1^{10} = 259{,}374)。 复投后的 **259,374 > $200,000。长期看,稳定复利往往胜过偶发暴利

每位投资者都会听到这句老话: “历史业绩不代表未来表现。” 过度依赖“历史重演”会代价高昂;但完全忽视历史规律也同样危险。既然我们能分类风险,就需要据此思考如何用过去的证据来度量

7.1.3 风险度量(Risk measurement)

经济是复杂互联的系统,泡沫—崩盘—修复周而复始。虽无两次事件完全相同,但模式会重现。难点在于分辨真趋势巧合。这种视角帮助宏观经济学家预测连锁反应。例如乌克兰战争:对乌克兰粮食减产的担忧,引发对饥荒新兴市场动荡的恐惧;动荡可能扰乱采矿,影响金/钴/镍相关公司。又如俄罗斯天然气受制裁推高欧洲能源价,助长通胀

image.png

图 7.2 展示了一家美国 AI 公司的高层风险模型:若 2025 年出现如 DeepSeek 的新平台颠覆市场?若反 AI 社会运动兴起(属于市场风险),销售 AI 服务会更难?在一些国家,AI 开发者面临更严监管。有严监管环境经验的人会证明:新规可能让毫无准备的公司陷入困境。

这些仅是潜在风险的一角,再次印证“投资前先懂企业”这一原则。入场前自问:

  • 你知道公司可能会出什么问题吗?
  • 你理解其最大风险与威胁吗?

若答案是否定,请重新考虑;否则你将被未知催化剂牵着走,不知股价为何上上下下。

image.png

图 7.3风险矩阵:以严重性 × 发生概率进行映射。比如“反 AI 运动”:概率低,但一旦发酵就可能灾难性(主张禁用 AI)。又如“能源价格上行”:若电力扩产不及,AI 扩张会被成本拖慢。

为了有效用风险矩阵,你可以逐仓位评估并据此定义行动。示例:你持有 可口可乐、Apple、Pfizer。研究情景:“若再爆发疫情? ”“若爆发新的贸易战? ”进一步假设:基于当前政治局势的个人研判,中美贸易战升级可能”发生。逐一过仓:初步结论或许是可口可乐、Pfizer 潜在伤害有限;而 Apple 可能至关重要,在矩阵上评为高风险

Ray Dalio 倡导“按原则行事”。有人在高风险时主动作为,有人更淡定,只有在风险评级达“非常高”时才行动。风控的关键原则之一是事先定义灾难来临时的动作,并且无条件执行。假设你的原则是:风险达到最高级清仓。一旦有事件让贸易战确定,你应立即卖出高风险公司股票。听起来或许“教条”,但别忘了 Mike Tyson 的名言: “人人都有计划,直到挨了第一拳。” 在情绪裹挟之下,清晰的行动准则能让你仍然做对事;没有准则,一旦恐慌接管,就难以理性决策

评估风险还涉及 β(贝塔) ——衡量资产对市场波动敏感度

  • β = 1:与市场同步
  • β > 1:比市场更波动
  • β < 1:比市场更稳健

可把 β 类比为系统在高负载下的性能高 β 资产在压力下大起大落低 β

β 往往与常识一致:在熊市中,失业上升,消费回归必需品(超市受益),可选消费下滑(汽车经销商受挫)。但公司层面的特定风险也可能独立于市场:仅靠管理不善就足以让公司陷入困境。下一节我们将讨论如何有效度量风险。

7.2 为单只股票生成风险画像(Generating risk profiles for individual stocks)

一家公司的历史数据有助于我们通过基本面(如负债趋势)评估其表现。此外,我们还能研究走势/图表(常称为技术分析),以探索股价下跌的潜在风险。不同发展阶段体量的公司,分析方法会有所不同。

作为程序员,你或许见过响应时间不稳定的应用——高波动性会侵蚀用户信任。股价同理:若某资产过去波动很大,就在发出风险信号。而且,“跌了不一定再涨回去”。下面我们更深入地审视历史价格变动。

7.2.1 在险价值(VaR, Value at Risk)

在险价值(VaR)用于衡量在正常市场条件下、在给定置信水平时间区间内,某项投资或组合可能遭受的最大损失。它回答的问题是:“我可能面临的最糟损失是多少?其发生概率有多大?

对程序员的类比:VaR 就像为系统停机设阈值——“在 95% 的情况下,一周内最大停机不会超过 X”。把“停机”换成“亏损”,就是 VaR 的本质。拆解如下:

  • 你监控一个投资组合(一组资产);
  • 设定时间跨度(如天、月)与置信水平
  • 由此得到风险陈述,例如:“我们有 95% 的把握,组合单日亏损不会超过 3 万美元。”

实例:你的组合价值 1,000,000。分析师估计951,000,000**。分析师估计 **95% 置信**的**单日 VaR**为 **30,000。这意味着仅有 5% 的概率在任一天亏损超过 30,000;换言之,9530,000**;换言之,**95% 的时候亏损 ≤ 30,000

VaR 的计算通常基于历史数据模拟未来风险,常见两种做法:

  • 方差–协方差法:假设收益服从正态分布(类似用标准差预测响应时间波动);
  • 蒙特卡罗模拟:在多种情境下反复模拟(好比对代码做极端压力测试)。

借助这些方法,我们可像评估系统性能一样,估计组合的潜在风险

蒙特卡罗模拟是一种通过大量随机抽样来刻画不确定过程结果分布的计算技术,适用于传统解析方法不便或不可行的场景。清单 7.1 给出以 Apple 股价为例的蒙特卡罗模拟。我们设定置信水平等参数,随后载入股票历史数据、计算收益率、其均值标准差,据此基于过往收益模拟未来收益,并绘图与打印结果。

清单 7.1 针对 Apple 的 VaR 蒙特卡罗模拟

import numpy as np
import yfinance as yf
import matplotlib.pyplot as plt

ticker = "AAPL"               #1
confidence_level = 0.95       #1
num_simulations = 10000       #1
time_horizon = 1              #1

stock = yf.Ticker(ticker)                        #2
hist = stock.history(period="1y")                #2
returns = hist['Close'].pct_change().dropna()    #2

mu = returns.mean()        #3
sigma = returns.std()      #3

last_price = hist['Close'].iloc[-1]                 #4
sim_returns = np.random.normal(mu, 
                               sigma, 
                               num_simulations)    #4
sim_prices = last_price * (1 + sim_returns)        #4

threshold = np.percentile(sim_prices - last_price, 
                          (1 - confidence_level) * 100)    #5

plt.hist(simulated_prices - last_price, bins=50, 
         alpha=0.75, color="blue", edgecolor="black")     #6
plt.axvline(threshold, color="red", 
         linestyle="dashed", linewidth=2)            #6    
plt.title(f"Monte Carlo Simulated "
          f"P&L Distribution for {ticker}")      #6        
plt.xlabel("Profit/Loss")                            #6    
plt.ylabel("Frequency")                              #6    
plt.show()                                           #6    

print(f"{confidence_level * 100}% Monte Carlo "
      f"VaR for {ticker}: ${-var_threshold:.2f}")    #6
#1 参数设定
#2 抓取历史收盘价并计算历史收益率
#3 估计收益的均值与标准差
#4 基于历史统计对未来收益做蒙特卡罗模拟
#5 计算在给定置信水平下的 VaR
#6 绘制并输出结果

图 7.4 展示了蒙特卡罗模拟的直方图——结论是该股相对稳定:在95% 置信下,单日亏损不超过 $5.50/股

image.png

图 7.4 基于历史数据,Apple 单日亏损超过 $5.50 的情形仅占 5%

上述只是 Apple 的示例。你可以对组合内全部股票运行蒙特卡罗,并汇总得到组合整体 VaR

请记住,黑天鹅事件是超出常态预期的不可预测事件。排除这些极端离群值,VaR 可视为基于历史数据正常情境下的**“最坏情况”估计。投资者可据此将各持仓的 VaR与自身风险偏好对照,在某些情况下据此选择降低**(或提高)风险。

7.2.2 相关性(Correlation)

相关性衡量资产之间的联动关系正相关同向、负相关反向。可类比微服务依赖:一个服务挂了,会不会牵连另一个?

在第 3 章里,我们已计算过对数收益简单收益。沿用之前的思路,先加载三家公司的数据:

def collect_prices_returns(tickers: list):
    close_prices = pd.DataFrame()
    log_returns = pd.DataFrame()

    for ticker in tickers:
        close_prices[ticker] = yf.Ticker(ticker).history(
            start='2024-01-01', 
            end='2024-12-31', 
            interval="1d")['Close']
        log_returns[ticker] = np.log(close_prices[ticker] 
                                     / close_prices[ticker].shift(1))
    return close_prices, log_returns

tickers = ["MSFT", "AMZN", "GOOGL"]
close_prices, log_returns  = collect_prices_returns(tickers)

拿到收盘价对数收益后,可做基础统计:均值、标准差、方差

price_stats = (
    close_prices[tickers]
    .agg(['mean', 'std', 'var'])
    .T.reset_index()
    .rename(columns={'index': 'ticker'})
)

表 7.1 展示了这三只股票在一年内收盘价的均值 / 标准差 / 方差

表 7.1 微软、亚马逊、Alphabet 的股价均值、标准差与方差

公司meanstdvar
Microsoft (MSFT)418.7344518.19813331.17207
Amazon (AMZN)184.4902017.32285300.08126
Alphabet (GOOGL)163.3102915.40605237.34623

方差(var)度量数据相对均值的平方偏离的平均值,单位是“平方”,可解释性稍差;标准差(std)是方差的平方根,单位与原数据一致,更利于解读。理论分析或跨样本相对离散度比较时常用方差;大多数实务更偏好标准差。

提示:仍有分析师使用方差,了解其用途很重要;否则在实务中关注标准差即可。

此前我们也强调:股价绝对值只是一个数字,不具可比性。例如 418(微软的均价)并不“优于” 163(谷歌);若微软1 拆 10,均价会变 41.8,而股数增至 10 倍。跨股票比较应看百分比变化对数收益更适合作为基准:

rets = (
    log_returns[tickers]
    .agg(['mean', 'std', 'var'])
    .T * [TRADING_DAYS, TRADING_DAYS**0.5, TRADING_DAYS]
)
rets = rets.reset_index().rename(columns={'index': 'ticker'})
rets

表 7.2(对数收益的均值/标准差/方差)显示:测试期内,微软更稳定于亚马逊和 Alphabet。注意不同时段的规律可能不同。

表 7.2 微软、亚马逊、Alphabet 的对数收益均值、标准差与方差(年化)

公司meanstdvar
Microsoft0.144430.200780.04031
Amazon0.392470.281540.07926
Alphabet0.331290.280450.07865

进一步,把股票放到相关性框架里:先计算协方差cov() 并乘以交易日数可年化),了解“是否同向/反向”。

cov_matrix = log_returns.cov() * TRADING_DAYS
cov_matrix

协方差 > 0 表示同向< 0 表示反向;但它不告诉你强度表 7.3 的数值提示三者之间存在一定联动

表 7.3 微软、亚马逊、Alphabet 的协方差(年化)

公司MSFTAMZNGOOGL
Microsoft0.040310.038870.03239
Amazon0.038870.079260.04290
Alphabet0.032390.042900.07865

要知道强度与方向,需看相关系数。相关系数是把协方差除以标准差后得到、范围在 [-1, 1] 的量化值:

  • +1:完全正相关(同幅同向)
  • 0:无相关
  • –1:完全负相关(同幅反向)

调用 corr() 计算相关矩阵(与维度无关,无需像协方差那样乘交易日):

corr_matrix = log_returns.corr() 
corr_matrix

与“方差 vs. 标准差”类似,相关系数往往比协方差更直观,但知道协方差在部分分析中的用途也有价值。

表 7.4 显示三家公司相关度很高,这符合直觉:它们都深耕云计算与 AI,面向客户提供相近解决方案。

表 7.4 微软、亚马逊、Alphabet 的相关性

公司MSFTAMZNGOOGL
Microsoft1.000000.687650.57522
Amazon0.687651.000000.54331
Alphabet0.575220.543311.00000

由此可提出一个假设:如果市场认为“云业务已见顶”或“AI 热潮退去”,这三只股票可能同步大跌。再看另一个对比:英伟达 vs 沃尔玛

close_price, log_returns = collect_prices_returns(["WMT", "NVDA"])
corr_matrix = log_returns.corr()
print(corr_matrix)

表 7.5 所示,结果与直觉一致:NVDA 属于科技成长;若市场看好 AI,会追捧英伟达;一旦信心转弱,资金或转向防御型Walmart

据此,一种策略是挑选负相关股票:历史上,若 NVIDIA 下行Walmart 上行的概率更高。这样在“晴天”里可能减少上行收益,但在“雨天”里能缓和回撤

表 7.5 沃尔玛与英伟达的相关性

公司WMTNVDA
Walmart1.00000-0.00532
NVIDIA-0.005321.00000

这意味着我们可以用算法评估风险。在引入具体对冲技术缓释风险之前,下一步将从更通用的层面继续探讨风险。

7.3 人的因素(The human factor)

许多工程师都经历过这种情景:公司空降了一位极度严格的首席安全官(CSO)。过去自由度很高,如今凡事都要审批。本来简单的事,被迫走上官僚化的弯路,各种变通层出不穷。
然而,即便安全规程固若金汤,你仍可能发现荒诞之处——外包维护人员不受限地进出机房,或系统里潜伏着拥有**“上帝模式”**权限的隐藏超级用户。

投资亦然。严格的风控可能带来虚假的安全感,而隐藏的脆弱点会让你暴露在意想不到的风险之下。下面就来进一步探讨这点与投资的关联。

7.3.1 疏忽(Negligence)

问任何网络安全工程师最大威胁是什么,答案多半是:人的疏忽。技术安全是可控/确定的——你可以建模交互、加固加密、强制多因子验证;但你拦不住有人把密码写在便签上,贴在未锁的手机旁。

投资同理。你最大的风险不只来自市场波动骗局,更来自自己的心理。懂区块链的工程师也许能避开加密骗局,却仍可能败给贪婪、恐惧与冲动。工具能帮忙:你可以设置交易限额、权限约束或按固定节奏执行订单——但当情绪接管时,这些护栏也会被越过

没有哪本安全手册能根除用户失误,也没有哪本投资书能抹去情绪偏差。但意识到它们是第一步。错失恐惧(FOMO)会驱使投资者追涨不可持续的行情,识别这一偏差有助于降低其影响

团队工程方法(如 Scrum)通过回顾(retro)来改进流程。投资也受益于类似机制——用数据复盘过去的决策、引入同侪评审。通过跟踪你的投资组合(见第 6 章),你能洞察哪些有效、哪些无效

若自知心理是薄弱环节,就要主动干预。自我反思——理解更深层的动机——不只关乎交易,也是个人成长。不少券商提供风控工具,例如:

  • 风险画像:限制高风险交易
  • 冷静期:延后访问高风险功能

有时,多等一晚,就是把鲁莽一搏变成理性决策的分水岭。就像网络安全一样,投资不仅是技术,更是对人性(包括你自己)的管理。

7.3.2 回避风险(Risk avoidance)

理财顾问和券商常在 KYC 过程中评估你的风险承受度。不管一些“信徒”怎么说,没有唯一最优策略,只有与你的风险偏好匹配的策略。

降低风险最简单的方式是选择更安全的资产。比如指数基金通常被视为低风险。个股会失败,但指数基金只有在整个经济崩塌时才会“全体覆没”——到了那一步,投资表现已不是首要问题。

很多投资者把指数基金视为**“圣杯” :既然跑赢市场的概率不高,何必冒险去搏?不少人也为择时焦虑:买完就怕回落,从而做出短视决策。对策是定投(DCA) ——按固定金额、固定频率买入,不理会短期波动。虽非完美择时,但能摊薄高位风险**、平滑波动。

若仍想主动投资,可采取平衡法:大头配指数基金,小头做个股或其他主动投资。若你连续多年跑赢指数,再调整主动/被动比例也不迟。

最显而易见的降险策略是:投资你理解的生意。熟悉度让你更精准地评估风险,发现他人忽略的机会。这与价值投资一致——基于基本面买入被低估的公司。

价值投资的核心之一是安全边际(margin of safety) :以低于内在价值的价格买入,给错误留出缓冲。工程类比:客户要求系统能承载100的峰值请求,如果你恰好按 100 设计,就没有冗余应对突发。投资亦然——没有安全边际轻微误判都可能酿成失败。

投资期限与风险(TIME HORIZON AND RISK)

策略不同,风控各异:

  • 长期投资:买入并持有,甚至有人愿意长期持有价值股
  • 短线交易常被视作更接近“赌博”的策略;日内交易者根据形态/信号频繁买卖。
  • 高频交易(HFT)更是以毫秒/秒为单位,需要极致基础设施,靠超短期价差套利。

若你相信未来 10 年年化可达 10%单日的坏行情不值一惊;但在 HFT 中,风险显著更高。比如某人以 100买入ACME,预期100** 买入 ACME,预期 **120 卖出,若跌到 $80 就是即时亏损;若使用杠杆,持仓越久,利息越多,风险越大。

做空风险更甚:借股卖出,期望更低价买回。若以 100做空10股,股价涨到100** 做空 10 股,股价涨到 **120,回补即亏;此外还要承担借券费用分红代付,不利变化的持有成本很高。

对比长期投资:你基于对 ACME 需求的信念长期持有。但若公司丢了关键订单拳头产品失败,警讯未必立刻显现——有人悄然撤退,有人浑然不觉;等到下一次财报,一根 -30% 的瀑布式下跌让你警醒,再看研报才意识到也许回不去了

当然,也有很多财报后下跌是暂时的;市场以为增长见顶,随后被纠正。Netflix、Meta 在 2022 年就经历过低谷后反弹;但 Kodak、Peloton 等却未能重来。长期投资者的风险与交易者不同:他们可以过阶段性回撤,但如果忽视了标的产品已与时代错位/过时,一样可能巨亏。有人明知在下滑,却因损失厌恶迟迟不卖。

理解这些不同的风险动力学,对选择策略至关重要。无论你是主动交易还是长期持有控制下行风险都是避免代价惨痛的关键。

风险–收益权衡好比系统扩容:你可以选择安全但低性能的架构,也可以选择激进但可能故障的高性能架构。若觉得组合过险,可以把未来增量转向更安全的资产;但核心始终是风险自知。一些策略风险极高

  • 杠杆:借钱投资,放大收益也放大亏损;
  • 做空:押注股价下跌,若上涨,亏损理论上无限
  • 衍生品:复杂工具,放大盈亏

要清楚区分风险偏好(愿不愿冒险)风险承受力(扛不扛得住) 。工程类比:你可能在开发环境乐于尝试(偏好),但不会把未经验证的高风险改动推上生产(承受力)。

7.3.3 韧性(Resilience)

假设你以同样价格买入两只股票。一年后,A 公司跌到初始值的 20%B 公司涨到 150% 。你决定卖一只——卖哪只?多数人本能地卖出 B,落袋为安,同时幻想 A 反弹。但如果 B 继续涨A 继续跌呢?

运动员,尤其是网球选手,常在失误后丢节奏;最优秀的人能迅速调整。成功的投资者也一样:承认亏损、迅速适应、继续前进每个投资者都会亏钱,关键在于如何处理

损失厌恶让很多人被困在亏损标的里。你可能迟迟不卖,想着“也许会反弹”,“卖了才算亏”。但无视这种偏差,最终可能亏得更大。相反,抽离情绪

  • 假设你从零开始审视组合:若你现在并不持有 A,你会买它吗?它是真的被低估,还是陷入下行螺旋?若是后者,卖掉它,把资金挪到更合适的地方。
  • 反过来,若有新证据表明 A 是好机会,可以加仓。但要残酷诚实——别让沉没成本蒙蔽判断。

本书教你用算法分析市场,而非告诉你买什么。若你在艰难抉择时感到吃力,承认情绪与偏见会扭曲判断。

可信的同伴复核(如巴菲特与芒格的搭档)能帮你。但要慎选顾问:

  • 酒吧里夸夸其谈炫耀股市战绩的人?不可靠
  • 权威机构监管与认证的持牌理财顾问或许值得一试。

归根结底,最聪明的投资者会止损重估事实保持纪律——哪怕这很不舒服。以理性面对不适、遵循深思熟虑的原则的准备,可能是投资长期成功的最重要因素之一。

7.4 对冲(Hedging)

大多数人都听过墨菲定律:凡是可能出错的事,终将出错。开发者拥抱这种思维,用指标评估代码质量、用单元测试捕捉潜在故障。预设最坏情形并为之做准备的习惯,在投资中同样无价。

对冲是一种类似保险的风险管理策略:通过在相关资产上建立相反头寸减少或抵消潜在亏损。你用一部分潜在收益换取对严重下跌的保护。对冲不能彻底消除风险,但能让你在面对极端情景时睡得更安稳。下面探讨一些实用的风险缓释方法。

7.4.1 衍生品(Derivatives)

衍生品的价值源自某个基础资产(商品、货币、证券等)。常见类型包括:

  • 期权(Options) :买入**看跌期权(put)**可为持股下跌提供保护。
  • 期货(Futures) :农户卖出小麦期货以锁定价格,避免价格下跌带来的损失。
  • 互换(Swaps)利率互换帮助企业对冲利率波动。

举例说明:

  • 期权示例——Pedro 以 100/股持有ACME。财报将至、股价可能上下波动。为对冲财报后风险,他买入行权价100**/股持有 ACME。财报将至、股价可能上下波动。为对冲财报后风险,他买入行权价 **95看跌期权。若股价始终高于 95,就像交了保险费但未理赔;若跌破95**,就像交了保险费但未理赔;若跌破 **95,即可按 $95 卖出,限制亏损

  • 期货示例——农户 Yumi 预期丰收,同时也知道若普遍丰收,粮价大概率下跌。她通过卖出期货锁定未来售价。若因供给过剩导致现价下跌,仍可按预定高价出售。

  • 互换示例——互换可由公司或国家签订,交换一段时间的现金流/资产。设想一家美国公司需要欧元扩张欧洲业务,而一家欧洲公司需要美元进入美国市场。与其各自借入外币并承担汇率风险,不如达成货币互换

    • 美方以优惠利率借美元,与欧方交换欧元
    • 欧方以优惠利率借欧元,与美方交换美元
    • 期间双方分别用本币支付与偿还,降低交易成本与汇率风险
      这种结构化安排使双方以更优贷款条件运作,并最小化汇率波动

进阶期权交易:不止是“保险”

衍生品远比“保险”复杂。期权交易者可用多样化策略获取收益/现金流。策略众多,这里看几个代表:

  • 备兑开仓(Covered Call) ——你持有某股 100 股,现价 100,认为其很难长期站上100**,认为其很难长期站上 **110。于是你卖出 110的看涨期权收取权利金:若股价低于行权价,期权作废,你额外赚到权利金且无需卖股;若股价涨到110 的看涨期权**收取权利金:若股价低于行权价,期权作废,你**额外赚到权利金**且无需卖股;若股价涨到 **120,你需要按 $110 交割,放弃超出部分(减去权利金)。
    期权有到期日:到期未行权即失效。欧式期权仅能在到期行权,美式期权可在到期前任意时点行权。

  • 现金担保卖出看跌(Cash-Secured Put) ——标的波动很大,你长期看好,但不想在高位买入。可在较低行权价卖出看跌期权:若股价回落、买方行权,你将在较低价被动买入,同时赚取权利金。若判断正确,既赚权利金又以更低成本拿到潜力股。
    若误判、公司爆雷暴跌,你可能巨亏(如在安然崩盘前被动接盘)。

  • 铁鹰(Iron Condor) ——一种常用于博取低波动的高级策略。
    回顾:卖出期权= 收权利金并承担在被行权时按行权价买/卖的义务;买入期权= 付权利金、获得在特定条件下买/卖的权利
    价外(OTM) :期权当前无内在价值(看涨行权价高于现价或看跌行权价低于现价);若到期未触及行权价,期权归零;一旦触及则价内(ITM)
    铁鹰:同时卖出一张价外看涨与一张价外看跌,押注标的在到期时维持区间震荡,两边皆归零,你保留全部净权利金
    为限制极端波动的亏损,同时在两侧各买入更远的价外保护期权,形成双边信用价差,从而封顶最大亏损
    例:ACME 现价 $100,做一组欧式铁鹰、期限 6 个月:

    • 卖出 120看涨;卖出120** 看涨;卖出 **80 看跌;
    • 买入 130看涨;买入130** 看涨;买入 **70 看跌。
      你净收权利金(最大潜在利润),若到期价格介于 8080–120,两侧皆亏为零,你全额获利
      若遭意外诉讼(Wile E. Coyote)致股价暴跌至 2020**: **80 看跌被行权,你被迫按 80买入(账面80** 买入(账面 **-60/股);但因你持有 70看跌保护,可再按70 看跌保护**,可再按 **70 卖出,将单股亏损限制为 $10(两看跌行权价差),再扣除最初净收权利金。
      这套“收权利金 + 买远端保护”的结构,使铁鹰成为风险可定义、方向中性的策略。

7.4.2 分散化(Diversification)

关于“盲投掷飞镖能否胜过主动管理”的争论由来已久(见 Malkiel《漫步华尔街》)。观点虽异,但几乎所有人都同意:把鸡蛋放在同一个篮子里很危险。即便是市值最高的“七巨头”(Alphabet、Amazon、Apple、Meta、Microsoft、NVIDIA、Tesla),也存在风险——公司未必会破产,但股价受情绪驱动,可能高位买入后经历多年停滞或回撤

常见的风控方法是分散化,避免单点故障。程序员很熟悉:只靠一台服务器,宕机就全站瘫痪。但把仓位分散到七巨头是否就足够?如前所述,这些公司相关性很高,同属科技/AI赛道,一荣俱荣、一损俱损。表面上是七个篮子,本质可能仍在同一辆 AI 卡车上——卡车一偏,一起翻车

真正的分散是降低对单一市场/行业的暴露:横跨多行业配置股票,或混合债券、房地产等不同资产类别。

7.4.3 配对交易(Pair trading)

配对交易是一种市场中性策略:通常在同一行业/高度相关的两只资产上,一边做多、另一边做空,以相对价格变化为盈利来源,从而弱化整体市场方向的影响。

例子:你分析两家 AI 公司:

  • A 公司:增长动能强;
  • B 公司:增速放缓、上行空间有限。

做空 $100 的 B,用所得买入 A。若 AI 热潮继续,A 涨幅可能显著、B 仅温和上行;在扣除做空成本后,你整体盈利

AI 板块整体回调(如受中国竞品冲击或估值泡沫担忧),两者同跌:多头亏损,但空头获利,部分对冲损失。

风险仍在:做空有利息/借券成本;若判断失误——A 跌而 B 涨——亏损会放大。必须严格风控图 7.5 用 BCG 增长–份额矩阵的“明星/瘦狗”刻画了这种思路。

image.png

图 7.5 投资者做多 A、做空 B。牛市中,多头涨幅大于空头亏损,净盈利= 多头收益 − 空头亏损;熊市中,空头收益大于多头亏损,净盈利= 空头收益 − 多头亏损。

7.4.4 风险配对(Risk pairing)

前沿创新的热情常驱动投资决策。有人押注小型模块化反应堆(SMR)是能源未来;也有人看好直接空气捕集碳移除技术会成为“金矿”。但新兴技术天然风险高

没错,数据中心用电刚性强,核能具前景;但若 SMR 未达预期或公众态度导致推进缓慢怎么办?直接空气捕集若成本降不下来,商业化何时落地?

稳健资产平衡投机仓位是明智做法。关键在于风险承受度:例如 80% 指数基金 + 20% 高风险资产,即便高风险部分归零,也不至于动摇你的财务根基。长期看,稳健资产的增长可吸收这些亏损,使风险可管理。此外可采用分批投入:在你收入较高的阶段,持续用小额加仓新技术,同时维持 20%/80% 的风险比例。

催化剂与事件(CATALYSTS AND EVENTS)

对冲不只在于“怎么做”,还在于“何时做”。财报季是长期投资者的关键时点。券商会提前提醒并提供分析师预期;财报往往成败攸关。阅读电话会纪要(可用生成式 AI 辅助摘要)很有用,但仅靠摘要仍不够

财报差,股价下跌——但这是否是买入机会?这才是问题。作为投资者,应长期关注那些可能显著改变股价路径特殊事件催化剂

7.5 非财务风险(Nonfinancial risk)

有些风险不会体现在公司的财务报表上,统称为非财务风险。其细分种类广泛,且常因行业不同而异。举例来说,全球宏观经济形势会影响所有公司;在经济下行时,除非商业模式专为危机环境而设,否则企业往往受挫。

2020 年代很可能比以往许多年代面临更多全球性挑战。新冠疫情与地缘冲突在世界多地造成冲击;社交媒体与 AI 的发展也放大了极端观点。许多国家的公共舆论愈发激烈,人们担心“最后一根稻草”会压垮骆驼,激化为骚乱与对立,宗教与政治极端分子相互冲撞。

乐观派或许不同意这种判断,坚称“一切都会好起来”。作为投资者,你可以保持中立:国家 X 会发生动乱吗?正确答案可能是“我不知道”。我们关心的是动乱发生的概率,并需要把风险量化为数字。下面探讨衡量非财务风险的思路——即所有未被传统金融风控覆盖的风险。

7.5.1 市场(Markets)

市场趋势常以两种动物象征:。它们并非随意所指,而是代表了明确的市场运动:

  • 牛市——公牛向上顶角:价格攀升、乐观情绪蔓延、信心增强。
  • 熊市——棕熊向下挥爪:价格下跌、不确定性上升、恐惧占上风。

牛市中,有些投资者会过度兴奋,为追求卓越收益而承担过多风险。若不做功课,随意买入所谓“高回报”标的,最终可能酿成灾难

也有人建议你忽略“市场先生” :若买入的是基本面扎实、前景光明的公司,其股价在熊市中可能下跌,但长期仍可期。然而,也要看到现实:危机时期有些公司会陷入无法挽回的困境,此时尽快卖出往往是降低永久性损失的唯一选择。做正确决定很难:信息不完备、心理会干扰判断。看着仓位比买入价低 20% ,人总会幻想“会反转”;而卖出就等于承认亏损,这会引发负面情绪。人之常情是回避痛苦、维持“总会好起来”的幻想,即便事实提示止损更明智

敢于冒险的人可能把熊市视为做空机会:先借股卖出、再低价买回。虽然 Michael Burry 等名人因 2008 年房地产泡沫崩盘而名利双收,但也有大量投资者误判周期而失败。

管住情绪、坚持纪律与事实可能是成为优秀投资者的关键。若你自认难以在动荡中保持冷静、或面对巨震辗转难眠,应考虑把策略调整到匹配你的风险画像

有些人会尝试在牛市末尾减持成长股、增配防御股;待下一轮熊市结束,再以更低价格回补成长股。这引出一个大问题:我们能预测牛熊吗?

7.5.2 经济数据(Economic data)

一些分析师尝试用经济数据预测衰退。常见指标之一是**“10 年期美债到期收益率减 2 年期美债到期收益率” 。有投资者把10Y–2Y 利差视为收益率曲线**的衰退代理信号(见图 7.6)。

image.png

图 7.6 10 年期到期收益率减 2 年期到期收益率(10Y–2Y)

另一个指标是失业率,可通过 FRED(美国联邦储备经济数据)获取(见图 7.7)。通常就业越充分通胀与过热的风险越大——当然,2020 年可视为特殊冲击(新冠疫情)而单独看待。

image.png

图 7.7 多年失业率走势

图中可见,多数衰退来临前失业率逐步上升,而在衰退期间陡然攀升

读图只能提供迹象。收听播客、专家访谈,你会发现相互矛盾的观点:有人预言危机将至,有人则笃信宏大增长

7.5.3 评估非财务风险(Assessing nonfinancial risk)

上市公司按既定准则披露数据,违规将面临惩处。尽管部分会计可能用“小技巧”粉饰不利信息,但经验丰富的财务分析师有一套框架解读数字、判断是否异常

第 11 章我们会更详细地研究非财务数据,探讨如何把财报之外的洞见纳入更高级的分析。这里先建立一个认知:非财务风险,本质上由**“它不是什么”来界定。我们可以查社媒情绪**、气象数据等多源信息,但与财务数据不同,没有一个中心化仓库能囊括所有非财务风险数据,甚至很难定义应当存哪些。

仍以 ACME 的虚构案例为参照(此前用于期权交易示例)。假设一位不满的客户 Mr. Coyote 起诉 ACME,声称其产品达不到销售宣传的承诺,并引发一些媒体报道。如何评估 ACME 的声誉风险?资深分析师可能类比历史案例、做参考估值;也可能抓取社媒舆情做情感分析。但不同分析师往往会得出不同结论

ACME 的案例多半只影响单一公司。再看系统性风险:假设某国迎来新政治领袖。我们可以分析演讲文本、基于关键词做情感分析,尝试读懂话语间的潜台词;也能研究竞选资金,看是谁在背后支持、从而推测其政策优先级

设想这位新领导人性格反复无常,否定前任、事事求变。有人据此认为其构成经济风险;也有人觉得他会打破停滞、带来积极改革。将行为转译为风险量化极具挑战:尽管许多人相信“粗暴、好斗、带有明显自恋倾向”的政治人物必然构成风险,但我们未必有充分证据证明这种“常识”。用数据预测未来需要足够的历史样本;而每位领导人的处境都不同,难有可比模型。因此,非财务风险(尤其与政治相关者)的分析往往带有更强的不确定性:与评估“公司破产概率”等财务风险相比,预测诉讼或选举对股价的影响通常更难、更具投机性

另一个问题是如何给非财务风险分组。以下是一种尝试:

  • 运营风险:系统停机、安全漏洞
  • 合规/监管风险:诉讼、罚款
  • ESG 风险:环境、社会、治理因素
  • 技术淘汰:研发投入、专利布局
  • 政治风险:国家稳定性、贸易限制
  • 声誉风险:社媒情绪、品牌受损
  • 管理层风险:CEO 变动、员工满意度

职业投资者与机构(如央行)拥有更精细的风险分类学,但对个人投资者而言可能过于繁复。我们也可以对特定风险深挖。当下十年经历了疫情地缘冲突政治范式转移,以及气候变化带来的山火与飓风。与其泛泛而谈“某公司面临哪些 ESG 风险”,不如直接问:气候变化会如何影响这家公司的业务?

处理该议题可有两条路径:

  1. 自建评分体系:从多源收集数据、搭建算法。若认真做,几乎每类风险、每家公司都能写成一本书,甚至构建“数字孪生”,模拟各种灾变场景的影响;
  2. 务实替代:第 8、9 章将更详细讨论 LLM。如果我们接受“风险评估总有盲区误差”,那么也可以让 LLM 承担初步评估,同时意识到其可能幻觉。即便需要人工复核,它仍可能帮助你发现模式、完善你的风险策略。第 8 章将给出非财务风险评估的示例。

7.6 组合优化(Portfolio optimization)

现在来看看如何优化投资组合。我们可以先收集数据,再定义各持仓的风险水平,并用这些技术在风险-收益之间做最优权衡。先从经典的 Markowitz 有效组合讲起。

7.6.1 Markowitz 有效组合(Markowitz-efficient portfolio)

Markowitz 有效组合指位于有效前沿上的任意组合(现代投资组合理论 MPT,Harry Markowitz,1952)。有效前沿是一条曲线:在给定风险(标准差)水平下提供最高期望收益的所有最优组合;或在给定收益下具有最低风险的所有最优组合。其思想是通过分散化在维持目标收益的同时最小化方差。做法上,我们基于历史数据比较波动与回报,据此构造在风险与收益间最优权衡的组合。

下面动手构建一个有效组合。清单 7.2 先加载若干股票三年的数据:苹果(AAPL)、沃尔玛(WMT)、谷歌(GOOGL)、可口可乐(KO)、辉瑞(PFE)、伯克希尔 B(BRK-B)与英伟达(NVDA)。

清单 7.2 收集 Markowitz 有效组合所需数据

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import yfinance as yf
from datetime import datetime, timedelta

def load_stocks(tickers, year_backs):
    start_date = datetime.today() - timedelta(days=365*year_backs) 
    end_date = datetime.today()
    stock_data = yf.download(tickers, start=start_date, end=end_date)['Close']
    return stock_data.pct_change().dropna()

tickers = ["AAPL", "WMT", "GOOGL", "KO", "PFE", "BRK-B", "NVDA"]
year_backs = 3
returns = load_stocks(tickers, year_backs)

加载完收益率数据后,设置计算有效前沿的参数(交易日按 252 天计):

清单 7.3 变量设置

TRADING_DAYS = 252

mean_returns = returns.mean() * TRADING_DAYS     #1
cov_matrix = returns.cov() * TRADING_DAYS        #1

num_portfolios = 10000        #2
num_assets = len(tickers)     #2

port_returns = np.zeros(num_portfolios)
port_volatility = np.zeros(num_portfolios)
sharpe_ratios = np.zeros(num_portfolios)
all_weights = np.zeros((num_portfolios, num_assets))
#1 年化均值与协方差矩阵
#2 随机模拟的组合数量

接着谈无风险利率夏普比率。夏普比率(William F. Sharpe)衡量单位风险可获得的超额回报(越高越好)。位于有效前沿的“切点组合”在可无风险借贷的假设下最大化夏普比率,常被视为最佳组合(但“有效组合”本身未必就是夏普最高者)。

直观理解:无风险利率是几乎无违约风险资产的收益“地板”(忽略黑天鹅)。任何有风险的资产,其预期回报应高于这一下限。这个下限不应用股市长期平均收益替代(见图 7.8),而常用**美国国库券(T-bill)**收益率。撰写时,示例使用 4.22% 作为无风险利率(实际会波动,实操需更新)。

image.png

清单 7.4 构建 Markowitz 有效组合

risk_free_rate = 0.0422

for i in range(num_portfolios):      #1
    weights = np.random.dirichlet(np.ones(num_assets), size=1).flatten()
    all_weights[i, :] = weights
    port_returns[i] = np.dot(weights, mean_returns)
    port_volatility[i] = np.sqrt(np.dot(weights.T, 
                                 np.dot(cov_matrix, weights)))
    sharpe_ratios[i] = (port_returns[i] - risk_free_rate) / port_volatility[i]
# 
max_sharpe_idx = np.argmax(sharpe_ratios)            #2
optimal_weights = all_weights[max_sharpe_idx, :]     #2
#1 随机权重蒙特卡洛模拟
#2 找到夏普比率最高的组合

清单 7.5 绘制有效前沿

plt.figure(figsize=(10, 6))                                   #1
plt.scatter(port_volatility, port_returns, c=sharpe_ratios,
            cmap='viridis', marker='o')   #1                   
plt.colorbar(label='Sharpe Ratio')        #1                  
plt.xlabel('Volatility (Risk)')           #1                   
plt.ylabel('Expected Return')             #1                 
plt.title('Efficient Frontier with Actual Stock Data')  #1     

plt.scatter(port_volatility[max_sharpe_idx], 
            port_returns[max_sharpe_idx], 
            c='red', marker='*', s=200, 
            label='Max Sharpe Portfolio')     #2
plt.legend()                                  #2
plt.show()                                    #2
#1 基础散点图
#2 标注夏普最高的组合

得到最佳组合后,用 DataFrame 输出权重:

optimal_portfolio_df = pd.DataFrame({
    'Stock': tickers,
    'Optimal Weight': optimal_weights
})
print(optimal_portfolio_df)

表 7.6 Markowitz 组合权重示例(基于历史数据)

StockOptimal weight
AAPL0.045226
WMT0.015196
GOOGL0.005023
KO0.004842
PFE0.293244
BRK-B0.000245
NVDA0.636224

英伟达近年表现“明星化”,权重占比高在情理之中;辉瑞在新冠阶段凭疫苗收入同样突出。若要据此落地,就需要按表中权重对现有仓位买卖调仓

image.png

注意:更改无风险利率时间窗口等参数,结果会显著变化。历史并非未来保证,尤其本十年受疫情与诸多全球事件冲击,机构目标价失真频率上升——不确定性始终存在。统计方法不能消除风险,但能帮助更好地管理风险。学会在个股研究之外进行投资组合层面的优化,能让你在“好公司”筛选之上,再判断是否适配既有组合。

7.6.2 Shiller P/E(CAPE)比率

Shiller P/E(CAPE)是平滑盈利波动、观察长期估值的指标:以当前指数/股票价格为分子、过去 10 年通胀调整的平均盈利为分母。高 CAPE → 估值偏高;低 CAPE → 估值偏低。可用它来指导大类资产配置

  • CAPE 高(估值偏贵) :降低股票仓位,增配债券、黄金或替代资产
  • CAPE 低(估值偏廉) :提高股票仓位。

例如:标普 500 的历史平均 CAPE 约 16–18。若明显高于此区间(如 >30)或明显低于(如 <10),分别提示过热机会。局限性:宏观结构变化(利率/税制)、指数成分演变(如今更偏重科技)都会影响“何为合理 CAPE”。因此,CAPE 更适合长期判断,而非短线交易。

image.png

一些投资者将 Markowitz 优化CAPE结合:用 CAPE宏观股债比重调整(CAPE 低→股 80/债 20;CAPE 高→股 50/债 30/金 20),再在股票子组合中用夏普比率微观权重优化。仍需谨记:这只是框架之一,存在例外与风险

7.6.3 再平衡(Rebalancing)

再平衡是按既定资产配置目标,定期或触发式调整各资产权重,控制风险、防止偏离并优化收益。原因:市场波动会让权重漂移;而集中于“近期赢家”会提升集中度风险

三种常见方法:

  • 定期再平衡(按时间) :如每季/半年/每年。
  • 阈值再平衡(按偏离幅度) :如偏离目标权重 ±5% 才动作。
  • 混合式:二者结合(常更实用)。

过度频繁的再平衡会产生交易成本与税负。执行方式上,可以直接卖弱买强,也可以对有稳定现金流的人(如程序员外快多),通过用新增资金只买入需要增配的标的来回到目标,不必卖出弱势仓位。

下面给出示例代码:假定我们用“最佳组合”结果作为目标权重

target_allocation = {
"AAPL":  0.016804,
"WMT":   0.007427,
"GOOGL": 0.015956,
"KO":    0.142700,
"PFE":   0.193730,
"BRK-B": 0.009315,
"NVDA":  0.614068
}

再假设当前持有等额美元头寸(真实情况可替换为从券商导入的持仓):

import pandas as pd
current_portfolio = {
"AAPL":  10000,
"WMT":   10000,
"GOOGL": 10000,
"KO":    10000,
"PFE":   10000,
"BRK-B": 10000,
"NVDA":  10000,
}

清单 7.6 再平衡准备

threshold = 0.05    #1
total_value = sum(current_portfolio.values())

current_allocation = {stock: value / total_value 
                      for stock, value 
                      in current_portfolio.items()}     #2
#1 再平衡阈值(如偏离目标 5% 以上)
#2 计算当前权重

清单 7.7 计算所需调整

dev = {
    stock: current_allocation[stock] - target_allocation[stock] 
    for stock in target_allocation
}                                       #1

rebalance_needed = {
    stock: value 
    for stock, value in dev.items() 
    if abs(value) > threshold
}     #1                                 

adjustments = {}                                              #2
for stock in rebalance_needed:                                #2
    target_value = target_allocation[stock] * total_value     #2
    current_value = current_portfolio[stock]                  #2
    adjustments[stock] = target_value - current_value         #2
#1 找出需要再平衡的标的
#2 计算买卖金额

整理为建议表:

rebalance_df = pd.DataFrame({
    "Stock": list(adjustments.keys()),
    "Current Value ($)": [current_portfolio[stock] for stock in adjustments],
    "Target Value ($)":  [target_allocation[stock] * total_value for stock in adjustments],
    "Adjustment ($)":    [adjustments[stock] for stock in adjustments],
    "Action":            ["Buy" if adj > 0 else "Sell" for adj in adjustments.values()]
})

表 7.7 再平衡操作示例

StockCurrent valueTarget valueAdjustmentAction
AAPL10,0001,176.28–8,823.72Sell
WMT10,000519.89–9,480.11Sell
GOOGL10,0001,116.92–8,883.08Sell
PFE10,00013,561.103,561.10Buy
BRK-B10,000652.05–9,347.95Sell
NVDA10,00042,984.7632,984.76Buy

现实中很难精确匹配目标权重,尤其当标的股价高且券商不支持碎股时(部分券商仍有限制)。因此可结合阈值成本与税务,选择分步/分批达成目标配置。

总结

  • “受身”(Ukemi)一词源自武术。本章借用该概念,强调在冒险之前学会应对潜在挫折的重要性。
  • 止损单是最高效的止损工具之一:当价格触及预设价位时,券商会按指令卖出持仓。
  • “自行车棚效应”(帕金森琐事定律)提醒我们:在琐碎话题上分散注意力,可能忽视最重大的风险。
  • 牛市代表增长,熊市代表下行。挑战往往不在于顺境中赚取高收益,而在于逆境中尽量减亏。VaR(在险价值)用于估算在极端情形下一段时期内可能的最大亏损;可用蒙特卡洛模拟来衡量个股的 VaR。
  • 两只股票价格的“相关性”表示其走势常常联动:A 涨时,B 多数情况下也上涨。
  • 我们可用历史收益和方差来度量风险,并据此从多只股票中选择组合以获得期望的风险收益比。
  • 可用蒙特卡洛模拟来计算高效(有效)组合。
  • 人类心理在投资中是重要的风险因子。
  • “对冲”指用衍生品、分散化、配对交易或风险配对等手段来保护自己免受风险。
  • 衍生品类似于针对价格变动的保险;部分交易者也用它们来创造额外收益。
  • 分散化至关重要,但需要深入理解组合中各资产之间可能存在的相关性。
  • 配对交易指同时做多一只标的、做空另一只标的,以相互对冲风险。
  • 风险配对是将高风险投资与低风险资产进行搭配。
  • 非金融风险指与金融本身并无直接关联的所有风险,包括地缘政治变化或整体市场波动导致的问题。
  • 非金融风险范围极广,可能无法做到完全防护,但可借助“风险矩阵”识别最值得关注的风险。
  • 保护企业免受非金融风险的一种方法是保留“安全边际”,并通过预想最坏情形来提前做准备。
  • 不同公司对市场波动的抗压性不同。β 值(贝塔系数)衡量个股相对大盘的波动性;β 值越低,越能抗市场波动。
  • 一些投资者把宏观数据(如失业率、10 年期与 2 年期国债收益率之差)视为潜在衰退的指标。
  • 过去的业绩可以提示未来的可能表现,但并不保证未来结果。
  • 在一个包含多种资产的组合中,利用历史收益(潜在收益)与历史波动(风险)可以构建策略。
  • 马科维茨有效组合基于历史数据给出资产权重建议;这些权重(即组合内的持仓分配)可通过蒙特卡洛模拟计算,以实现最优的风险与回报。
  • 席勒市盈率(CAPE)用经通胀调整后的 10 年期平均每股收益来平滑企业利润波动,常用于评估如标普 500 等市场是否被高估。
  • 组合会随时间偏离初始配置,需要再平衡;但过于频繁的再平衡会累积可观的交易成本。