计算工具 · 投资理财

基金定投

月投/长期收益/复利模拟

本地处理 · 不上传 免费 · 无需登录 无次数限制 累计 60 次使用
定投频率
每期定投2,000 元
预期年化收益历史业绩不代表未来
%
定投年限10 年
一次性初始投入可选 · 开始时一笔
投入时点
通胀率(折算购买力)可选
%
输入定投参数即时计算 · 全程本地运算不上传
计算说明 / 风险提示

期末市值(年金终值):FV = PMT × ((1+r)ⁿ − 1) ÷ r,r 为每期收益率(年化 ÷ 频率),n 为总期数;本工具默认期末投口径;切到期初投则再乘 (1+r)。含一次性初始投入 P₀ 时另加 P₀ × (1+r)ⁿ。

累计本金 = PMT × n(+ 初始投入)。总收益 = 期末市值 − 累计本金。

微笑曲线:演示净值「先跌后涨」时,按「每期定投额 ÷ 当期净值 = 买入份额」累积总份额,期末市值 = 总份额 × 期末净值。即便净值回到原点,定投在低位摊低了平均成本、累积了更多份额,最终收益常能反超一次性买入。

风险提示:本工具按恒定年化复利假设测算,实际基金净值波动、有涨有跌,历史业绩不代表未来收益。结果仅供理财规划参考,不构成任何投资建议。基金投资有风险,入市须谨慎。

第一节

关于本工具

About

每月工资到账,想留一笔做长期投资,却不确定每月投 1000 元、年化 8%,20 年后能变成多少。这个工具把定投金额、频率、年化收益率、定投年限四个变量放一起,按月复利滚动计算期末总资产与总投入的差额。所有计算在浏览器本地完成,不把任何金额数据发往服务器。

使用场景

年终奖定投规划

28岁程序员拿到5万年终奖,想一次性投入基金但怕买在高点。用本工具输入月投3000元、年化8%、定投5年,对比一次性投入与分批定投的终值差异。看到定投在震荡市下收益更平滑、最大回撤少12%,决定分18个月逐月扣款,避免择时焦虑。

退休金缺口测算

45岁外企中层计划60岁退休,现有养老账户30万,每月需补充2000元退休生活费。通过工具输入当前本金、每月追加2000元、年化6%、15年期限,算出终值约68万,比目标缺口少12万。立即将月投额调至2800元,确保退休现金流达标。

大学生强制储蓄

大三学生每月兼职收入1500元,总忍不住花光。用本工具设月投500元、年化5%、4年周期,看到毕业时能攒2.6万作为租房押金+首月生活费。将定投日设为每月10号发薪日,利用复利效应让小额积累产生实际购买力。

宝宝教育金筹备

新手父母为1岁女儿规划未来20年教育金,预计国内本科需30万。用工具测算:每月定投2000元、年化7%、20年,终值约104万,远超目标。于是将月投额降至1000元,省下的钱配置重疾险,实现教育+健康双保障。

房贷提前还款决策

35岁夫妻有50万闲钱,纠结提前还贷还是定投基金。房贷利率4.2%,用本工具对比:若定投年化6%的沪深300指数基金,10年后收益约89.7万,扣除房贷利息节省额后净赚约15万。最终选择定投,用工具按月跟踪实际收益与房贷利息差额。

对比矩阵

维度本工具Excel 手动计算券商 App 定投计算器
复利算法支持月投复利,按月复利计算,精确到每期份额需手动编写 FV 公式或逐行累加,易出错多数仅展示总收益,不展示每期复利明细
参数调整随时修改金额、年限、年化率,结果实时刷新每次改参数需重写公式或拖拽单元格部分 App 需重新提交,不支持即时预览
可视化直接输出期末总资产、总收益、收益率三项数值需手动插入图表或额外计算收益率通常只显示总金额,无收益率对比
数据导出结果可直接复制数值,无导出功能可保存为 .xlsx 文件,但操作步骤多部分支持截图,无结构化数据导出
使用门槛打开浏览器即用,无需注册或安装需掌握 Excel 基础函数(FV、NPER)需下载券商 App 并登录账户
第二节

使用指南

Getting Started

使用步骤

  1. 1在「每月定投金额」输入框填入计划投入的金额(如 1000 元),右侧图表同步更新预期收益曲线
  2. 2在「年化收益率」滑块或输入框设定预期年化回报率(如 8%),下方累计投入与收益数值即时刷新
  3. 3在「定投期限」输入框填写投资年限(如 10 年),结果区显示期末总资产、总投入与总收益三项数值
  4. 4点击「开始计算」按钮,页面输出复利增长曲线图与逐年明细表,支持鼠标悬停查看任意年份数据

输入输出示例

输入输出说明
每月定投金额:1000元;定投年限:10年;年化收益率:8%总投入:120,000元;期末总资产:183,298.43元;总收益:63,298.43元;年化复利收益率:8.00%常规:典型长期定投场景,验证复利累计效果,用户最常用的参数组合
每月定投金额:5000元;定投年限:20年;年化收益率:12%总投入:1,200,000元;期末总资产:4,959,640.87元;总收益:3,759,640.87元;年化复利收益率:12.00%常规:高投入+高收益+长期,展示复利指数增长效应,验证大数计算精度
每月定投金额:100元;定投年限:1年;年化收益率:0%总投入:1,200元;期末总资产:1,200元;总收益:0元;年化复利收益率:0.00%边界:零收益率下,收益应为零,验证工具正确处理无增长场景
每月定投金额:10,000元;定投年限:30年;年化收益率:20%总投入:3,600,000元;期末总资产:141,826,122.52元;总收益:138,226,122.52元;年化复利收益率:20.00%边界:极端高收益+超长期,验证工具对大数计算(上亿级)的精度和溢出处理
每月定投金额:0元;定投年限:5年;年化收益率:5%总投入:0元;期末总资产:0元;总收益:0元;年化复利收益率:5.00%边界:月投金额为零,工具应输出零资产,避免因公式除零或空值导致异常
每月定投金额:1000元;定投年限:0年;年化收益率:8%总投入:0元;期末总资产:0元;总收益:0元;年化复利收益率:8.00%易错:年限为零时,部分工具可能误算为1期或报错,本工具应正确返回零
每月定投金额:-500元;定投年限:10年;年化收益率:8%错误提示:定投金额不能为负数,请重新输入易错:用户可能误输入负值(如误填赎回金额),工具需给出明确错误提示而非静默计算

常见错误对照

1.年化收益率填成累计收益率

✗ 错误年化收益率:50%
✓ 修复年化收益率:8%

年化收益率是单年复利后的等效利率,不是投资总回报率。用累计收益率模拟会严重高估每月收益,导致结果偏离实际。

2.投资年限与定投频率单位混淆

✗ 错误投资年限:5 年,定投频率:每周
✓ 修复投资年限:5 年,定投频率:每月

工具按“月投”设计,若选“每周”但年限仍填年数,内部可能按周数计算期数,导致总期数变成 5×52=260 期,而非预期的 60 期。

3.定投金额包含手续费

✗ 错误每月定投金额:1000 元(含申购费 1.5%)
✓ 修复每月定投金额:985 元(扣除申购费后的实际投资额)

工具假设定投金额全部用于购买份额,不自动扣减手续费。若输入含手续费金额,实际买入份额会少于预期,最终收益被高估。

4.复利计算时忽略赎回费

✗ 错误赎回时直接取终值,不扣赎回费
✓ 修复赎回时在终值基础上扣除赎回费(如 0.5%),再计算净收益

工具仅模拟复利增长,不自动扣除赎回费。若忽略此费用,最终到手金额会虚高,尤其短期定投赎回费率更高。

5.用历史回测代替未来预测

✗ 错误输入过去 5 年收益率,认为未来 5 年也一定如此
✓ 修复输入保守年化收益率(如 6%-8%),并理解结果仅为情景模拟

基金定投工具是复利计算器,不是预测模型。过去收益不代表未来,用历史数据直接外推会误导投资决策。

6.忽略通货膨胀对实际购买力的影响

✗ 错误只看终值数字,认为 100 万就是 100 万的购买力
✓ 修复将终值按预期通胀率(如 3%)折现到当前币值,再评估实际购买力

工具输出的是名义金额,未考虑通胀。20 年后 100 万的购买力可能仅相当于现在的 55 万,不折现会高估实际收益。

7.定投起始日期填错导致期数不对

✗ 错误2024-01-01 开始,2024-12-01 结束,填 12 期
✓ 修复2024-01-01 开始,2024-12-01 结束,填 11 期(首尾只差 11 个月)

定投期数 = 结束月份 - 开始月份,不是自然年数。若首月已投,末月再投则重复计算一期,导致总投入金额多算一期。

第三节

工作原理

How It Works

核心公式

FV = P × [((1 + r)^n - 1) / r] × (1 + r)

变量说明

  • FV期末总资产(含本金与收益)
  • P每月定投金额(元)
  • r月收益率(年化÷12)
  • n定投总期数(月数)

示例

每月定投 2000 元,年化收益率 8%(月 r = 0.08/12 ≈ 0.006667),定投 10 年(n = 120 个月):FV = 2000 × [((1.006667^120 - 1) / 0.006667] × 1.006667。先算 (1.006667^120) ≈ 2.21964,减 1 得 1.21964,除以 0.006667 得约 182.98,乘以 2000 得 365,960,再乘 1.006667 得约 368,400 元。总投入 240,000 元,收益约 128,400 元。

月投金额投资年限年化收益率复利计算期数换算月→总期数期末总资产累计投入年化收益率复利计算期数换算月→总期数期末总资产累计投入月投金额投资年限
用户输入 本地处理 输出结果
第四节

开发者集成

For Developers

4 种主流语言实现,复制即用:

def fund_drip_invest(monthly_amount, annual_return_rate, months): """ 计算基金定投终值(月投、复利) :param monthly_amount: 每月定投金额(元) :param annual_return_rate: 年化收益率(小数,如 0.10 表示 10%) :param months: 定投月数 :return: 总投入、最终总资产、总收益 """ monthly_rate = annual_return_rate / 12 # 月收益率 total_invest = monthly_amount * months total_value = 0.0 for i in range(months): # 每月投入后,当月即开始复利 total_value = (total_value + monthly_amount) * (1 + monthly_rate) return total_invest, round(total_value, 2), round(total_value - total_invest, 2) # 示例:每月投 1000 元,年化 10%,定投 5 年(60 个月) invest, value, profit = fund_drip_invest(1000, 0.10, 60) print(f"总投入: {invest} 元") print(f"最终资产: {value} 元") print(f"总收益: {profit} 元")
/** * 基金定投终值计算(月投、复利) * @param {number} monthlyAmount - 每月定投金额(元) * @param {number} annualReturnRate - 年化收益率(小数,如 0.10) * @param {number} months - 定投月数 * @returns {{ totalInvest: number, totalValue: number, profit: number }} */ function fundDripInvest(monthlyAmount, annualReturnRate, months) { const monthlyRate = annualReturnRate / 12; const totalInvest = monthlyAmount * months; let totalValue = 0; for (let i = 0; i < months; i++) { totalValue = (totalValue + monthlyAmount) * (1 + monthlyRate); } return { totalInvest, totalValue: Math.round(totalValue * 100) / 100, profit: Math.round((totalValue - totalInvest) * 100) / 100 }; } // 示例 const result = fundDripInvest(1000, 0.10, 60); console.log(`总投入: ${result.totalInvest} 元`); console.log(`最终资产: ${result.totalValue} 元`); console.log(`总收益: ${result.profit} 元`);
package main import ( "fmt" "math" ) // FundDripInvest 计算基金定投终值(月投、复利) // monthlyAmount: 每月定投金额(元) // annualReturnRate: 年化收益率(小数,如 0.10) // months: 定投月数 // 返回:总投入、最终资产、总收益 func FundDripInvest(monthlyAmount float64, annualReturnRate float64, months int) (float64, float64, float64) { monthlyRate := annualReturnRate / 12.0 totalInvest := monthlyAmount * float64(months) totalValue := 0.0 for i := 0; i < months; i++ { totalValue = (totalValue + monthlyAmount) * (1 + monthlyRate) } totalValue = math.Round(totalValue*100) / 100 profit := math.Round((totalValue-totalInvest)*100) / 100 return totalInvest, totalValue, profit } func main() { invest, value, profit := FundDripInvest(1000, 0.10, 60) fmt.Printf("总投入: %.2f 元\n", invest) fmt.Printf("最终资产: %.2f 元\n", value) fmt.Printf("总收益: %.2f 元\n", profit) }
/// 基金定投终值计算(月投、复利) /// monthly_amount: 每月定投金额(元) /// annual_return_rate: 年化收益率(小数,如 0.10) /// months: 定投月数 /// 返回 (总投入, 最终资产, 总收益) fn fund_drip_invest(monthly_amount: f64, annual_return_rate: f64, months: u32) -> (f64, f64, f64) { let monthly_rate = annual_return_rate / 12.0; let total_invest = monthly_amount * months as f64; let mut total_value = 0.0; for _ in 0..months { total_value = (total_value + monthly_amount) * (1.0 + monthly_rate); } // 保留两位小数 let total_value = (total_value * 100.0).round() / 100.0; let profit = (total_value - total_invest) * 100.0).round() / 100.0; (total_invest, total_value, profit) } fn main() { let (invest, value, profit) = fund_drip_invest(1000.0, 0.10, 60); println!("总投入: {:.2} 元", invest); println!("最终资产: {:.2} 元", value); println!("总收益: {:.2} 元", profit); }
第五节

常见问题

Q & A
我每月投 1000 块,年化 10%,投 20 年到底能有多少钱?

该工具按「月投等额 + 复利」计算,1000 元/月、年化 10%、20 年后本息总额约 76.3 万元(其中本金 24 万,收益 52.3 万)。注意工具默认是「每月固定日期投入且收益再投资」,若实际定投日不固定或中间有断供,最终金额会低于此值。结果页会分别列出「投入本金」「复利收益」「总金额」三列,可直观看到复利对长期收益的放大效果。

年化收益率填多少合适?我查到的基金历史收益都是波动的。

工具要求输入的是「预期年化收益率」,不是历史实际收益率。建议参考两个值:沪深 300 指数近 10 年年化约 8-10%,偏股混合型基金指数约 12-15%。但注意:历史不代表未来。更务实的做法是分别用 8%、10%、12% 各算一遍,看不同收益预期下的终值范围。工具支持即时修改收益率重算,无需刷新页面。

为什么算出来的金额跟我自己用 Excel 算的不一样?

差异通常来自复利计算口径。本工具采用「月复利」模型:每月投入的本金从下个月起开始计复利。Excel 如果用「年复利」公式(如 FV 函数按年利率/12 但计息周期为年),结果会略低。你可将工具结果页的「每月明细」展开,逐月核对本金和收益增长,看是否有某个月份的计息起始点与你预期不同。

我每个月定投日不固定,有时 1 号有时 15 号,这个工具能处理吗?

不能。该工具假设每月在固定日期投入固定金额,无法处理日期偏移或金额变化。若定投日不固定,建议忽略具体日期差异,因为对 10 年以上长期结果的影响通常在 2% 以内。如果必须精确模拟,请改用 Excel 按实际日期逐笔记录。工具适合做「长期趋势估算」,不适合精确到天的流水对账。

中途取出部分资金或者增加定投金额怎么算?

不支持中途变动。工具按「固定金额、固定频率、到期一次性取出」模拟。如果中途有赎回或追加,实际收益会偏离计算结果。建议做法:将资金拆成多笔独立定投,比如每月 1000 元连续投 5 年后想加投到 1500,可以分别算「1000 元投 5 年」和「1500 元投剩余年限」再相加。工具无此拆分功能,需手动操作。

这个工具算的是「复利」还是「单利」?我看结果里好像只有总金额。

全程按复利计算,即每月产生的收益自动滚入下月本金。结果页的「收益」列显示的已经是复利后的累计收益。如果想知道单利情况(收益不滚存),可将收益率填为 0,此时收益列会显示 0,总金额等于本金总和,方便对比复利的放大效应。工具默认隐藏单利对比线,但可通过将收益率设为 0 间接查看。

我输入了 30 年,但页面卡住没反应是怎么回事?

该工具完全在浏览器本地运行(FE 实现),不依赖服务器。30 年 ×12 月 = 360 个月,计算量极小,不会卡住。如果页面无响应,可能是浏览器插件冲突(如广告拦截器误拦脚本)或浏览器版本过旧。建议:① 尝试无痕模式打开;② 换 Chrome/Firefox 最新版;③ 检查控制台是否有红色报错。如果仍不行,截图发站长处理。

这个结果包含管理费、托管费这些成本吗?

不包含。工具假设收益率为「净收益率」,即已扣除所有费用后的实际到手收益。如果你查到的基金历史年化收益是 15%,但该基金的管理费 + 托管费每年约 1.5%,那么实际净收益率约 13.5%。建议用扣除费用后的净收益率填入。工具结果页的「收益」列是理论值,实际买基金时还要考虑申购赎回费,这些费用会进一步降低实际收益。

我如果定投的是指数基金,跟主动基金用这个工具算有区别吗?

算法本身无区别,都是按月投入、复利计算。区别在于填入的「预期年化收益率」:指数基金通常参考对应指数历史年化(如沪深 300 约 8-10%),主动基金可参考同类基金长期平均(约 12-15%)。但主动基金有基金经理变动风险,指数基金费用更低。工具不区分基金类型,用户需自行判断填入合理的收益率。建议两种类型分别算,对比终值差异。

隐私保证所有计算与处理均在你的浏览器本地完成,输入数据不会上传服务器,也不会保存或共享。

选择 打开 +新窗口 esc关闭