加密货币利润计算器

填一个日收益率和持有天数,同时得到单利、日复利、连续复利三套结果。三个数不一样,差额在第 30 天就超过 9.9 个USDT——这正是加密行情波动大时「看着日收益不高、持有一年却翻倍」的来源。

日复利总额 (1+r)ⁿ10459.93+4.5993%
单利总额 1+rn10450.00+4.5000%
连续复利总额 e^(rn)10460.28+4.6028%
复利比单利多9.93占本金 0.0993%
天数单利 1+rn日复利 (1+r)ⁿ连续 e^(rn)日复利涨幅复利比单利多
110015.0010015.0010015.010.1500%0.00
710105.0010105.4710105.551.0547%0.47
3010450.0010459.9310460.284.5993%9.93
9011350.0011444.2111445.3714.4421%94.21
18012700.0013096.9913099.6430.9699%396.99
36515475.0017282.1617289.2572.8216%1807.16

提示:三个输入框里按裸 Enter 立即重算;结果区上方的四张卡与下方表格第 30 行、正文「完整示例」一节的数字完全一致。

使用方法

  1. 页面打开时已经填好示例:日收益率 0.15%、本金 10000 USDT、持有 30 天,四张结果卡与表格前 6 行直接给出结果,不用先点按钮。
  2. 「日收益率 r」填的是当日收盘价 ÷ 前一日收盘价 − 1 得到的那个百分比,可以填负数(跌)。加密行情 7×24 小时全年无休,所以下面默认按 365 天折年。
  3. 「年化天数口径」选 365 还是 360,只影响结果提示区里折年化那一句的取用天数,不影响表格前五列的原始总额。加密用 365,债券利息常用 Actual/360;两种口径的实测差异见正文「输入范围与对照表」。
  4. 点「计算」或在任一输入框按 Enter 重算。「载入示例」把三个值恢复成0.15 / 10000 / 30;「导出 CSV」把当前对照表存成带 BOM 的表格文件,Excel 打开中文不乱码;「复制结果」把三套总额抄到剪贴板。
  5. 输入非法时(比如日收益率填 80,超出 ±50 的范围)会在按钮下方给出具体提示,写明是哪个字段、允许什么范围,不会静默归零。

这个加密货币利润计算器能解决什么问题

加密货币利润计算器把「日收益」翻译成「年收益」时最容易被数字骗。交易所界面常只显示一个折年数字,但同一条 r 在 365 与 360 两种口径下差 1.7719%(r = 0.15% 时),r 越大差得越多;本页把两种口径并列算出来,差多少一眼可见。

二是判断复利到底有没有起作用。很多人口头说复利,实际算的是单利。本页把 1 + r·n、(1+r)ⁿ、e^(r·n) 三条公式的结果并排放:r = 0.15%/日 时,第 30 天三者差 9.93 USDT,到第 365 天差 1807.16 USDT(本金才 10000),用单利估算会系统性低估。

三是算清楚跌回原点要多少。涨 100% 之后不是跌 50% 就能回到原点,而是要跌 50%(因为是乘性);反过来先跌 50% 再涨 100% 只能回到 75%。加密货币利润计算器在持有天数与翻倍/回本两处都把这个不对称算出来。

四是给浮点溢出划一条明确的线。日收益率 50% 配 3650 天会让 (1.5)^3650 变成 Infinity,本页在它溢出之前先报错,而不是把 Infinity 显示给你。

本页不做这些事:不取实时行情、不接入交易所 API、不给买卖建议、不算手续费与提现成本。如果你要的是「本金投进去、期间加减仓、最后卖出到手多少钱」的完整流水账,用投资回报率计算器;只想看年化收益率本身,用年化收益率计算器;要算的是「一年期按复利滚完变成多少」,用复利计算器。

原理:为什么同一个 r 会有三个答案

设日收益率 r、持有 n 天、本金 P₀。三条公式的区别只在「每天的收益是否以变化后的本金为基数」这一句话上。

单利 P = P₀ · (1 + r·n):每天赚的钱都按原始本金算,30 天就是 30 份固定的 r·P₀。它是最容易被误用的一个——很多人口中的「日收益 0.15%,30 天 4.5%」其实是单利,而行情软件给的 4.5993% 是复利。

日复利(离散) P = P₀ · (1 + r)ⁿ:第 i 天的收益基数是 P₀(1+r)^(i−1),逐日滚存。这是交易所与行情软件最常用的口径,因为它就是「每天把前一天的收盘价当新基数」的字面实现。

连续复利 P = P₀ · e^(r·n):把离散更新换成微分方程 dP/P = r·dt 的解,是学术与期权定价里的口径。注意它的 r 是瞬时连续复利率,与「每日百分比涨跌」不是同一个量。

两者的差是可以算出来的小量。把 e^(rn) 与 (1+r)ⁿ 相除取对数:rn − n·ln(1+r) = n·(r − ln(1+r))。当 r 很小时 ln(1+r) ≈ r − r²/2,所以两者差约 n·r²/2。r = 0.0015、n = 30 时这个估算给出 30 × 0.0015²/2 = 0.00003375,实测相对偏差 0.003372%,量级吻合。这解释了为什么在币圈讨论里,用 e^(rn) 还是 (1+r)ⁿ 几乎总能吵起来——两者的差在多数场景下远小于行情本身的噪声。

反过来,单利与复利的差不可忽略。由 (1+r)ⁿ ≥ 1 + rn(伯努利不等式)可知复利结果永远不小于单利,且 n 越大、r 越大,差距越大。实测(r = 0.15%/日、P₀ = 10000):

365 与 360 差在哪。同一条 r 折成年度收益时,两个口径给出的是两个不同的数。实测(r = 0.15%/日):365 天口径 (1.0015)^365 − 1 = 72.8216%,360 天口径 (1.0015)^360 − 1 = 71.5313%,360 比 365 低 1.7719%。这不是精度差异而是定义差异:365 承认「一年 365 天」,360 承认「按 30 天/月 × 12 月算年」(US 30/360 里的 30,以及欧陆 Actual/360 的 360 天基准)。债券利息按 360 计是因为它假设一年只有 360 天的计息基础,而加密每天都在成交。

差距会随 r 变大而放大,实测同一模型下:r = 0.30% 时 365/360 口径差 2.2358%;r = 0.50% 时差 2.9389%;r = 1.00% 时差 4.9854%。也就是说,波动越大的资产,口径选择带来的数字差异越大——在加密语境下用 360 报一个高收益数字,会明显低估它。这也是本页把两个口径都算出来并列的原因。

亏损侧的不对称。r 填负数时三条公式同样成立:r = −0.15%/日、n = 30 时,单利给出 9550.00,日复利 9559.65,连续 9559.97。注意亏 30 天与赚 30 天并不镜像——赚要涨 4.5993% 才回到原点,亏只要跌 4.4043% 就到了,多出来的部分正是复利在负利率下更快放大的结果。

完整示例(数值仅作演示)

与页面打开时的三个输入完全一致:r = 0.15%/日、P₀ = 10000 USDT、n = 30 天、口径 365。实测三套结果:

把 n 拉到 365(同样 r 与本金):单利 15475.00(日涨幅 54.7500%)、日复利 17282.16(72.8216%)、连续 17289.25(72.8925%)。翻倍所需天数按日复利解 n = ln2 / ln(1+r) = 462.4446 天——注意它比单利解 ln2 / r = 462.0981 天要长,这正说明用单利会高估增长速度。

翻倍这件事还有反直觉的一面:涨 100 天后是 11617.04,要跌回10000 需要跌 13.9195%(即 1 − (1+r)^(−100)),而不是 50%。

输入范围与对照表

三个输入的合法区间与步长都写在 HTML 属性上(min / max / step),浏览器会先挡掉一部分,但本页仍然逐项校验并给出中文文案。

字段允许范围步长默认值超出范围的后果
日收益率 r−50 ~ 50 %0.010.15±50% 与 n=3650 组合会让 (1+r)ⁿ 溢出成 Infinity,直接报错
投入本金 P₀0.01 ~ 1e120.0110000结果超出双精度安全整数 9007199254740991 后不再逐位可靠
持有天数 n1 ~ 36501303650 = 10 年上限;n ≤ 0 会让公式失去「持有」意义
年化口径365 或 360—365只影响折年化列,不影响原始总额

下面是固定 r 与 P₀、只改天数时的实测对照表(页面表格默认显示前 6 行,完整 12 行请点「加载更多」):

日 r天数单利总额日复利总额连续复利总额日复利涨幅
0.15%110015.0010015.0010015.010.1500%
0.15%710105.0010105.4710105.551.0547%
0.15%3010450.0010459.9310460.284.5993%
0.15%9011350.0011444.2111445.3714.4421%
0.15%18012700.0013096.9913099.6430.9699%
0.15%36515475.0017282.1617289.2572.8216%
0.05%3010150.0010151.0910151.131.5109%
0.50%3011500.0011614.0011618.3416.1400%
1.00%3013000.0013478.4913498.5934.7849%
−0.50%308500.008603.848607.08−13.9616%
0.15%46216930.0019986.6819997.0699.8668%
0.15%46316945.0020016.6620027.07100.1666%

最后两行是翻倍的临界点:第 462 天日复利总额 19986.68还没到 20000,第 463 天 20016.66 已经超过——所以 0.15%/日 的精确翻倍点是第 463 天。

常见误用对照。

常见说法为什么不准确
「日收益 0.15%,一年就是 0.15×365 = 54.75%」这是单利。同期日复利是 72.8216%,差 18.07 个百分点,按 10000 本金算就是 1807 USDT
「年化 72.8%,半年就是 36.4%」年化不能线性折半。正确做法是 (1+0.728216)^(182.5/365) − 1 = 31.4616%;线性折半会高估约 4.95 个百分点
「日收益 0.15% 看着很小」日复利一年 72.82%,翻倍只要 463 天。这是数字量级问题,不是风险问题
「跌 50% 涨回来就平了」跌 50% 后本金剩一半,要涨 100% 才回原点,此时终值是 0.75 倍

边界与精度

IEEE754 双精度的两个硬边界。JS 的 Number 是 64 位浮点,安全整数上限 2⁵³−1 = 9007199254740991。本页默认示例的 17282.16 远在范围内,但把 r 与 n 推到边界附近就会撞上第二个边界:Math.pow 的结果是 double,超过 Number.MAX_VALUE ≈ 1.7976931348623157e+308 就返回 Infinity。临界条件是 n · ln(1+r) > 709.78,实测:

这就是本页把天数锁在 3650 的原因:(1.0015)^3650 = 237.6735,仍在安全范围;而 r 填到 50% 时 (1.5)^3650 必然溢出,所以 r 的上限与 n 的上限必须一起校验,只卡一个不够。本页的实际判据是算出 ln(1+r)·n,超过 709.78 就直接报错并写明实际值。

浮点累加必须靠 toFixed 收口。0.1 + 0.2 = 0.30000000000000004,所以本页从不比较浮点相等,金额一律用 toFixed(2) 后再显示。Number.EPSILON = 2.220446049250313e-16 是「1 与下一个可表示 double 的差」,r 小到 1e-16 量级时 1+r 会因精度损失而不再变化,本页因此把 r 的有效下限放在 ±0.0001%——再小下去 ln(1+r) 的有效数字已经丢失,折年化结果只剩噪声。

关于分母为0。P₀ 下限设为 0.01,而不是允许 0:P₀ = 0 时三条公式都返回 0,看起来「没有本金所以没有收益」是自洽的,但折年化与涨幅会变成 0/0,在 toFixed 下静默变成 NaN。本页在 P₀ ≤ 0 时直接 fail,并提示把本金填成大于 0 的数值。

最后是一句必须说清的话。本页做的是纯算术:它不知道你的手续费率、不知道滑点、不知道交易所会不会插针、也不知道这笔持仓的最大回撤。加密行情一天内的波动常常远超 0.15% 这个量级——用一条固定的日收益率外推一年,本身就假定了每天都是同一个涨跌幅,而这恰恰是加密市场最不成立的那个假设。加密货币利润计算器的所有输出都是数学演示,不构成任何投资建议。

常见问题

日收益率到底应该填哪种?从哪里拿?

本页要的是日百分比涨跌,即 (今收 − 昨收) ÷ 昨收。如果你的数据源给的是「7 日年化」(APY)或「7 日平均利率」(APR7),必须先换算,不能直接填进来。APR7 的日化近似是 APR7 ÷ 365;APY 要按离散口径反解 r = (1 + APY)^(1/365) − 1。注意行情站上的「日收益」经常是按 24 小时任意时点滚动算的,不是交易所的自然日(UTC 00:00 到 24:00),两者数值不同。

为什么不用 APY 和 APR 这两个标准术语?

因为它们在存款与债券里是硬规定的产品名(Annual Percentage Yield / Annual Percentage Rate,由各国金融监管规定披露口径),拿它们给加密的波动收益命名会让两类完全不同的东西混在一起。本页因此明确列出三套原始公式与天数口径,而不是给一个「年化」数字让你猜它是怎么来的。如果你需要的是银行存款或国债那种带固定利率、明确到期日的产品,去用年利率计算器。

单利比复利小,是不是说明交易所少给了我钱?

不是,两者是两个不同的数学模型,对应两种不同的资金处理方式。单利假设你每天把赚到的部分取出来不再投入;复利假设赚到的全部滚存。真正的对账要看交易所的账单:它记的是实际成交价对应的真实日序列,你把每日的真实涨跌连乘出来的结果才等于真实余额。本页是把「同一个 r 套进不同公式」的差别摆出来,不是任何一方的账。

连续复利 e^(rn) 会不会高估收益?

在 r 固定的前提下,它略微高估离散结果,因为 ln(1+r) < r。实测 r = 0.15%、n = 30 时连续比离散多 0.352676 USDT,相对偏差 0.003372%。但这个「高估」只在 r 是离散日百分比时才成立——如果你手里的 r 是瞬时连续复利率,那 e^(rn) 才是对的表达,(1+r)ⁿ 反而偏高。判断依据只有一个:你拿到的 r 到底是哪一种。

365 和 360 到底该选哪个?

看你在算什么。本币对、加密货币、任何「每天真实发生一次」的市场,用 365;债券附息、货币市场工具、利差合约里的报价基准,用 360(这源于 US 30/360 与欧陆 Actual/360 的惯例)。本页两列都算出来,1.388889% 的差额就是选错口径的代价。另外还有一个 252 的口径,用在「按交易日计数」的年化上——它算出的年化数字最大,因为一年只有约 252 个交易日,别的场合不要混用。

为什么结果只保留两位小数?

因为 P₀ 与 r 都是你手工填的输入,两位小数之外的精度没有意义。更重要的是不要把本页的输出当成对账依据:真实收益要按每笔成交的实际价格计算,还要扣手续费、提现费与滑点。这里给出的是「如果没有摩擦、r 恒定」时的数学值,用来对比公式之间的差别足够了。

输入 r = 0 会怎样?

三条公式都返回 P₀ 本身(10000),涨幅 0%,翻倍天数显示为「不会翻倍」而不是除以 0 得到的 Infinity 或 NaN。r = 0 是一个合法输入,本页不会报错,但会在提示区写明此时三套公式完全重合、没有可比较的差异。

为什么天数上限只有 3650?

因为再往上对「加密行情」这个场景已经没有意义,同时它正好卡在浮点溢出的前面。3650 天是 10 年,实测 (1.0015)^3650 = 237.6735,离双精度上限还差很远。真正的约束不是天数,而是 r × n 的组合——r 填 50% 时 1750 天就溢出了,这也是为什么页面在每次计算时都会重新检查这个组合,而不是只看天数。

相关工具