基于戴维·斯文森,《非同寻常的成功:个人投资的基本方法》(2005)
戴维·斯文森是历史上最成功的机构投资者之一。1985年至2021年去世期间,他担任耶鲁大学捐赠基金的首席投资官,将基金从10亿美元增长到超过310亿美元,开创了一种被称为"耶鲁模式"的方法——大量配置于私募股权、风险投资、对冲基金、林地和实物资产等另类资产。
然而,在《非同寻常的成功》中,斯文森传递了一个令人惊讶的信息:对耶鲁有效策略对你不会有效。 个人投资者缺乏使另类投资可行的机构优势——规模、顶级管理人的获取渠道、治理结构、远离流动性需求的长期投资期限。因此本书不是复制耶鲁捐赠基金的指南,而是指导个人投资者应该做什么的指南。
斯文森从一个曾经战胜过市场的人的角度写作——辉煌而持续——而他告诉你不要尝试。这不是一个沮丧的学术抱怨有效市场。这是从业者诚实的评估:个人可用的工具与机构可用的工具根本不同,个人必须相应地调整策略。
本书分为两大部分:
斯文森对共同基金行业的批判是本书最彻底、最具控诉性的部分。他确定了基金公司与其投资者之间多层次的结构性冲突。
| 费用类型 | 典型范围 | 30年影响(10万美元) |
|---|---|---|
| 管理费(费率) | 0.50% – 1.50% | 30,000 – 100,000+美元 |
| 12b-1分销费 | 0.25% – 1.00% | 15,000 – 65,000美元 |
| 前端收费 | 3.00% – 5.75% | 即时资本损失 |
| 后端收费(递延) | 1.00% – 5.00% | 离开的惩罚 |
| 软美元成本 | 0.10% – 0.50% | 隐藏的、无法量化的 |
| 交易成本(买卖价差冲击) | 0.20% – 1.00% | 12,000 – 65,000美元 |
关键洞察: 费用结构设计使基金公司无论投资者是否盈利都能获利。驱动收入的是管理规模(AUM),而非表现。这创造了一种聚集资产而非产生回报的激励。
斯文森确定了弥漫于行业的结构性冲突:
斯文森最尖锐的批判之一:许多"主动"管理人在收取主动管理费用的同时,暗中紧贴基准。
如何检测抽屉式指数化:
算术: 收取1.00%且R平方为0.97的抽屉式指数化,实际上是在为你提供3%的主动管理收取1.00%——隐含主动费用超过33%。你支付了溢价价格,但产品与0.03%可用的指数基金几乎完全相同。
共同基金行业报告的跟踪记录系统性膨胀:
斯文森估计,纠正这些偏差会使报告的平均基金回报减少每年1.0%至1.5%——在长期视野中将温和的落后转变为灾难性的价值破坏。
斯文森确定了个人投资者投资组合中应配置的六类——也只有六类——资产。每个必须满足三个标准:
| 属性 | 详情 |
|---|---|
| 作用 | 核心增长引擎;生产企业所有权 |
| 预期回报 | 在长期视野中六类中最高 |
| 风险特征 | 高波动性;可能发生40-50%回撤 |
| 相关性 | 基准;其他类别以此衡量 |
| 实现方式 | 全美股市指数基金 |
| 为何配置 | 股票风险溢价是长期超额回报最可靠、最有文献记载的来源 |
关键细微差别: 斯文森偏爱全市场方法而非仅标普500,因为它提供了提供额外分散化和潜在规模因子的中小盘敞口。
| 属性 | 详情 |
|---|---|
| 作用 | 地理分散化;非美国经济周期敞口 |
| 预期回报 | 在长期视野中与国内股票相似 |
| 风险特征 | 高波动性加货币风险 |
| 相关性 | 与美国股票中等相关(0.6–0.8);随时间下降 |
| 实现方式 | 发达国际股市指数基金(EAFE) |
| 为何配置 | 降低单一国家/经济体的集中风险 |
关键细微差别: 斯文森明确警告不要对股票配置对冲货币风险。货币波动在短期内增加波动性,但在长期视野中提供真正的分散化。对冲引入自己的成本并消除分散化好处。
| 属性 | 详情 |
|---|---|
| 作用 | 更高增长潜力;发展中经济体敞口 |
| 预期回报 | 可能高于发达市场,但不太可靠 |
| 风险特征 | 极高波动性;政治风险;流动性风险 |
| 相关性 | 与发达市场股票中等相关(0.5–0.7) |
| 实现方式 | 新兴市场股市指数基金 |
| 为何配置 | 与不同经济结构的真正分散化 |
关键细微差别: 新兴市场带有发达市场没有的风险——征用、资本管制、法治薄弱、会计不可靠。配置应有意义但不应主导。
| 属性 | 详情 |
|---|---|
| 作用 | 实物资产敞口;通胀敏感;收入生成 |
| 预期回报 | 在长期视野中类似股票,当前收入更高 |
| 风险特征 | 高波动性;利率敏感 |
| 相关性 | 与股票中等相关(0.4–0.6);提供分散化 |
| 实现方式 | REIT指数基金(美国房地产投资信托) |
| 为何配置 | 根本上不同的回报驱动因素:实物房地产 |
关键细微差别: REITs提供大多数个人无法直接获取的商业房地产敞口。它们是真正不同的资产类别——由租金、 occupancy和房产价值驱动,而非仅由企业盈利驱动。不要将REITs与自有住房混淆;它们服务不同的投资组合功能。
| 属性 | 详情 |
|---|---|
| 作用 | 通胀保护;持有至到期时的实际回报保证 |
| 预期回报 | 低(历史上实际收益率1-2%) |
| 风险特征 | 实际回报低;到期前中等价格波动 |
| 相关性 | 与股票低相关;在通缩恐慌期间为负 |
| 实现方式 | TIPS指数基金或直接从TreasuryDirect购买 |
| 为何配置 | 唯一提供政府保证实际回报的资产 |
关键细微差别: TIPS是斯文森首选的通胀对冲。与大宗商品或黄金不同,TIPS提供合同保证的实际回报(本金随CPI调整)。它们作为投资组合的通胀保险单。
| 属性 | 详情 |
|---|---|
| 作用 | 通缩保护;危机对冲;投资组合压舱石 |
| 预期回报 | 低(名义收益率减去通胀) |
| 风险特征 | 低信用风险;中等久期风险 |
| 相关性 | 在危机期间与股票负相关(避险) |
| 实现方式 | 美国国债指数基金(中期或长期) |
| 为何配置 | 在危机中唯一具有可靠负股票相关性的资产 |
关键细微差别: 斯文森坚持债券配置仅限美国国债——不是公司债券,不是市政债券,不是抵押支持证券。只有完全信用担保的美国政府债务提供证明低预期回报合理的那种危机对冲特性。公司债券是糟糕的妥协:下行时类似股票风险,上行时类似债券回报。
斯文森引用Brinson、Hood和Beebower(1986)研究及其后续研究,以确定资产配置解释了超过90%的投资组合回报变化。证券选择和市场时机,对个人投资者来说,平均而言是负和游戏。
投资组合必须以股票为导向,因为:
目标股票配置:约70%,涵盖国内、国外、新兴和REITs成分。
斯文森在三个独立维度上分散化:
| 维度 | 如何实现 |
|---|---|
| 资产类别 | 六种具有不同回报驱动因素的独特类别 |
| 地理 | 美国、发达国际、新兴市场 |
| 通胀体制 | TIPS(通胀)、国债(通缩)、股票(增长) |
斯文森明确排除几种流行资产类别:
| 排除的资产 | 原因 |
|---|---|
| 公司债券 | 股票风险但无股票回报;危机对冲差 |
| 高收益债券 | 伪装成固定收益的股票风险 |
| 市政债券 | 税收优惠不能补偿信用/流动性风险 |
| 抵押支持证券 | 负凸性;提前还款风险;复杂性 |
| 大宗商品 | 无固有预期回报;纯投机 |
| 黄金 | 无现金流;无预期实际回报 |
| 对冲基金(零售) | 费用提取;无法获取顶级管理人 |
| 私募股权(零售) | 逆向选择;零售产品是同类中最差的 |
| 税收递延年金 | 过度费用;退保费用;税收低效 |
这是斯文森"非同寻常"信息的核心。这位以另类投资建立职业生涯的人告诉个人投资者完全避开它们。
| 因素 | 耶鲁捐赠基金 | 个人投资者 |
|---|---|---|
| 获取顶级管理人 | 数十年建立的首选关系 | 被最差管理人冷call |
| 尽职调查 | 25人以上的全职投资人员 | 周末和晚上 |
| 治理 | 专家投资委员会 | 自我管理(情绪化) |
| 投资视野 | 永久(几个世纪) | 20-40年 |
| 流动性需求 | 可预测,相对于AUM较小 | 不可预测(失业、疾病) |
| 谈判能力 | 可以要求优惠费用条款 | 标准零售条款 |
| 信息获取 | 专有数据、管理人会议 | 营销材料 |
个人投资者可获得的管理人在系统性上较劣:
| 工具 | 管理费 | 表现费 | 有效年成本 |
|---|---|---|---|
| 顶级对冲基金 | 2.0% | 20% | 好年景4-6% |
| 零售对冲基金 | 1.5-2.0% | 20% | 好年景3-5% |
| 对冲基金的基金 | 1.0% + 2.0% | 10% + 20% | 好年景5-8% |
| 私募股权 | 2.0% | 20% | 基金生命周期内4-7% |
| 指数基金 | 0.03-0.10% | 无 | 0.03-0.10% |
斯文森基于威廉·夏普1991年的证明建立:
这不是意见。是算术。
斯文森呈现的数据显示:
| 优势 | 解释 |
|---|---|
| 低费用 | 0.03-0.10% 对比 主动基金0.50-1.50% |
| 税收效率 | 最小换手率意味着最小资本利得分配 |
| 无管理人风险 | 不会因糟糕的股票选择而表现落后 |
| 无风格漂移 | 始终提供承诺的敞口 |
| 透明度 | 持仓已知且与指数匹配 |
| 无生存者偏差 | 指数基金不会因表现差而被合并或清算 |
| 简单性 | 无需研究;无需监控管理人行为 |
斯文森承认存在极少数卓越的主动管理人(他在耶鲁雇用了他们)。但他认为:
结论: 对个人投资者而言,理性策略是100%被动指数化。
斯文森提供了明确的目標配置:
| 资产类别 | 目標权重 | 投资组合中的作用 |
|---|---|---|
| 美国股票(全市场) | 30% | 核心增长引擎 |
| 外国发达市场股票(EAFE) | 15% | 地理分散化 |
| 新兴市场股票 | 5% | 增长/分散化 |
| 房地产(REITs) | 20% | 实物资产、收入 |
| 美国国债通胀保护证券(TIPS) | 15% | 通胀保护 |
| 美国国债 | 15% | 通缩对冲、危机压舱石 |
股票导向合计:70%(美国 + 外国 + 新兴 + REITs) 固定收益合计:30%(TIPS + 国债)
美国股票30%: 最大单一配置反映了美国市场的规模、深度、流动性和投资者本国经济敞口。但它不是许多传统配置中的50-60%——斯文森有意限制单一国家集中。
外国发达市场15%: 有意义的但不过量。提供真正的地理分散化,而不 overweight在指数构建可能较低效或公司治理较弱的地区。
新兴市场5%: 由于更高风险(政治、流动性、治理)保持较小,但存在以提供分散化和增长潜力。零配置会牺牲真正的分散化;更大配置会引入过多波动性。
REITs 20%: 相对于大多数模型投资组合明显较高。斯文森认为房地产是具有根本不同回报驱动因素的真正不同的资产类别。20%配置反映了他对实物资产值得有意义代表的信念。
TIPS 15%: 提供投资组合的通胀保险。在持续通胀环境中,TIPS保护购买力,而股票可能暂时艰难。
美国国债15%: 提供投资组合的通缩和危机保险。当股票崩盘时,美国国债通常上涨。这种负相关性非常有价值,是接受低预期回报的唯一原因。
斯文森的配置并非来自均值-方差优化(他认为由于估计误差而不可靠)。相反,它反映:
不复衡,投资组合会漂向近期表现最好的资产。这会产生:
再平衡迫使相反的情况:卖出已升至目标以上的资产,买入已跌至目标以下的资产。 这是系统性的、机械性的逆向投资实施。
再平衡规则:
1. 每季度(或每半年)审查投资组合配置。
2. 计算每种资产类别的当前权重与目标权重的对比。
3. 如果任何资产类别偏离目标超过5个百分点
(绝对值),将整个投资组合
恢复到目标。
4. 或者,使用基于日历的方法:每年在固定日期
恢复到目标。
5. 再平衡时,首先将新供款引导至低配
资产类别(免税再平衡)。
6. 仅在供款不足以恢复平衡时才出售高配仓位。
| 方法 | 触发条件 | 优势 | 劣势 |
|---|---|---|---|
| 日历(年度) | 每年固定日期 | 简单、低维护 | 可能错过大偏差 |
| 阈值(5%) | 任何类别偏离5+个百分点 | 对变动敏感 | 需要监控 |
| 混合 | 日历 + 阈值检查 | 平衡方法 | 略复杂 |
再平衡在心理上很困难,因为它要求:
这正是它有效的原因。 不适是回报溢价来源。
不同资产类别有不同的税收特征。将它们合理放置:
| 资产类别 | 税收特征 | 优先账户 |
|---|---|---|
| 美国股票指数 | 低换手率、合格股息 | 应税账户 |
| 外国股票 | 可享受外国税收抵免 | 应税账户 |
| 新兴市场 | 可享受外国税收抵免 | 应税账户 |
| REITs | 高普通收入股息 | 税收递延(IRA/401k) |
| TIPS | 幽灵收入(通胀调整) | 税收递延(IRA/401k) |
| 美国国债 | 利息收入 | 税收递延(IRA/401k) |
关键洞察: REITs和TIPS是税收效率最低的持仓。REITs股息按普通收入征税(而非合格股息)。TIPS产生"幽灵收入"——你对本金的通胀调整纳税,尽管你没有收到现金。两者都属于税收保护账户。
税损收割规则:
1. 监控应税账户中低于成本基础交易的持仓。
2. 当持仓显示有意义的亏损时,卖出并立即
投资于类似(但不是"实质相同")的基金。
示例:卖出先锋全股市,买入嘉信全股市。
3. 优先收割短期亏损(按较高普通收入税率征税)。
4. 遵守30天Wash Sale规则:出售后30天内
不购买相同或实质相同的证券
之前或之后。
5. 跟踪收割的亏损以结转抵销未来收益。
斯文森的基金选择很简单,因为 Universe 是故意狭窄的:
基金选择决策树:
1. 这个资产类别有低成本指数基金吗?
是 → 使用它。选择过程完成。
否 → 进入步骤2。
2. 有跟踪广泛指数的低成本ETF吗?
是 → 使用它。
否 → 进入步骤3。
3. 有直接购买选项吗(例如, TreasuryDirect购买TIPS)?
是 → 考虑直接购买。
否 → 此资产类别可能无法实现。重新考虑。
| 标准 | 要求 |
|---|---|
| 费率 | 低于0.20%;偏好低于0.10% |
| 基金结构 | 跟踪广泛市场指数的指数基金或被动ETF |
| 跟踪误差 | 相对于所述基准最小 |
| 税收效率 | 低换手率;最小资本利得分配 |
| 基金公司 | 非营利(先锋)首选;低成本提供商可接受 |
| 最低投资 | 必须在您的投资水平上可获取 |
| 证券借贷收入 | 返回给基金股东,而非管理人保留 |
斯文森明确支持先锋的共同所有权结构为唯一与投资者利益一致的结构:
这不是偏好问题;而是结构论点。 营利性基金公司对股东的信托义务与其对基金投资者的信托义务相冲突。先锋的结构解决了这一冲突。
| 资产类别 | 示例指数基金 | 约费率 |
|---|---|---|
| 美国股票 | 先锋全股市指数 | 0.03% |
| 外国发达市场 | 先锋FTSE发达市场指数 | 0.05% |
| 新兴市场 | 先锋FTSE新兴市场指数 | 0.08% |
| REITs | 先锋房地产指数 | 0.12% |
| TIPS | 先锋短期通胀保护证券 | 0.04% |
| 美国国债 | 先锋中期国债指数 | 0.05% |
斯文森的框架本质上是逆向的。再平衡迫使你买入下跌的、卖出上涨的。这很容易描述,执行起来却很痛苦。
维持纪律的规则:
斯文森含蓄地论证了行为经济学家所说的"承诺机制"——预先做出的限制未来行为的决定:
整个框架旨在最小化投资者必须做出的决定数量, 因为每个决定都是出错的机会。
| 塞壬之歌 | 理性回应 |
|---|---|
| "这次不一样" | 从来不是。坚持到底。 |
| "这个热门基金经理碾压市场" | 均值回归即将到来。 |
| "市场估值过高,现在卖出" | 你无法把握市场时机。保持投资。 |
| "这个新资产类别是未来" | 如果不在六类之中,就与你无关。 |
| "你的邻居在X上翻倍了" | 社交报道中的生存者偏差。 |
| "你需要更老练" | 老练是回报的敌人。 |
斯文森确定了损害个人投资者财富的反复出现的错误:
| # | 错误 | 为何具有破坏性 |
|---|---|---|
| 1 | 追逐过往表现 | 在峰值买入;资金流入后均值回归 |
| 2 | 忽视费用 | 每年1%在30年内复合为超过25%的财富损失 |
| 3 | 雇主股票过度集中 | 安然、世界通讯——收入和储蓄同时面临风险 |
| 4 | 买入主动管理基金 | 所有成本后预期价值为负 |
| 5 | 持有公司债券以"安全" | 无充分补偿的信用风险 |
| 6 | 市场时机 | 错过最佳10天摧毁数十年回报 |
| 7 | 交易过于频繁 | 交易成本和税收几何复合 |
| 8 | 忽视税收定位 | 将错误资产放在错误账户中 |
| 9 | 未能再平衡 | 允许集中风险不受控制地建立 |
| 10 | 购买零售另类 products | 逆向选择确保最差的管理人找到你 |
| 11 | 将金融产品与投资混淆 | 年金、整存——保险 ≠ 投资 |
| 12 | 根据财经媒体行动 | 旨在产生交易,而非回报 |
斯文森描述了困扰大多数个人投资者的破坏性循环:
1. 基金X发布出色的3年回报。
2. 财经媒体专题报道基金X及其"明星经理"。
3. 投资者向基金X投入资金。
4. 经理面临资产臃肿;策略容量下降。
5. 均值回归导致基金X表现落后。
6. 投资者亏损卖出基金X。
7. 投资者找到具有出色近期回报的基金Y。
8. 从步骤2重复。
净结果:投资者系统性地高买低卖,
落后于他们拥有的每个基金。
斯文森引用研究表明,投资于共同基金的平均美元获得的回报大大低于平均共同基金报告的回报——差距是"行为税",由流入和流出的不良时机造成。
收入: 80,000美元
储蓄率: 20%(16,000美元/年)
401(k)余额: 50,000美元
应税账户余额: 20,000美元
IRA余额: 15,000美元
投资组合总计: 85,000美元
目标配置:
美国股票 30% → 25,500美元
外国发达市场 15% → 12,750美元
新兴市场 5% → 4,250美元
REITs 20% → 17,000美元
TIPS 15% → 12,750美元
美国国债 15% → 12,750美元
资产定位:
401(k) [50,000美元]: REITs (17,000) + TIPS (12,750) + 国债 (12,750)
+ 美国股票 overflow (7,500)
IRA [15,000美元]: 美国股票 (15,000美元)
应税账户 [20,000美元]: 外国发达市场 (12,750) + 新兴 (4,250) + 美国股票 (3,000)
行动:将 contributions 设置为自动投资。将401(k)供款引导至低配类别。年度审查配置。
收入: 140,000美元
储蓄率: 25%(35,000美元/年)
投资组合总计: 650,000美元
相同目标配置(30/15/5/20/15/15)。
斯文森不建议根据年龄改变配置 until
接近退休。股票导向在积累阶段保持不变。
再平衡事件:在强劲的美国股票年之后,美国股票已漂移
至36%,TIPS已跌至11%。
行动:
1. 将所有新供款引导至TIPS和低配类别。
2. 如果不足,在税收优惠账户中卖出美国股票(无税收影响)
并购买TIPS。
3. 在应税账户中,检查任何下跌类别的
税损收割机会。
投资组合总计: 1,800,000美元
退休: 5年后
考虑:斯文森没有规定机械的滑行路径,但
承认接近退休可能允许适度增加
固定收益以减少回报顺序风险。
可能调整的配置:
美国股票 25% (从30%减少)
外国发达市场 10% (从15%减少)
新兴市场 5% (保持)
REITs 15% (从20%减少)
TIPS 20% (从15%增加)
美国国债 25% (从15%增加)
股票导向合计: 55% (从70%减少)
固定收益合计: 45% (从30%增加)
关键原则:任何调整都应是渐进的、深思熟虑的、
提前计划的——而非对市场条件的反应。
投资组合总计: 2,200,000美元
年度支出: 88,000美元(4%提款率)
提款策略:
1. 首先从高配资产类别提取(自然再平衡)。
2. 在应税账户中,卖出最高成本基础的批次。
3. 按要求从税收递延账户提取最低 Required Minimum Distributions。
4. 继续年度再平衡。
5. 监控总支出相对于投资组合价值。
保持有意义的股票敞口:65岁的人可能再活25-30年。
斯文森警告不要犯在早期变得过于保守的常见错误,
这会使投资组合暴露于通胀风险和 longevity 风险。
class SwensenPortfolio:
"""
非同寻常的成功资产配置的实施。
六大核心资产类别,被动管理,系统性再平衡。
"""
TARGET_ALLOCATION = {
"us_equity": 0.30, # 全美股市
"foreign_developed": 0.15, # EAFE发达国际
"emerging_markets": 0.05, # 新兴市场股票
"reits": 0.20, # 美国房地产投资信托
"tips": 0.15, # 国债通胀保护证券
"us_treasuries": 0.15, # 美国国债
}
# 税收效率排名(越高 = 越税收效率,偏好应税账户)
TAX_EFFICIENCY = {
"us_equity": 0.9, # 低换手率、合格股息
"foreign_developed": 0.8, # 可享受外国税收抵免
"emerging_markets": 0.7, # 可享受外国税收抵免
"reits": 0.1, # 普通收入股息
"tips": 0.2, # 通胀调整的幽灵收入
"us_treasuries": 0.3, # 利息收入
}
REBALANCE_THRESHOLD = 0.05 # 5个百分点绝对值
def __init__(self, total_value, accounts):
"""
accounts: dict of {
"taxable": {"value": float},
"tax_deferred": {"value": float}, # 401k, traditional IRA
"tax_free": {"value": float}, # Roth IRA
}
"""
self.total_value = total_value
self.accounts = accounts
self.holdings = {}
def compute_target_dollars(self):
"""计算每种资产类别的美元目标金额。"""
targets = {}
for asset_class, weight in self.TARGET_ALLOCATION.items():
targets[asset_class] = self.total_value * weight
return targets
def assign_asset_location(self, targets):
"""
将税收效率低的资产放置在税收保护账户中。
将税收效率高的资产放置在应税账户中。
算法:
1. 按税收效率排序资产(升序 = 效率最低的先)。
2. 用效率最低的资产填充税收递延和税收免费账户。
3. 用效率最高的资产填充应税账户。
"""
# 按税收效率排序资产类别:效率最低的先
sorted_assets = sorted(
targets.keys(),
key=lambda a: self.TAX_EFFICIENCY[a]
)
location_plan = {
"tax_deferred": {},
"tax_free": {},
"taxable": {},
}
# 每种账户类型的可用空间
remaining = {
acct: info["value"]
for acct, info in self.accounts.items()
}
# 首先用税收效率低的资产填充保护账户
for asset in sorted_assets:
needed = targets[asset]
# 首先尝试税收递延,然后税收免费,然后应税
for acct in ["tax_deferred", "tax_free", "taxable"]:
if remaining[acct] <= 0:
continue
allocated = min(needed, remaining[acct])
location_plan[acct][asset] = allocated
remaining[acct] -= allocated
needed -= allocated
if needed <= 0:
break
return location_plan
def check_rebalance_needed(self, current_holdings):
"""
检查是否有任何资产类别漂移超出阈值。
如果需要再平衡则返回True。
"""
total = sum(current_holdings.values())
if total == 0:
return False
for asset_class, target_weight in self.TARGET_ALLOCATION.items():
current_weight = current_holdings.get(asset_class, 0) / total
deviation = abs(current_weight - target_weight)
if deviation >= self.REBALANCE_THRESHOLD:
return True
return False
def compute_rebalance_trades(self, current_holdings):
"""
计算恢复目标配置所需的交易。
返回 {资产类别: 交易金额} 的字典。
正数 = 买入,负数 = 卖出。
"""
total = sum(current_holdings.values())
trades = {}
for asset_class, target_weight in self.TARGET_ALLOCATION.items():
target_value = total * target_weight
current_value = current_holdings.get(asset_class, 0)
trade = target_value - current_value
if abs(trade) > 100: # 最小交易阈值
trades[asset_class] = round(trade, 2)
return trades
def apply_new_contribution(self, amount, current_holdings):
"""
将新供款引导至低配类别。
这是首选的再平衡方法(无需卖出)。
"""
total_after = sum(current_holdings.values()) + amount
contributions = {}
# 计算低配金额
underweight = {}
for asset, target_wt in self.TARGET_ALLOCATION.items():
target_val = total_after * target_wt
current_val = current_holdings.get(asset, 0)
shortfall = target_val - current_val
if shortfall > 0:
underweight[asset] = shortfall
# 按比例将供款分配给低配类别
total_underweight = sum(underweight.values())
if total_underweight > 0:
for asset, shortfall in underweight.items():
share = shortfall / total_underweight
contributions[asset] = round(amount * share, 2)
return contributions
class TaxAwareRebalancer:
"""
在账户类型间再平衡,同时尽量减少税收影响。
"""
def __init__(self, portfolio):
self.portfolio = portfolio
def rebalance(self, current_by_account):
"""
current_by_account: {
"taxable": {"us_equity": 50000, "foreign_developed": 20000, ...},
"tax_deferred": {"reits": 30000, "tips": 25000, ...},
"tax_free": {"us_equity": 10000, ...},
}
策略:
1. 计算每种资产类别(跨所有账户)的当前总价值。
2. 确定达到目标配置所需的交易。
3. 首先在税收优惠账户执行卖出(无税收影响)。
4. 在税收优惠账户中为税收效率低的资产执行买入。
5. 仅在万不得已时在应税账户中卖出,
并尽可能收割亏损。
"""
# 步骤1:汇总当前持仓
total_holdings = {}
for acct, holdings in current_by_account.items():
for asset, value in holdings.items():
total_holdings[asset] = total_holdings.get(asset, 0) + value
# 步骤2:确定需要的交易
trades = self.portfolio.compute_rebalance_trades(total_holdings)
# 步骤3:按账户计划执行
execution_plan = []
# 首先卖出——优先税收优惠账户
for asset, amount in trades.items():
if amount >= 0:
continue # 这是买入;稍后处理
sell_remaining = abs(amount)
for acct in ["tax_deferred", "tax_free", "taxable"]:
if sell_remaining <= 0:
break
available = current_by_account.get(acct, {}).get(asset, 0)
sell_amount = min(sell_remaining, available)
if sell_amount > 0:
execution_plan.append({
"action": "SELL",
"asset": asset,
"account": acct,
"amount": sell_amount,
"tax_impact": "NONE" if acct != "taxable" else "CHECK_LOTS",
})
sell_remaining -= sell_amount
# 买入——按税收效率优先选择账户
for asset, amount in trades.items():
if amount <= 0:
continue # 已处理
execution_plan.append({
"action": "BUY",
"asset": asset,
"amount": amount,
"preferred_account": self._preferred_account(asset),
})
return execution_plan
def _preferred_account(self, asset):
"""根据税收效率确定优先账户。"""
efficiency = SwensenPortfolio.TAX_EFFICIENCY[asset]
if efficiency >= 0.7:
return "taxable"
elif efficiency >= 0.3:
return "tax_free"
else:
return "tax_deferred"
def harvest_losses(self, taxable_holdings, cost_basis):
"""
识别税损收割机会。
返回收割交易列表。
"""
WASH_SALE_DAYS = 30
harvests = []
# 为wash-sale合规使用替代基金
substitutes = {
"us_equity": "us_equity_alt", # 例如,SCHB for VTI
"foreign_developed": "foreign_dev_alt", # 例如,SPDW for VEA
"emerging_markets": "emerging_alt", # 例如,SCHE for VWO
"reits": "reits_alt", # 例如,SCHH for VNQ
}
for asset, current_value in taxable_holdings.items():
basis = cost_basis.get(asset, current_value)
loss = basis - current_value
if loss > 500: # 最小收割阈值
substitute = substitutes.get(asset)
if substitute:
harvests.append({
"sell": asset,
"buy": substitute,
"loss_harvested": round(loss, 2),
"note": f"在{WASH_SALE_DAYS}天后更换或保留替代品",
})
return harvests
def annual_review(portfolio, current_holdings_by_account, new_contribution):
"""
完整的年度投资组合维护程序。
实施斯文森的系统性方法。
"""
rebalancer = TaxAwareRebalancer(portfolio)
# 步骤1:汇总和评估
total = {}
for acct, holdings in current_holdings_by_account.items():
for asset, value in holdings.items():
total[asset] = total.get(asset, 0) + value
portfolio_value = sum(total.values())
print(f"投资组合价值: ${portfolio_value:,.0f}")
# 步骤2:检查配置漂移
print("\n--- 当前 vs. 目标配置 ---")
needs_rebalance = False
for asset, target_wt in SwensenPortfolio.TARGET_ALLOCATION.items():
current_wt = total.get(asset, 0) / portfolio_value
drift = current_wt - target_wt
flag = " ** 漂移" if abs(drift) >= 0.05 else ""
print(f" {asset:20s}: {current_wt:.1%} (目标 {target_wt:.1%}, "
f"漂移 {drift:+.1%}){flag}")
if abs(drift) >= 0.05:
needs_rebalance = True
# 步骤3:将新供款引导至低配类别
if new_contribution > 0:
print(f"\n--- 引导${new_contribution:,.0f}供款 ---")
contrib_plan = portfolio.apply_new_contribution(
new_contribution, total
)
for asset, amount in contrib_plan.items():
print(f" 向{asset}贡献${amount:,.0f}")
# 步骤4:如需要则再平衡(在供款应用后)
if needs_rebalance:
print("\n--- 需要再平衡交易 ---")
trades = rebalancer.rebalance(current_holdings_by_account)
for trade in trades:
print(f" {trade['action']} ${trade.get('amount', 0):,.0f} "
f"的{trade.get('asset', 'N/A')} "
f"在{trade.get('account', trade.get('preferred_account', 'N/A'))}")
# 步骤5:检查税损收割(仅应税账户)
taxable = current_holdings_by_account.get("taxable", {})
# cost_basis将在实际实现中单独跟踪
print("\n--- 税损收割:审查应税持仓 ---")
print(" 根据成本基础检查每个应税持仓。")
print(" 使用替代基金收割超过500美元的亏损。")
# 步骤6:审查费率
print("\n--- 年度基金审查 ---")
print(" 验证所有基金仍为其类别的最低成本选项。")
print(" 检查是否有新的更低成本替代品。")
print("\n--- 审查完成 ---")
"共同基金行业对个人投资者的系统性剥削是一个全国性丑闻。"
这框定了斯文森的核心批判。行业不仅仅是imperfect;而是在结构上设计来从投资者那里提取财富。
"压倒性地,共同基金从投资者那里提取巨额款项,作为交换提供令人震惊的糟糕服务。"
关于行业承诺与交付之间差距的评论。
"在对冲基金、风险投资和杠杆收购中工作的投资者面临不寻常的情况,即权重决定性地有利于资金管理人。"
关于另类投资为何对耶鲁有效但对个人无效——费用结构和获取障碍确保了管理人而非投资者捕获大部分价值。
"只有微乎其微的4%的基金产生跑赢市场的税后结果,而仅有0.6%具有统计显著性。96%的失败率无可辩驳地证明了主动管理的徒劳。"
主动基金管理的统计证据。
"投资者做出的最重要的投资决定涉及用于股票与债券的资产比例。"
资产配置,而非证券选择,决定结果。
"再平衡需要逆向思维。投资者必须卖出表现良好的资产,买入表现不佳的资产。"
关于为何再平衡在心理上困难而在财务上回报丰厚。
"未能再平衡的投资者面临投资组合被最风险持仓主导的前景——随着时间推移而恶化的危险情况。"
关于配置漂移的复合危险。
"明智的投资者寻找由基金本身拥有的非营利管理公司。先锋一枝独秀。"
斯文森明确支持先锋的共同所有权结构。
"除非投资者能够获得非凡才华的主动管理人——这几乎肯定意味着个人投资者无法获得的获取渠道——否则投资者应该投资于指数基金。"
斯文森对个人的 definitive 建议摘要。
"华尔街通过活动赚钱。你通过不活动赚钱。"
金融行业与个人投资者之间的根本冲突。