深入了解

FIFO 算法与计算逻辑说明

FIFO(先进先出)是国际通用的资本利得税计算方法。本文用 AAPL 实例讲解 TaxAlpha 如何进行双向 FIFO 匹配、手续费分摊、汇率换算。

本文解释 TaxAlpha 使用的 FIFO 资本利得计算方法,帮助你理解报告中的数字是如何得出的。

什么是 FIFO?

FIFO(First In, First Out) 即「先进先出」,是国际通用的资本利得税计算方法。

核心规则:卖出时,优先匹配最早买入的那笔。

举例

假设你先后三次买入了苹果(AAPL):

时间操作数量价格
2024-01买入10 股$150
2024-06买入10 股$180
2025-01买入10 股$200

2025-03 你卖出 15 股,价格 $220。FIFO 匹配过程:

  1. 先匹配 2024-01 买入的 10 股($150)→ 盈利 (220 − 150) × 10 = $700
  2. 再匹配 2024-06 买入的 5 股($180)→ 盈利 (220 − 180) × 5 = $200

总已实现盈利 = $700 + $200 = $900

剩余:2024-06 还剩 5 股,2025-01 的 10 股未动。

做多与做空

TaxAlpha 支持两种交易方向,各自独立维护 FIFO 库存:

做多(LONG) — 买入 → 卖出 先买后卖,赚取价格上涨差价。卖出时按 FIFO 匹配最早的买入。

做空(SHORT) — 卖空 → 买入平仓 先卖后买,赚取价格下跌差价。平仓时按 FIFO 匹配最早的空头仓位。

手续费分摊

交易手续费(佣金、平台费、印花税等)会按比例分摊到每笔匹配中:

  • 买入费用:加入成本基准(增加成本 → 减少盈利)
  • 卖出费用:从卖出收入中扣除(减少收入 → 减少盈利)

分摊公式

当一个买入批次被部分匹配时:

分摊费用 = 该批次总费用 × (匹配数量 / 买入总数量)

这样确保每笔匹配承担的费用与数量成正比。

计算流程

  1. 排序 — 所有交易按时间戳排序(与上传文件顺序无关)
  2. 逐笔处理 — 买入加入库存,卖出从库存中 FIFO 匹配
  3. 汇率转换 — 每笔匹配使用交割日的央行中间价折算人民币
  4. 费用分摊 — 手续费按匹配数量比例分摊
  5. 年度汇总 — 按卖出日期所在年份归入对应税务年度

常见疑问

Q:为什么我的盈亏和券商 App 显示的不一样? A:券商通常展示的是「账户浮盈」(包含未卖出的持仓),而 TaxAlpha 只计算「已实现盈亏」(已完成买卖的交易)。另外,券商不一定使用 FIFO 方法,也通常不做逐笔汇率换算。

Q:做空和做多会混在一起匹配吗? A:不会。TaxAlpha 维护两个独立的库存,做多和做空的 FIFO 匹配互不干扰。

Q:如果同一天有多笔买入,按什么顺序匹配? A:按交易时间戳精确排序。如果时间戳完全相同,按文件中出现的顺序。

延伸阅读