TWR 时间加权报酬率计算机
排除出入金干扰的真实绩效 · 几何连乘 · 年化 · 纯前端计算,数据不离开你的浏览器
口径:每期报酬 r =(期末 − 期初 − 净入金)÷(期初 + 净入金),出入金视为期初发生;TWR =(1+r₁)(1+r₂)…(1+rₙ)− 1;年化 =(1+TWR)^(365/天数)− 1。简单报酬率 =(最终市值 − 期初市值 − 总净入金)÷(期初市值 + 总净入金),是 MWR 的粗略近似。
为什么需要 TWR?
只要你中途入金或出金,「(期末 − 总投入)÷ 总投入」这种简单报酬率就会失真:高点加码会把好绩效拉低,低点加码会把烂绩效美化,因为每笔钱在场内的时间不一样长。TWR(Time-Weighted Return,时间加权报酬率)是全球基金业评比经理人用的标准指针,做法是把出入金的影响「切」出去:
- 每次出入金就切一个子期间,算出该期间自身的报酬 r =(期末 − 期初 − 净入金)÷(期初 + 净入金)。
- 把所有子期间几何连乘:TWR =(1+r₁)(1+r₂)…(1+rₙ)− 1。
连乘之后,每一段报酬的权重只跟「时间顺序」有关,跟你当时投了多少钱无关 — 所以 TWR 衡量的是策略与标的本身的表现,简单报酬率(MWR 的近似)衡量的是你的钱实际的体验,两者本来就该不一样。
使用范例:高点加码的失真
期初投入 100,000,第一段行情 +50% 涨到 150,000;此时你加码 100,000(帐户变 250,000),第二段行情 −20%,期末剩 200,000:
- 第一期 r₁ =(150,000 − 100,000)÷ 100,000 = +50%
- 第二期 r₂ =(200,000 − 150,000 − 100,000)÷(150,000 + 100,000)= −20%
- TWR = 1.5 × 0.8 − 1 = +20%
- 简单报酬率 =(200,000 − 200,000)÷ 200,000 = 0%
市场这段期间其实给了 +20%,但因为你把大钱加在高点,个人实际打平。策略没问题,是择时吃掉了报酬 — 这个结论只有同时看 TWR 和简单报酬率才看得出来。完整原理与更多加密场景(跨所转帐、定期定额)见教学:TWR 是什么?为什么你的加密报酬率可能算错了。
常见问题
TWR 和简单报酬率为什么会不一样?
简单报酬率把所有入金都当成从头就在场内的本金,只要你中途加码或出金,时间权重就被扭曲。TWR 把时间切成「每次出入金之间」的子期间,先算每段各自的报酬,再几何连乘,所以结果只反映投资标的与策略本身的表现,和你何时进出金无关。
出入金应该填正的还是负的?
入金(转进这个投资组合的钱)填正数,出金(转出去的钱)填负数。本计算机假设出入金发生在该期期初,所以每一段的起算基准是「期初市值 + 净入金」。
什么时候该切一个新期间?
每次有出入金就切一段:出入金当下记录前一段的期末市值,新一段的期初市值 = 前一段期末市值,出入金填在新一段。没有出入金的期间可以合并成一段,结果不变 — 这正是 TWR 几何连乘的好处。