基于每周定投的累计收益率计算方法技术求助
每周定投累计收益率计算方案
解决每周定投的累计收益率问题,核心是跟踪三个关键指标:累计持仓量、累计总投入、每日资产净值,再通过这三个指标计算基于总投资额的累计收益率。具体步骤和代码如下:
核心逻辑
- 标准化日期格式,避免后续计算出错
- 累计总投入:每日定投金额的累加,即截止当日的所有投入总和
- 累计持仓量:每日买入BTC数量的累加,即当前持有的总BTC数
- 每日资产净值:累计持仓量 × 当日BTC收盘价,也就是当前总资产价值
- 累计收益率:
(当日资产净值 - 累计总投入) / 累计总投入,反映从第一次定投到当日的整体回报
R代码实现
# 读取数据 df = read.csv("https://www.dropbox.com/s/11puqepmx2w0vbg/temp25.csv?dl=1") # 标准化日期格式 df$ref.date = as.Date(df$ref.date, format = "%m/%d/%Y") # 计算累计总投入 df$cumulative_investment = cumsum(df$Total.invested) # 计算累计BTC持仓量 df$cumulative_btc = cumsum(df$bought) # 计算当日总资产价值 df$asset_value = df$cumulative_btc * df$BTC_close # 计算累计收益率(保留8位小数) df$cumulative_return = round((df$asset_value - df$cumulative_investment) / df$cumulative_investment, 8) # 查看前22行结果 head(df, 22)
结果说明
以1/8/2022为例:
- 累计总投入:140 + 140 = 280
- 累计持仓:0.0029358 + 0.0033546 = 0.0062904
- 当日资产净值:0.0062904 × 41733.94 ≈ 262.53
- 累计收益率:
(262.53 - 280)/280 ≈ -0.06239,这是合并所有投入与持仓后的真实累计回报,和你原数据中的单期收益率逻辑不同——该计算方式完全符合定投累计收益的实际意义。
内容的提问来源于stack exchange,提问作者Ahdee
相关产品推荐
相关产品推荐

