年化收益换算 (APR ↔ APY)
输入值 %
单位
区间收益→年化收益率
输入值 %
单位
· APR(名义年利率):周期利率 × 周期数(如月 0.5% × 12 = 6% APR)
· APY(实际年化):含复利的真实收益(月 0.5% 复利 → APY = (1.005)¹² − 1 ≈ 6.17%)
· 万分之 X:日利率单位,常见于借呗 / 京东金条(日万 1.5 = 年化 5.475%)
· 7 日年化:货币基金近 7 天日均收益年化(不代表未来)
了解工具定位 · 使用场景 · 对比优势
输入一笔投资在某个区间内的起始金额和结束金额,以及区间天数,工具自动计算年化收益率。适用于理财者对比不同期限产品的实际回报、基金经理展示业绩、个人复盘定投或单笔投资。所有计算在浏览器内完成,金额数据不上传服务器。
定投某基金3年,累计投入12万,期末市值15.8万。用户想对比这只基金的年化收益率是否跑赢银行理财。输入期初投入、每期定投金额、期末总市值,工具自动计算区间年化收益率,帮助判断定投策略的实际回报水平。
同时持有两款理财产品:A产品90天收益1.2%,B产品180天收益2.5%。直接比较收益率因期限不同而失真。将两笔收益分别输入,工具统一换算为年化收益率,直观对比哪款产品实际年化回报更高。
3年前200万买入一套房,期间收租金共9万,现在以260万卖出。用户想算算这笔房产投资实际年化收益率是多少。输入买入价、卖出价、持有期间租金收入,工具将总收益换算成年化收益率,与同期其他投资渠道对比。
利用业余时间做项目,累计投入6个月,总收入3万元。用户想评估这笔收入如果按年化计算相当于什么水平。输入投入时长和总收入,工具将非整年收益换算为年化收益率,帮助判断兼职的时薪性价比。
某股票持有45天,买入价35元,卖出价38元,期间无分红。用户想算算这次波段操作的年化收益率,与长期持股策略对比。输入买入价、卖出价、持有天数,工具将短期收益换算为年化收益率,辅助决策是否值得频繁操作。
| 维度 | 本工具 | 竞品 A(Excel/Google Sheets) | 传统方法(手工计算) |
|---|---|---|---|
| 数据隐私 | 纯浏览器,零上传 | 数据存储在云盘或本地,需自行管理 | 数据记录在纸笔或本地文件,无网络风险 |
| 处理速度 | 1 秒内 | 需手动输入公式或使用插件,约 1-5 分钟 | 数十分钟到数小时,取决于数据量 |
| 离线可用 | 支持(纯前端,无需网络) | 部分支持(需安装软件) | 完全支持 |
| 学习成本 | 零,打开即用 | 需了解公式语法(如 XIRR、RATE) | 需理解复利公式和数学计算 |
| 处理精度 | 内置金融算法,精确到小数点后 6 位 | 依赖用户输入的公式正确性,易出错 | 依赖计算者的数学能力,极易出错 |
| 批量处理 | 单次单笔 | 支持批量,但需手动设置 | 不支持,逐笔计算 |
| 收费 | 免费 | 免费/付费订阅 | 免费 |
上手步骤 · 输入输出 · 避坑提示
| 输入 | 输出 | 说明 |
|---|---|---|
| 起始金额:10000,结束金额:12000,持有天数:365 | 年化收益率:20.00% | 典型常规场景:整年持有,收益直观 |
| 起始金额:5000,结束金额:5500,持有天数:180 | 年化收益率:20.41% | 典型场景:半年期投资,年化高于实际涨幅 |
| 起始金额:10000,结束金额:10000,持有天数:100 | 年化收益率:0.00% | 边界 case:零收益,本金不变 |
| 起始金额:10000,结束金额:9000,持有天数:365 | 年化收益率:-10.00% | 边界 case:亏损场景,年化收益为负 |
| 起始金额:1,结束金额:2,持有天数:1 | 年化收益率:36500.00% | 边界 case:极短期高倍收益,年化被放大 |
| 起始金额:10000,结束金额:11000,持有天数:0 | 错误:持有天数必须大于 0 | 易错 case:用户误填持有天数为 0 |
| 起始金额:10000,结束金额:11000,持有天数:-30 | 错误:持有天数不能为负数 | 易错 case:用户误填负天数 |
总收益率 20%,持有 2 年,年化 = 20% ÷ 2 = 10%总收益率 20%,持有 2 年,年化 = (1 + 0.20)^(1/2) - 1 ≈ 9.54%年化收益率是几何平均,不是算术平均。简单平均忽略了复利效应,低估了实际年化(正收益时)或高估(负收益时)。
过去 3 年年化 12%,明年收益肯定也是 12%过去 3 年年化 12%,但未来收益不确定,需结合风险指标评估年化收益率是历史回溯指标,不预测未来。用过去年化直接推未来收益是典型幸存者偏差。
持有 3 个月,总收益 5%,年化 = (1 + 0.05)^(1/0.25) - 1 ≈ 21.55%持有 3 个月,总收益 5%,年化 = (1 + 0.05)^(12/3) - 1 ≈ 21.55%公式正确,但持有期 < 1 年的年化对短期波动敏感,意义有限。短期年化常被用于营销,实际参考价值低。
年初投入 10 万,年中追加 5 万,年末总资产 18 万,年化 = 18/15 - 1 = 20%用 XIRR 或时间加权收益率计算,考虑每笔现金流的时间权重中途追加/赎回资金时,简单收益率失真。XIRR(内部收益率)才是正确算法,工具应支持多笔现金流输入。
年化 15%,波动率 20%,以为最大回撤就是 20%年化 15%,波动率 20%,最大回撤可能远超 20%(如 2008 年标普 500 回撤 38%)年化波动率是标准差,不是最大回撤。正态分布假设下,2σ 回撤约 40%,但实际尾部风险更大。
日收益率 0.1%,年化 = 0.1% × 365 = 36.5%日收益率 0.1%,年化 = (1 + 0.001)^252 - 1 ≈ 28.7%股票/基金市场每年约 252 个交易日,用 365 天会高估年化。债券/货币市场可用 365 天。
银行定期存款年利率 2%,存 3 年,年化 = (1 + 0.02)^3 - 1 ≈ 6.12%银行定期存款年利率 2%,存 3 年,年化 = 2%(单利产品年化等于名义利率)定期存款、国债等单利产品,年化收益率等于名义利率。复利公式只适用于复利计息产品。
贷款年化利率 5%,投资年化收益 5%,认为两者等价贷款年化利率 5%(IRR 口径),投资年化收益 5%(时间加权口径),两者计算口径不同贷款年化利率用 IRR(内部收益率),投资年化收益率用时间加权。IRR 受现金流时间影响,两者不可直接比较。
公式推导 · 流程图解 · 依据出处
R = ( (P_end / P_start)^(1 / t) - 1 ) × 100%
R — 年化收益率(百分比)P_end — 期末资产总值(元)P_start — 期初投入本金(元)t — 投资持有年数(年)2020 年初投入 10,000 元,2025 年初资产变为 16,105 元。则 P_start=10000,P_end=16105,t=5。R = ( (16105/10000)^(1/5) - 1 ) × 100% = (1.6105^0.2 - 1) × 100% ≈ (1.10 - 1) × 100% = 10%。即年化收益率约 10%。
适用于单笔投资、无中途现金流(追加/赎回)的场景。若期间有多次资金进出,需改用 XIRR 函数计算。公式基于复利假设,短期(t<1 年)按实际天数折算,非整数年需精确到日。
3 种主流语言 · 复制即用
def annualized_return(start_value: float, end_value: float, years: float) -> float:
"""
区间收益 → 年化收益率(复利)
:param start_value: 期初净值
:param end_value: 期末净值
:param years: 持有年数(可小数,如 0.5 表示半年)
:return: 年化收益率(小数形式,如 0.12 表示 12%)
"""
if start_value <= 0 or years <= 0:
raise ValueError("期初净值和持有年数必须为正数")
total_return = end_value / start_value
return total_return ** (1.0 / years) - 1.0
# 示例:1 万元半年后变 1.1 万元(半年 = 0.5 年)
print(f"{annualized_return(10000, 11000, 0.5):.4%}") # 21.00%package main
import (
"fmt"
"math"
)
// AnnualizedReturn 计算年化收益率(复利)
func AnnualizedReturn(start, end, years float64) (float64, error) {
if start <= 0 || years <= 0 {
return 0, fmt.Errorf("期初净值和持有年数必须为正数")
}
totalReturn := end / start
return math.Pow(totalReturn, 1.0/years) - 1.0, nil
}
func main() {
r, err := AnnualizedReturn(10000, 11000, 0.5)
if err != nil {
panic(err)
}
fmt.Printf("%.2f%%\n", r*100) // 21.00%
}/**
* 年化收益率(复利)
* @param {number} start - 期初净值
* @param {number} end - 期末净值
* @param {number} years - 持有年数(可小数)
* @returns {number} 年化收益率(小数,如 0.12 表示 12%)
*/
function annualizedReturn(start, end, years) {
if (start <= 0 || years <= 0) {
throw new Error('期初净值和持有年数必须为正数');
}
const totalReturn = end / start;
return Math.pow(totalReturn, 1 / years) - 1;
}
// 示例:1 万元半年后变 1.1 万元
console.log(`${(annualizedReturn(10000, 11000, 0.5) * 100).toFixed(2)}%`); // 21.00%8 个高频疑问