收益率是怎么计算的?
我们提供4个核心收益指标:
- 投资收益
- 持仓收益率
- 资金加权收益率
- 年化收益率
它们都遵循同一套原则,只是展示角度不同。
投资收益
- 投资收益 = 已实现盈亏 + 持仓盈亏 + 分红金额 - 分红税 - 佣金 - 印花税
持仓收益率
- 当前持仓标的的总市值 / 当前持仓的总成本
- 反映持仓(未卖出)「截止当前一共赚了多少 %」
投资收益 和 持仓收益率非常简单,下面重点介绍一下资产加权收益率、年化收益率。
一、统一原则:只看你「真的」投了多少钱
为了避免和券商现金账户各种细节纠缠,我们做了一个简化但合理的约定:
只关心你真的有钱进出的时候
- 买入、申购、加仓 → 你把钱投进来
- 卖出、赎回并把钱拿走 → 你把钱取出去
分红统一算进这笔投资的收益
- 现金分红:不管你有没有提现,我们都算进这笔投资的收益。
- 分红再投资:视为“用赚到的钱买回去”,不算你又掏了一次本金。
不依赖现金账户
- 我们只用三样数据:
- 交易记录(买入 / 卖出 / 分红再投)
- 当前持仓总市值
- 历史现金分红记录
- 我们只用三样数据:
期末总资产的定义:B = 当前持仓总市值 + 统计期间内累计现金分红
所有收益率,都是围绕这个 B 来算的。
二、资金加权收益率(Modified Dietz)
1. 它在算什么?
资金加权收益率 = 在考虑「每笔资金进出金额和时间」的前提下,这段时间整体赚了多少%。
特点:
- 中途加仓越早、金额越大,对结果影响越大;
- 中途只短暂进来又很快卖出的资金,影响相对更小;
很适合回答:
“从记账开始到现在,这笔钱整体一共赚了多少 %?”
2. 公式长什么样?
对某个统计区间 ([t_0, t_1]):
- (A):期初市值(区间一开始的总资产)
- (B):期末总资产(当前持仓市值 + 累计现金分红)
- (CF_i):第 (i) 笔外部资金流(你往里加钱为正,取出为负)
- (C):统计区间总时长(用天数也行)
- 第 (i) 笔资金流发生在距离期初 (D_i) 天时,则时间权重:
时间权重: W_i = (C - D_i) / C
越早投入,(W_i) 越大;越接近期末,权重越小。
三、年化收益率(XIRR)
1. 它在算什么?
资金加权收益率告诉你:
“这段时间整体赚了多少 %?”
年化收益率则告诉你:
“如果这笔钱每年都按同一个固定比例增长,那这个比例大概是多少?”
我们使用的是和 Excel XIRR 一致的算法。
2. 现金流怎么构造?
这里的现金流统一从「你的口袋」视角来看:
- 你把钱投进去 → 现金流为 负数(你付钱)
- 你把钱取出来 → 现金流为 正数
最后一天,我们假设你把所有资产一次性卖出,把 B = 当前持仓市值 + 累计现金分红
作为最后一笔正现金流。
3. XIRR 公式
假设:
- 第 0 笔现金流发生在起始日(天数为 0);
- 第 (i) 笔现金流金额为 (CF_i),从起始日到该日经过了 (t_i) 天;
- 用 365 天作为一年。
实际计算时由程序数值求解(和 ExcelXIRR一样),你不需要手算。
四、分红再投资在这套算法里怎么处理?
总结一下我们对分红再投资的处理:
对收益率(资金加权 / 年化)来说
- 分红再投 不计入新的外部现金流(不会增加本金);
- 它只会让你未来的持仓更多、期末总市值更高;
- 所有分红产生的收益,最终都包含在期末总资产 (B) 里。
你可以把它理解为:
分红再投资是“用赚到的钱再买回去”,
不会被当成你又掏了一次本金,但它会让你未来多赚更多。
五、小结
投资收益
- 投资收益 = 已实现盈亏 + 持仓盈亏 + 分红金额 - 分红税 - 佣金 - 印花税
持仓收益率
- 当前持仓标的的总市值 / 当前持仓的总成本
- 反映持仓(未卖出)「截止当前一共赚了多少 %」
资金加权收益率
- 使用 Modified Dietz 算法
- 考虑每笔资金进出的时间和金额
- 反映某一统计区间「整体一共赚了多少 %」
- 年化收益率
- 使用 XIRR(内部收益率)算法
- 基于同一组真实现金流
- 把整体表现折算成“每年固定增长 (%)”
你只需要记住:
- 我们只把你真实投进去 / 取出来的部分当作资金进出;
- 分红(包括再投资)全部算在收益里,不会漏;
- 手续费、印花税也都会算在成本里;
剩下的公式和计算,交给系统就好。