卖出股票时如何选择成本基础方法:FIFO、HIFO、SpecID 实战指南

本文写给谁
你在一个 taxable brokerage 账户中持有多笔不同时间、不同价格买入的同一只股票或 ETF。现在你需要卖出一部分——可能是为了再平衡、筹集现金、或者减少集中持仓。券商问你要用哪种 cost basis 方法。
本文写给以下读者:
- 持有多次 RSU vest 批次的科技公司员工,需要卖出部分股票
- 长期定投 VOO/VXUS 等指数基金的投资者,需要部分卖出
- 有 DCA(定投)股票持仓的投资者
- 管理家庭 taxable brokerage 的 DIY 投资者
本文不适合:所有投资都在 IRA/401(k) 等退休账户中的投资者——退休账户内部卖出没有税务影响,不需要选择 cost basis 方法。
一、什么是 Cost Basis?
Cost basis(成本基础) 是你买入投资时支付的价格,加上佣金。当你卖出时,资本利得或亏损等于:
资本利得(或亏损) = 卖出价格 - 成本基础
如果你在不同时间、不同价格分多次买入同一只股票(例如每月定投 VOO,或每季度 RSU vest),每笔买入就是一个税 lot(tax lot)。卖出时,你需要决定卖的是哪一笔的份额——这就是 cost basis 方法选择的核心。
为什么重要
选错方法可能让你多交数千甚至数万美元的税:
| 场景 | 100 股卖出价 $200 | 成本 $50(2020 年) | 成本 $180(2025 年) |
|---|---|---|---|
| 卖低成本 lot | 利得 $15,000 → 长期资本利得税 $2,250(15%) | ||
| 卖高成本 lot | 利得 $2,000 → 长期资本利得税 $300(15%) | ||
| 差异 | $1,950 |
同样是卖出 100 股,选不同的 lot,税差近 $2,000。如果你持有数十万股 RSU,差异可能是数万美元。
二、六种主要 Cost Basis 方法
1. FIFO(First In, First Out)
机制:最早买入的份额最先被卖出。
| 优点 | 缺点 |
|---|---|
| 简单直观 | 通常产生最高的资本利得 |
| 券商默认方法之一 | 卖出的是成本最低(通常利得最大)的 lot |
适合场景:当你希望产生长期资本利得(持有超过 1 年的部分优先被卖)而不是短期资本利得。早期 lot 如果持有超过 1 年,其利得适用 15%/20% 的长期税率而非最高 37% 的短期税率。
2. LIFO(Last In, First Out)
机制:最近买入的份额最先被卖出。
| 优点 | 缺点 |
|---|---|
| 通常产生最低的利得(近期买入价更高) | 可能产生短期资本利得(税率更高) |
| 适合短期内需要最小化应税利得 | 不适用于 mutual fund(IRS 限制) |
适合场景:最近买入的 lot 成本高且持有超过 1 年,或者你想在当前年度最小化资本利得。
3. HIFO(Highest In, First Out)
机制:成本最高的份额最先被卖出。
| 优点 | 缺点 |
|---|---|
| 最大化资本利得的减少 | 不考虑持有期——可能卖出短期 lot |
| 自动化,不需要手动选择 | 如果高成本 lot 是短期持有的,税反而可能更高 |
| 研究显示可增加 0.5-1.0% 的长期财富 | 最终会留下低成本 lot,未来卖出税更高 |
适合场景:你有多个高成本的税 lot 需要优先卖出,且这些 lot 已持有超过 1 年。
Financial Planning Association 的研究显示,在典型的退休规划场景中,使用 HIFO 方法可以在退休时增加 0.5% 到 1.0% 的总财富,因为延迟缴税带来的复利效果。
4. SpecID(Specific Identification)
机制:你在卖出时手动指定要卖哪几个具体的税 lot。
| 优点 | 缺点 |
|---|---|
| 最大灵活性 | 需要手动操作,不能设为默认方法 |
| 可以精确控制长期 vs 短期、利得大小 | 需要提前了解每个 lot 的成本和持有期 |
| 最适合复杂税务规划 | 券商必须在结算日前确认你的指定 |
适合场景:你有明确的税务规划目标(例如:今年想实现 $3,000 净资本亏损来抵扣普通收入),或者需要精确控制短期和长期利得的比例。
5. Tax Lot Optimizer / MinTax
机制:券商的算法自动选择预计税后成本最低的 lot 组合。不同券商名称不同:
| 券商 | 名称 |
|---|---|
| Charles Schwab | Tax Lot Optimizer |
| Fidelity | Tax-Sensitive Lot Selection |
| Vanguard | MinTax |
| Merrill Lynch | Best Tax Lot Selection |
| 优点 | 缺点 |
|---|---|
| 自动化,兼顾持有期和成本 | 只看当前交易,不考虑长期税务优化 |
| 通常比 FIFO/HIFO 更优 | 不同券商算法不同,结果可能有差异 |
| 适合不想手动操作的投资者 | 不一定在所有情况下都最优 |
适合场景:大多数情况下推荐的方法——自动考虑持有期和成本,通常比手动 FIFO 好。
6. Average Cost
机制:所有份额的成本取平均值。仅适用于 mutual fund,不适用于 ETF 或个股。
| 优点 | 缺点 |
|---|---|
| 计算简单 | IRS 规定一旦选用 average cost,不可撤销 |
| Vanguard mutual fund 默认方法 | 不利于税务优化 |
注意:如果你持有 Vanguard 的 mutual fund(如 VTSAX),默认是 average cost。如果改用 SpecID,需要在第一次卖出前就更改,否则 IRS 不允许再改。
三、实战案例
案例 1:RSU 多次 vest 后卖出
假设你在 NVDA 工作,过去 4 年每年 RSU vest 100 股:
| Vest 日期 | 股数 | Vest 时价格 | 成本基础 | 持有期 |
|---|---|---|---|---|
| 2022-06-15 | 100 | $160 | $16,000 | 长期 |
| 2023-06-15 | 100 | $260 | $26,000 | 长期 |
| 2024-06-15 | 100 | $125 | $12,500 | 长期 |
| 2025-06-15 | 100 | $140 | $14,000 | 长期 |
当前价格 $130。你想卖出 100 股。不同方法的结果:
| 方法 | 卖出 lot | 卖出成本 | 利得/(亏损) | 税率 | 预计税 |
|---|---|---|---|---|---|
| FIFO | 2022 lot | $16,000 | -$3,000 (亏) | 15% LTCG | -$450 亏损可抵其他利得 |
| HIFO | 2023 lot | $26,000 | -$13,000 (亏) | 15% LTCG | -$1,950 亏损可抵其他利得 |
| SpecID | 2023 lot | $26,000 | -$13,000 (亏) | 15% LTCG | -$1,950 亏损可抵其他利得 |
这个案例中,当前价格低于所有 vest 价格,卖出任何 lot 都是亏损——此时应选 HIFO 最大化亏损来抵扣其他利得。
案例 2:长期定投 VOO 后部分卖出
假设你每月定投 VOO,过去 3 年积累了以下代表性税 lot:
| 买入日期 | 股数 | 买入价 | 成本基础 | 持有期 |
|---|---|---|---|---|
| 2023-01 | 10 | $380 | $3,800 | 长期 |
| 2024-01 | 10 | $430 | $4,300 | 长期 |
| 2024-07 | 10 | $470 | $4,700 | 长期 |
| 2025-01 | 10 | $510 | $5,100 | 长期 |
| 2025-07 | 10 | $490 | $4,900 | 长期 |
| 2026-01 | 10 | $520 | $5,200 | 短期 |
当前价格 $530。你需要卖出 20 股来筹集现金。比较:
| 方法 | 卖出哪些 lot | 总成本 | 利得 | 税 |
|---|---|---|---|---|
| FIFO | 2023-01 + 2024-01 | $8,100 | $2,500 LTCG | $375(15%) |
| HIFO | 2026-01 + 2025-01 | $10,300 | $300($200 STCG + $100 LTCG) | ~$79 |
| MinTax | 2025-07 + 2024-07 | $9,600 | $1,000 LTCG | $150(15%) |
| SpecID | 2026-01 + 2025-01 | $10,300 | $300(含短期) | ~$79 |
在这个案例中,HIFO 产生的税最低,但部分是短期利得。MinTax 会自动避开短期 lot,牺牲一点利得最小化来换取长期税率。
案例 3:混合利得和亏损的税 lot
你持有以下 META 税 lot:
| Lot | 股数 | 成本 | 当前价 | 利得/(亏损) | 持有期 |
|---|---|---|---|---|---|
| A | 50 | $200 | $580 | +$19,000 | 长期 |
| B | 50 | $340 | $580 | +$12,000 | 长期 |
| C | 50 | $600 | $580 | -$1,000 | 短期 |
你想卖出 50 股。用 SpecID 精确选择:
- 如果目标是最小化当前税:选 Lot B(利得 $12,000 LTCG,税 $1,800)
- 如果目标是产生亏损来抵扣其他利得:选 Lot C(亏损 $1,000 STCL,可抵普通收入 $1,000,节税 $370)
- 如果目标是长期规划:卖 Lot A(利得最大但释放低成本 lot 给未来增值空间)
四、如何设置和更改
各主要券商的操作路径
| 券商 | 路径 |
|---|---|
| Fidelity | Account Settings → Cost Basis Method → 选择账户和证券 |
| Charles Schwab | Settings → Account Settings → Cost Basis Method |
| Vanguard | Profile & Settings → Cost basis method → 选择账户 |
| Morgan Stanley / E*TRADE | Account → Settings → Tax Lot Method |
| Robinhood | 设置 → 成本基础方法 |
重要规则:
- 你可以在卖出前随时更改默认方法
- SpecID 不能设为默认——必须在每次卖出时手动选择
- Mutual fund 的 average cost 一旦选用,IRS 不允许改回其他方法
- 更改方法只影响未来的卖出,不影响已经报税的交易
建议默认设置
| 情况 | 推荐默认方法 |
|---|---|
| 大多数投资者 | MinTax / Tax Lot Optimizer |
| 有明确税务规划需求 | SpecID(每次手动) |
| 不确定 | HIFO(通常优于 FIFO) |
| 全在 IRA/401(k) 中 | 不需要选择(免税) |
五、常见错误
错误 1:使用默认 FIFO 而不思考
大多数券商的默认方法是 FIFO。对于长期持有的增值资产,FIFO 通常产生最大的资本利得。检查你的设置,至少改为 HIFO 或 MinTax。
错误 2:忽略持有期
HIFO 自动卖出高成本 lot,但不考虑持有期。如果高成本 lot 是短期内买入的,你可能在 HIFO 下产生短期资本利得(最高 37%),这比 FIFO 下的长期资本利得(15-20%)更贵。
解决:使用 MinTax/Tax Lot Optimizer(兼顾持有期和成本)或手动用 SpecID。
错误 3:不考虑 wash sale
如果你在卖出亏损 lot 后 30 天内买回"实质性相同"的证券,IRS 会否认亏损扣除。这在使用 tax loss harvesting 时尤其需要注意。
解决:卖出亏损 lot 后,用相似但不相同的 ETF 替代(如卖出 VOO 后买 VV 或 SPY),或等待 31 天。
错误 4:只看当年税务,不看长期
最小化当前税务不等于最优长期结果。有时候在低税率年份主动实现一些利得("tax gain harvesting")可能更好——尤其是你当前处于 0% 或 15% 长期资本利得税率区间时。
错误 5:Mutual fund 的 average cost 陷阱
如果你持有 Vanguard mutual fund 并计划卖出部分份额,先检查 cost basis 方法。如果你之前有任何卖出使用了 average cost,你不能再改为 SpecID。
解决:在第一次卖出前就改为 SpecID。如果你持有的是 ETF 版本(如 VTI 而非 VTSAX),不受此限制。
六、与 RSU 税务的交互
RSU vest 时,vest 价格就是你的 cost basis。但 RSU 有一个额外的复杂度:
- RSU vest 时,你按普通收入缴纳了 vest 价格 × 股数的所得税
- 之后卖出时,利得或亏损是资本利得/亏损
- 如果你同一年 vest 并卖出,且价格变化不大,利得很小——此时 cost basis 方法影响不大
- 如果你持有 vest 的股票超过 1 年再分批卖出,cost basis 方法的选择就非常重要
| RSU 策略 | Cost Basis 建议 |
|---|---|
| Vest 后立即卖出 | 不需要选择(只有一个 lot) |
| 持有 1 年以上后分批卖出 | 用 SpecID 或 MinTax |
| 多年累积后一次性卖出 | 用 SpecID 选高成本 lot + 亏损 lot |
👉 想计算你的 RSU vest 后的实际到手金额?试试我们的工具:
七、行动清单
- 登录你的 taxable brokerage 账户,检查当前 cost basis 默认方法
- 如果是 FIFO,改为 MinTax/Tax Lot Optimizer 或 HIFO
- 列出你持有的主要股票/ETF 的所有税 lot(成本、日期、持有期)
- 在下次卖出前,评估是否应该用 SpecID 手动选择特定 lot
- 如果你使用 tax loss harvesting,确保了解 wash sale 规则
- 如果持有 Vanguard mutual fund,确认是否使用 average cost——如果是,考虑转向 ETF 版本
本文不是什么
- 本文不是税务建议。具体 cost basis 选择应结合你的整体税务规划
- 本文不涉及 401(k)/IRA 等退休账户——退休账户内不需要选择 cost basis
- 本文不讨论期权交易的 cost basis 规则(期权有额外的复杂规则)
官方来源与参考资料
- IRS Publication 550, "Investment Income and Expenses" — irs.gov
- IRS Publication 551, "Basis of Assets" — irs.gov
- Vanguard, "Cost Basis Methods Available at Vanguard" — investor.vanguard.com
- Charles Schwab, "Save on Taxes: Know Your Cost Basis" — schwab.com
- Financial Planning Association, "Likely Benefits from HIFO Accounting" — financialplanningassociation.org
- American Century, "Cost Basis: What It Means, Examples and Calculation" — americancentury.com
- Janus Henderson, "Understanding Cost Basis" — janushenderson.com
截至 2026 年 6 月核验。IRS 规则和券商政策可能更新,请以官方最新指引为准。
免责声明:本文由 规划师陈先生, CFP® 撰写并审核,仅供一般信息和教育目的,不构成法律、税务或财务建议。每个家庭的具体情况不同,建议在做出任何财务决策前咨询持牌的税务专业人员或财务顾问。税法和监管政策可能随时变化,请以最新的官方发布为准。



