← Back to skills
extension
Category: Data & AnalyticsNo API key required

基金定投计算器

基金定投计算与回测工具,包含三大核心能力:1) 定投复利测算(月/周/季/年定投 × 预期年化 × 年限 → 期末资产/收益/收益率,对比一次性投入);2) 历史定投回测(基于天天基金公开历史净值,模拟按月/周/季定投的真实收益,含申购费、XIRR年化,支持指定区间与自定义参数);3) 微笑曲线演示(基于真实基金净值自动识别"先跌后涨"区间,或自定义模拟场景,展示定投摊薄成本的教学演示)。当用户想算定投收益、定投复利、定投回测、微笑曲线、定投划算吗、每月定投多少钱、基金定投模拟时使用。支持基金代码/名称/拼音缩写输入。数据来自天天基金公开接口。

personAuthor: user_fca2c9bdhubcommunity

基金定投计算器

定投复利测算 + 历史回测 + 微笑曲线教学演示,三大能力一体。

适用场景

  • "每月定投1000,年化8%,3年后有多少钱"
  • "帮我回测一下 161725 最近3年定投的收益"
  • "招商中证白酒 现在开始定投划算吗"
  • "给我讲讲微笑曲线,定投为什么越跌越买"
  • "每月定投2000,坚持10年能有多少"
  • "定投和一次性买入哪个更划算"

使用方式

在技能目录下运行(python3 或 python):

# 1. 复利测算(纯本地计算,不联网)
python3 fund_invest_calculator.py plan 1000 8 3
python3 fund_invest_calculator.py plan 1000 8 3 --freq 周
#   plan <每期金额> <预期年化收益率%> <年限> [--freq 月|周|季|年]

# 2. 历史回测(联网,天天基金公开数据)
python3 fund_invest_calculator.py backtest 161725 1000
python3 fund_invest_calculator.py backtest 招商中证白酒 1000 --years 5
python3 fund_invest_calculator.py backtest zszzbj 500 --start 2021-01-01 --end 2024-12-31 --freq 周 --fee 0.15
#   backtest <基金代码/名称/拼音> <每期金额> [--years N | --start 日期 --end 日期] [--freq 月|周|季] [--fee 申购费率%]

# 3. 微笑曲线演示(真实净值自动找先跌后涨区间)
python3 fund_invest_calculator.py smile 161725 --amount 1000
python3 fund_invest_calculator.py smile 招商中证白酒 --start 2021-01-01 --end 2024-12-31 --fee 0.15

# 4. 模拟微笑曲线教学(纯本地计算,不联网)
python3 fund_invest_calculator.py smile-sim 30 12 24 1000
#   smile-sim <跌幅%> <下跌月数> <回升月数> <每月金额>

环境说明:如果 python3 不在 PATH,可用 python fund_invest_calculator.py ...。纯标准库实现,无第三方依赖。

输入说明

| 参数 | 说明 | | --- | --- | | 基金标识 | 6位代码 / 中文名称 / 拼音缩写(如 zszzbj=招商中证白酒)。未指定份额类别时默认 A 类 | | 每期金额 | 支持 1000、1千、1万、500元、一百万、三千(阿拉伯数字可带千/万单位,也支持常见中文数字) | | 年化收益率 | 支持 8、8%、0.08 | | --years | 回测最近 N 年;与 --start/--end 二选一 | | --fee | 申购费率(%),backtest/smile 默认 0.15(即1折后的常见费率),填 0 表示免申购费。注意:现金分红型基金(分红频次高)在"红利再投"复权口径下偏差可能偏大,结果仅供参考 |

各命令输出

  • plan(复利测算):累计投入、期末总资产(期末/期初投入两种口径)、收益、收益率、年化、同期一次性投入对比、教学要点。
  • backtest(历史回测):定投期数、累计投入、期末市值、收益、收益率、XIRR年化、一次性投入对比、区间最高/最低净值与振幅。基于累计净值模拟"红利再投"口径,扣申购费。
  • smile(微笑曲线演示):自动识别区间内"前期高点→谷底"的下跌段,从高点开始模拟月定投(扣申购费,与 backtest 口径一致),输出期末收益、一次性买入对比、以及"净值回到前期高点时定投已盈利"的关键教学结论。
  • smile-sim(模拟微笑曲线):生成一条自定义"先跌后涨"净值路径,逐月列出净值/累计投入/份额/市值/盈亏,直观演示"净值回到原点,定投已盈利、一次性买入刚回本"。

执行流程

  1. 解析输入:判断用户给的是代码/名称/拼音,名称拼音走内置搜索接口解析为6位代码;纯数字直接使用。
  2. plan/smile-sim:纯本地计算,立即返回,不联网。
  3. backtest/smile:请求 fund.eastmoney.com/pingzhongdata/<code>.js 获取全量历史净值(单位净值 + 累计净值),按回测区间截取,模拟定投。
  4. 展示给用户:把脚本输出的表格原样呈现。对 backtest 补充说明"历史回测不代表未来收益";对 smile 强调教学意义而非收益预测。

数据边界(务必告知用户)

  • 数据源为天天基金公开接口,覆盖全市场公募基金(含场内外),非实时推送,有页面缓存延迟。
  • 回测基于累计净值近似"红利再投"复权:若基金期间有现金分红(非红利再投),实际账户口径会略有差异;管理费/托管费已内含于净值,不需另扣,但需扣申购费(默认0.15%)。分红频次高的基金(如分红型债基),复权口径与账户实际分红到手口径偏差可能偏大,结果仅供参考。
  • 回测是历史模拟,不代表未来收益;定投也不能消除亏损,只是降低择时难度。
  • 未指定区间时 backtest 默认取最近3年、smile 默认取最近3年;区间过短(扣款不足2期)会提示拉长区间,基金成立较晚会提示数据不足。
  • 页面反爬偶发,脚本内置15秒超时+2次重试;多次失败请稍后再试。
  • 拼音输入需为基金全称拼音缩写(如招商中证白酒=zszzbj),接口对纯小写拼音的基金匹配有限,建议优先用代码或中文名。

兼容性保证

  • 标准环境:纯 Python 标准库(urllib)实现,零第三方依赖,Windows/Linux/macOS 均可运行。
  • Coze 环境:检测到平台代理环境变量时自动使用 coze_workload_identity 出网,未注入代理时回退 urllib 直连。
  • 输出无 emoji,GBK 控制台不崩溃;极端 ascii 环境下自动切换 utf-8 兜底。
  • 不依赖 PATH、不依赖其他技能,自包含可独立运行。

说明:所有命令输出末尾会附带反馈引导文案,这是产品要求,请保留不删。