定投纳斯达克20年会有多少收益
背景最近网上看到有人问豆包定投的问题验证1豆包的计算正确吗我拿同样的问题问了DeepSeek感觉Deepseek不太准截至到2026年4月来计算投入金额应该在60w左右。验证2再问问ChatgptChatgpt投入金额与豆包计算结果相同但持有的总市值本金收益与豆包计算的结果要差一半到底哪个是对的验证3我让Chatgpt写了一段代码以 $纳指100ETF-Invesco(QQQ)$ 为标的看看20年究竟能收益多钱标的: QQQ投资起始: 2006-01-01当前日期: 2026-05-28累计投入本金: 602,000.00累计持仓份额: 5,652.1816当前价格: 729.45当前市值: 4,122,983.94累计收益: 3,520,983.94总收益率: 584.88%年化收益率(XIRR): 19.28%当前市值为412w收益额为352w足够直观20年接近6倍的收益年化收益率约20%非常强业绩超过了80%的基金经理。代码import yfinance as yf import pandas as pd from dateutil.relativedelta import relativedelta from scipy.optimize import newton # # 参数配置 # TICKER SPY FX_TICKER CNYX # USD/CNY START_DATE 2006-01-01 INITIAL_MONTHLY_RMB 1000 YEARLY_INCREMENT_RMB 150 # # 下载数据 # def download_price_data( ticker, start_date ): df yf.download( ticker, startstart_date, auto_adjustTrue, progressFalse ) if df.empty: raise ValueError(f{ticker} 没有下载到数据) else: print(f获取到{len(df)}条数据) # 修复 MultiIndex if isinstance(df.columns, pd.MultiIndex): df.columns df.columns.get_level_values(0) df df[[Close]].copy() df.index pd.to_datetime(df.index) return df # # 生成定投日期 # def generate_invest_dates(df): start_dt df.index.min() end_dt df.index.max() current pd.Timestamp( yearstart_dt.year, monthstart_dt.month, day1 ) invest_dates [] while current end_dt: invest_dates.append(current) current relativedelta(months1) return invest_dates # # 获取实际交易日 # def get_actual_trade_date(df, invest_date): future_dates df.index[df.index invest_date] if len(future_dates) 0: return None return future_dates[0] # # XIRR # def xnpv(rate, cashflows): t0 cashflows[0][0] return sum( cf / ((1 rate) ** ((t - t0).days / 365.0)) for t, cf in cashflows ) def xirr(cashflows, guess0.1): return newton( lambda r: xnpv(r, cashflows), guess ) # # 定投模拟加入汇率 # def simulate_dca_with_fx( etf_df, fx_df, invest_dates, initial_monthly_rmb, yearly_increment_rmb ): total_shares 0.0 total_invested_rmb 0.0 records [] cashflows [] for invest_date in invest_dates: actual_date get_actual_trade_date( etf_df, invest_date ) if actual_date is None: break # # 获取 ETF 价格 # etf_price_usd float( etf_df.loc[actual_date, Close] ) # # 获取汇率 # CNYX 表示: # 1 USD ? RMB # fx_rate float( fx_df.loc[actual_date, Close] ) # # 计算定投金额 # years_passed actual_date.year - 2006 monthly_rmb ( initial_monthly_rmb years_passed * yearly_increment_rmb ) # RMB - USD monthly_usd monthly_rmb / fx_rate # 买入份额 shares_bought monthly_usd / etf_price_usd total_shares shares_bought total_invested_rmb monthly_rmb # 现金流人民币 cashflows.append( (actual_date, -monthly_rmb) ) records.append({ date: actual_date, monthly_rmb: monthly_rmb, fx_rate: fx_rate, monthly_usd: monthly_usd, etf_price_usd: etf_price_usd, shares_bought: shares_bought, total_shares: total_shares }) # # 当前资产 # latest_etf_price float( etf_df[Close].iloc[-1] ) latest_fx_rate float( fx_df[Close].iloc[-1] ) # ETF 市值美元 current_value_usd ( total_shares * latest_etf_price ) # 转回人民币 current_value_rmb ( current_value_usd * latest_fx_rate ) profit_rmb ( current_value_rmb - total_invested_rmb ) cashflows.append( ( etf_df.index[-1], current_value_rmb ) ) annual_return xirr(cashflows) result { total_invested_rmb: total_invested_rmb, total_shares: total_shares, current_value_usd: current_value_usd, current_value_rmb: current_value_rmb, profit_rmb: profit_rmb, xirr: annual_return, records: pd.DataFrame(records) } return result # # 主程序 # def main(): print(下载 ETF 数据...) etf_df download_price_data( TICKER, START_DATE ) print(下载汇率数据...) fx_df download_price_data( FX_TICKER, START_DATE ) # 对齐日期 common_index etf_df.index.intersection( fx_df.index ) etf_df etf_df.loc[common_index] fx_df fx_df.loc[common_index] invest_dates generate_invest_dates( etf_df ) result simulate_dca_with_fx( etf_dfetf_df, fx_dffx_df, invest_datesinvest_dates, initial_monthly_rmbINITIAL_MONTHLY_RMB, yearly_increment_rmbYEARLY_INCREMENT_RMB ) # # 输出 # print( * 60) print(fETF: {TICKER}) print( * 60) print( f累计投入(RMB): f{result[total_invested_rmb]:,.2f} ) print( f累计持仓份额: f{result[total_shares]:,.4f} ) print( f当前市值(USD): f{result[current_value_usd]:,.2f} ) print( f当前市值(RMB): f{result[current_value_rmb]:,.2f} ) print( f累计收益(RMB): f{result[profit_rmb]:,.2f} ) print( f总收益率: f{result[profit_rmb] / result[total_invested_rmb] * 100:.2f}% ) print( f年化收益率(XIRR): f{result[xirr] * 100:.2f}% ) print( * 60) # # 启动 # if __name__ __main__: main()

相关新闻

SilentPatchBully终极修复指南:如何让《恶霸鲁尼》在Windows 10/11稳定运行

SilentPatchBully终极修复指南:如何让《恶霸鲁尼》在Windows 10/11稳定运行

SilentPatchBully终极修复指南:如何让《恶霸鲁尼》在Windows 10/11稳定运行 【免费下载链接】SilentPatchBully SilentPatch for Bully: Scholarship Edition (fixes crashes on Windows 10) 项目地址: https://gitcode.com/gh_mirrors/si/SilentPatchBully …

2026/9/30 10:08:41 阅读更多 →
赛马娘角色反应集制作指南:从素材收集到社区传播

赛马娘角色反应集制作指南:从素材收集到社区传播

这次我们来看一个赛马娘相关的反应集项目,标题直接点出了核心内容——路人马娘对训练员的"骚扰"行为产生的一系列有趣反应。这类内容在二次元社区中很受欢迎,特别是结合了赛马娘IP的独特角色设定和互动模式。从项目标题可以看出,这…

2026/10/13 7:42:20 阅读更多 →
lvs相关

lvs相关

一、什么是集群 集群Cluster Cluster: 集群是为了解决某个特定问题将堕胎计算机组合起来形成的单个系统 Cluster常见的三种类型: LB:LoadBalancing(负载均衡)由多个主机组成,每个主机只承担一部分访问HA:Hi…

2026/10/10 4:16:26 阅读更多 →

最新新闻

Agentic Engine工作空间:让AI工作流从个人经验沉淀为团队可复用的方法资产

Agentic Engine工作空间:让AI工作流从个人经验沉淀为团队可复用的方法资产

上个月,我们团队有个画面让我印象特别深:A同学花了两天调出一条多轮 Agent 工作流,能自动整理行业调研报告,跑完的结果相当能打。结果三天后,B同学在隔壁项目里需要做类似的事,翻遍共享盘也没找到可用的参考…

2026/10/14 10:47:56 阅读更多 →
Spring Boot整合Kafka实战:从环境搭建到可靠消息处理

Spring Boot整合Kafka实战:从环境搭建到可靠消息处理

前阵子帮某项目做技术升级,下单链路里有几步同步调用,高峰期每次请求都可能被下游拖到超时,线程池很快就堵满了。大家聊到解决方案时,几乎一致同意引入消息队列,而选型清单里排在最前面的就是Apache Kafka。Spring整合…

2026/10/14 10:47:56 阅读更多 →
Python列表操作完全指南:增删改查与实战技巧

Python列表操作完全指南:增删改查与实战技巧

1. Python列表操作完全指南:从增删改查到实战技巧作为一名Python开发者,列表(list)是我们日常编码中最常用的数据结构之一。掌握列表的各种操作方法不仅能提高编码效率,还能让代码更加优雅和高效。本文将全面解析Python列表的增删改查操作&am…

2026/10/14 10:47:56 阅读更多 →
SAP财务模块K/821报错处理与折旧码配置优化

SAP财务模块K/821报错处理与折旧码配置优化

1. SAP报错K/821问题解析与实战处理在SAP系统日常运维中,K/821属于典型的财务模块报错,通常出现在固定资产折旧运行(AFAB)或相关事务码执行过程中。这个报错直接关系到月结关账的顺利进行,我在处理某制造业客户年度资产…

2026/10/14 10:47:56 阅读更多 →
具身智能入门指南:从仿真到真机的软硬兼修学习路径

具身智能入门指南:从仿真到真机的软硬兼修学习路径

1. 具身智能到底在解决什么问题第一次听到“具身智能”这个词,很多人会下意识把它归到“机器人大模型”的范畴里,觉得无非是给机械臂接个语言模型,让它听懂人话去抓杯子。这个理解不算错,但只碰到了表皮。具身智能真正要啃的硬骨头…

2026/10/14 10:47:56 阅读更多 →
agent-skills:智能体技能化封装与复用实践指南

agent-skills:智能体技能化封装与复用实践指南

1. 从“agent-skills”这个标题说起:它到底在解决什么问题第一次看到“agent-skills”这个标题,我的直觉是:这大概率是一个围绕智能体能力封装、复用与编排的项目。事实也确实如此。过去一年里,我接触过不少团队在做智能体相关的落…

2026/10/14 10:46:54 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →