定投最大回撤怎么算:追加本金为什么会掩盖跌幅
定投最大回撤不能只拿不断追加后的账户余额来算。若要衡量资金本身经历的下跌,应先剔除入金、出金的影响,形成一条净值曲线,再逐日比较净值与此前最高点:最大回撤 = 最大的(1 − 当期净值 ÷ 此前及当期最高净值)。本文用净值法演算,回撤记为正的损失幅度。
它与「相对累计投入亏了多少」是两个指标。下面同一笔假设定投,净值最大回撤为 50%,而在所列观察点中,相对累计本金最深浮亏为 21.67%;差别就在分母和追加资金的处理。
账户余额一直增加,为什么仍可能有很大回撤?
假设你分三次各投入 1,000 USDT,到账就按当时价格买入 BTC。期间只持有 BTC,没有借贷、杠杆、利息或提现。为了看清资金流的影响,先不计手续费,也允许小数币量;下面的价格和观察点全部为演算设定,不是某段历史行情。
第一次买入价是 50,000 USDT,买到 0.02 BTC。价格涨到 60,000 时,账户值 1,200;随后跌到 40,000,原来的币只值 800。此时再投入 1,000 并买入 0.025 BTC,账户变成 1,800。余额比上次记录的 1,200 多了,但其中有 1,000 是你新放进去的钱。
| 观察时点 | BTC 价格 | 累计投入 | 账户市值 | 剔除入金后的净值 |
|---|---|---|---|---|
| 第一次买入后 | 50,000 | 1,000 | 1,000 | 1.00 |
| 中途涨价,未追加 | 60,000 | 1,000 | 1,200 | 1.20 |
| 第二次买入后 | 40,000 | 2,000 | 1,800 | 0.80 |
| 第三次买入后 | 30,000 | 3,000 | 2,350 | 0.60 |
| 最后一次观察,未追加 | 45,000 | 3,000 | 3,525 | 0.90 |
表内价格、市值和投入均以 USDT 计;净值是无单位的记账数,初值设为 1。第三次买入前,0.045 BTC 值 1,350 USDT,加上新投的 1,000 后为 2,350。币量变成约 0.07833333 BTC,最后按 45,000 估值,就是 3,525 USDT。计算使用未四舍五入的币量。
只拿表里五个追加之后的余额算回撤,得到的是 0%:1,000、1,200、1,800、2,350、3,525 一路增加。这既漏掉了入金前的下跌,又把新本金当成了账户表现。第五列记录的才是本文要比较的、剔除外部入金影响的净值路径。
追加本金时,怎样让净值不被抬高?
可以把自己的账户想成一个只用于记账的小份额池。这里的「份额」不是 BTC 数量,也不是买了另一种产品。
- 起初投入 1,000 USDT,净值设为 1,于是记 1,000 份。以后用账户市值 ÷ 总份额求净值。
- 价格涨到 60,000,账户 1,200 USDT、份额仍是 1,000,净值为 1.20。跌到 40,000 时,入金前市值 800,净值便降为 0.80。
- 第二笔 1,000 入金,按入金前净值新增 1,000 ÷ 0.80 = 1,250 份。总份额 2,250,入金后市值 1,800,净值仍是 0.80。
- 价格再跌到 30,000,入金前市值 1,350,除以 2,250 份得 0.60。第三笔 1,000 增加约 1,666.6667 份。总份额约 3,916.6667,入金后市值 2,350,净值仍为 0.60。
一般地,净值为正且入金本身没有费用时,新份额 = 入金金额 ÷ 入金前净值。如果净值已经归零,这个除法不能继续用;账户全额取空后重新开始的记录,也应分段计算,不能硬接一条曲线。
这样记账的理由可以直接验算:原市值等于「原份额 × 净值」,入金又同时增加等值的份额,所以入金那一瞬间的净值不变。买入产生的手续费则会减少资产,不能当作入金一样消掉。若卖币后 USDT 仍留在你定义的这个账户内,只是账户内部换了资产,也不是外部提现。
这个处理对应时间加权收益的思路:把外部资金流与投资涨跌分开。Portfolio Performance 官方手册的时间加权收益说明要求按现金流拆分期间,再把各段收益连接起来;精确计算需要现金流发生前的估值。这里用份额记账展示同一个原理,不需要先计算年化收益率。
最大回撤怎么算,为什么不能拿全段最高和最低直接相减?
对每一个观察时点,先找截至当时出现过的最高净值,再算相对它跌了多少。本文把回撤写成正的损失幅度:
当期回撤 = 1 − 当期净值 ÷ 此前及当期最高净值
最大回撤 = 所有观察时点中最大的当期回撤
本例净值依次是 1.00、1.20、0.80、0.60、0.90。对应的回撤是 0%、0%、约 33.33%、50%、25%。最大的一段从 1.20 到 0.60,算式是 1 − 0.60 ÷ 1.20 = 50%。最后虽然反弹到 0.90,已经发生过的最大回撤仍为 50%,最后时点相对旧高点的回撤才是 25%。
高点必须在低点之前。假如另一条曲线只有 1.00 → 0.80 → 1.20,最大回撤是从 1.00 跌到 0.80 的 20%,不能拿后来才出现的 1.20 和前面的 0.80 算成 33.33%。
这两个公式定义的是给定观察序列中的回撤。用日末价格算,就是日末净值的最大回撤;若日内曾经跌得更深而收盘回升,日末数据不会保留那个低点。每月只看一次的结果,也不能直接与逐日观察的结果比较。
回撤 50%,是不是代表投入的 3,000 已经亏了一半?
不是。第三次买入后,累计投入 3,000,账户值 2,350,实际少了 650 USDT,相对累计投入的浮亏为 650 ÷ 3,000 ≈ 21.67%。这个数的分母是投入本金;50% 的分母则是此前的净值高点,两者回答不同的问题。
最后账户值 3,525,相对累计投入赚了 525,即 17.5%。这是期末对本金的结果,中途净值跌去一半的经历仍然存在。记录时把三项分开:
- 净值最大回撤:50%。
- 在所列观察点中,相对累计投入最深浮亏:650 USDT、21.67%。
- 期末盈亏:+525 USDT。
还有一个容易误会的地方:在本文这种每笔到账资金立即全部买同一种币、无费用、没有闲置现金的设定下,剔除现金流后的净值会跟着币价同比变化。因此,净值最大回撤并不能单独证明某个定投日期比另一个好,也不能用来声称「分批买入把币价回撤降低了」。要看分批投入对你资金的实际影响,还得一起看投入时间、金额和对应盈亏。平均买入成本与回本价,另见定投平均成本的计算。
给定投回测补回撤记录,需要留下哪些数?
先固定账户范围:只算已买到的币,还是把计划内尚未买币的 USDT 也放进来。两种范围都能计算,但不能一段包含现金、另一段又排除现金。多种资产要在同一时点换算成同一种计价单位;用 USDT 记账的下跌幅度,不自动等于用人民币衡量的下跌幅度。
- 入金记录:每笔金额与发生时间,以及入金前一刻的账户市值。缺少这个估值时,不能声称已精确消除了资金流影响。
- 资产记录:币量、现金余额、估值价格与时点;手续费按实际扣除的币种和金额进入资产变化,不把费用加回去美化结果。
- 净值记录:每次增加或减少份额后保留总份额;在一致的观察频率下算净值、累计最高净值及当期回撤,最后取最大值。
若只有每天的汇总数,可以采用明确的日内时点假设来近似。上述官方手册使用「入金发生在日初、出金发生在日末」的约定,其日收益因子为(日末市值 + 当日出金)÷(前一日末市值 + 当日入金)。实际入金发生在盘中且币价波动明显时,这个约定与按真实时点估值可能有差异,回测说明里应写清。
本站定投回测器标出的是每月买入后账面收益率最低的月份,没有计算净值最大回撤。需要回撤数据时,可按本文的份额法另行计算。起止日期与收益率如何影响解读,见比特币定投回测怎么看。
比较两份回撤结果前,先核对观察区间、资金流、现金范围和费用处理。
方法来源:Portfolio Performance:收益衡量与外部资金流,以及上文的时间加权收益章节,查阅于 2026-10-27。表格为本文假设演算;它解释计算方法,不代表 BTC 的历史最大回撤或未来亏损上限。