TWR 时间加权报酬率计算机

排除出入金干扰的真实绩效 · 几何连乘 · 年化 · 纯前端计算,数据不离开你的浏览器

期间数据(每次出入金切一期)
期初市值 (USD)本期净入金(出金填负)期末市值 (USD)

口径:每期报酬 r =(期末 − 期初 − 净入金)÷(期初 + 净入金),出入金视为期初发生;TWR =(1+r₁)(1+r₂)…(1+rₙ)− 1;年化 =(1+TWR)^(365/天数)− 1。简单报酬率 =(最终市值 − 期初市值 − 总净入金)÷(期初市值 + 总净入金),是 MWR 的粗略近似。

为什么需要 TWR?

只要你中途入金或出金,「(期末 − 总投入)÷ 总投入」这种简单报酬率就会失真:高点加码会把好绩效拉低,低点加码会把烂绩效美化,因为每笔钱在场内的时间不一样长。TWR(Time-Weighted Return,时间加权报酬率)是全球基金业评比经理人用的标准指针,做法是把出入金的影响「切」出去:

  1. 每次出入金就切一个子期间,算出该期间自身的报酬 r =(期末 − 期初 − 净入金)÷(期初 + 净入金)。
  2. 把所有子期间几何连乘:TWR =(1+r₁)(1+r₂)…(1+rₙ)− 1。

连乘之后,每一段报酬的权重只跟「时间顺序」有关,跟你当时投了多少钱无关 — 所以 TWR 衡量的是策略与标的本身的表现,简单报酬率(MWR 的近似)衡量的是你的钱实际的体验,两者本来就该不一样。

使用范例:高点加码的失真

期初投入 100,000,第一段行情 +50% 涨到 150,000;此时你加码 100,000(帐户变 250,000),第二段行情 −20%,期末剩 200,000:

市场这段期间其实给了 +20%,但因为你把大钱加在高点,个人实际打平。策略没问题,是择时吃掉了报酬 — 这个结论只有同时看 TWR 和简单报酬率才看得出来。完整原理与更多加密场景(跨所转帐、定期定额)见教学:TWR 是什么?为什么你的加密报酬率可能算错了

常见问题

TWR 和简单报酬率为什么会不一样?

简单报酬率把所有入金都当成从头就在场内的本金,只要你中途加码或出金,时间权重就被扭曲。TWR 把时间切成「每次出入金之间」的子期间,先算每段各自的报酬,再几何连乘,所以结果只反映投资标的与策略本身的表现,和你何时进出金无关。

出入金应该填正的还是负的?

入金(转进这个投资组合的钱)填正数,出金(转出去的钱)填负数。本计算机假设出入金发生在该期期初,所以每一段的起算基准是「期初市值 + 净入金」。

什么时候该切一个新期间?

每次有出入金就切一段:出入金当下记录前一段的期末市值,新一段的期初市值 = 前一段期末市值,出入金填在新一段。没有出入金的期间可以合并成一段,结果不变 — 这正是 TWR 几何连乘的好处。

相关工具

单笔买卖的赚赔用损益计算机;定期定额的平均成本与 DCA vs 一次全买对比用 DCA 计算机