持仓成本
合约平仓后盈利去哪了?已实现盈亏、手续费和资金费分开看
假设开多 0.5 枚、从 2,000 涨到 2,080 平仓,按价差赚 40 USDT,钱包却只多 38.892 USDT,少掉的是两笔手续费和一次资金费用。分批平仓、加仓改变均价时要逐笔拆开算,强平还会多一笔清算费。
币安合约钱包的余额,是把转账、已实现盈利、资金费用和手续费分开记的。所以按“平仓价减开仓价再乘数量”算出的盈利,常常和钱包实际多出来的钱对不上,差的通常是开仓、平仓各收一次的手续费,加上持仓期间碰上结算时点的资金费用。把已实现盈亏、手续费、资金费用这三类记录分开核,差额就能逐项对上。
下面以币安 U 本位永续合约为例,文中的价格、费率和金额都是教学假设。永续合约带杠杆,可能被强制平仓,账算清了也要另外控制仓位风险。
钱包余额由哪几笔记录组成
币安帮助中心在“如何查看合约钱包余额”一文中给出了合约钱包余额的构成:
钱包余额 = 净转账总额 + 已实现盈利总额 + 净资金费用总额 − 手续费总额

从公式能看出:已实现盈利、资金费用和手续费是三项分开记账的数字。价格涨跌带来的盈亏记在已实现盈利里,手续费单独扣,资金费用单独收付。
同一篇说明还写明,保证金余额等于钱包余额加未实现盈亏。仓位没平之前,页面上跳动的浮动盈亏属于未实现盈亏,不在钱包余额里。币安“如何计算合约盈亏”一文也写明:“未实现盈亏按标记价格计算,已实现盈亏则按最新价计算。”所以不要拿平仓前截下的浮盈数字,去对平仓后的钱包变化。
| 记录类型 | 什么时候产生 | 怎么算 | 方向 |
|---|---|---|---|
| 已实现盈亏 | 平仓(含部分平仓)成交时 | (平仓成交价 − 开仓均价)× 平仓数量,做空方向相反 | 可正可负 |
| 交易手续费 | 每一笔开仓、平仓成交时 | 成交金额 × 这笔成交的费率 | 通常为支出 |
| 资金费用 | 结算时点仍持有仓位时 | 按结算时的仓位名义价值和资金费率计算 | 可能支付,也可能收取 |
| 强平清算费 | 仓位被强制平仓时 | 按平台强平规则扣除 | 支出 |
一笔多单从开到平,把账拆成四行
假设在某个 A 币/USDT U 本位永续合约上做多:
- 以 2,000 USDT 开多 0.5 枚,这笔成交是吃单,假设费率 0.05%;
- 持仓期间经过一次资金结算,假设这次支付资金费用 0.40 USDT;
- 之后以 2,080 USDT 平掉全部 0.5 枚,这笔成交是挂单,假设费率 0.02%。
| 项目 | 计算 | 金额(USDT) |
|---|---|---|
| 已实现盈亏 | (2,080 − 2,000) × 0.5 | +40.000 |
| 开仓手续费 | 2,000 × 0.5 × 0.05% = 1,000 × 0.05% | −0.500 |
| 平仓手续费 | 2,080 × 0.5 × 0.02% = 1,040 × 0.02% | −0.208 |
| 资金费用 | 结算记录中的实际金额(此处为假设值) | −0.400 |
| 合约钱包净变化 | 以上四项相加 | +38.892 |
按价差算的 40 USDT 没有错,它就是账户里记的已实现盈亏;钱包实际只多了 38.892 USDT,少掉的 1.108 USDT 正好是两笔手续费和一次资金费用。手续费的基数是成交时的仓位价值,不是保证金,杠杆越高、同样保证金下这两笔越大。想知道自己那笔开平仓各该扣多少,按合约手续费按仓位价值计算的方法代入成交价和数量算一遍。
这个例子里有三处容易算错:
- 开仓那笔手续费。它在开仓时就扣了,不在平仓那一刻,只看平仓当天的记录会漏掉它。
- 两笔成交的费率不同。手续费按每一笔成交是挂单还是吃单分别计算,不是整张订单用一个费率。现货订单也是同样的道理,逐笔核对的方法可以参考现货订单逐笔算手续费的例子。
- 资金费用不看开仓价。它按结算时点的仓位和最终费率收付,和开仓价、平仓价都没有直接关系。资金费用对不上时怎么还原每一次结算,可以看每一次资金结算怎么还原。
分几次平仓,已实现盈亏怎么对
分批平仓时,每一笔平仓成交都会单独产生一笔已实现盈亏和一笔手续费。核对时按成交逐笔列出来,再合计:
| 平仓成交 | 数量 | 成交价 | 已实现盈亏(开仓均价 2,000) | 手续费(假设费率 0.05%) |
|---|---|---|---|---|
| 第 1 笔 | 0.2 | 2,050 | (2,050 − 2,000) × 0.2 = +10.00 | 410 × 0.05% = 0.205 |
| 第 2 笔 | 0.3 | 1,990 | (1,990 − 2,000) × 0.3 = −3.00 | 597 × 0.05% = 0.2985 |
| 合计 | 0.5 | — | +7.00 | 0.5035 |
要注意:公式里用的是开仓均价。开仓分了几笔或中途加过仓,要按成交数量加权算均价;加仓前平掉的部分用当时的均价,加仓后再平的部分用新的均价。按时间顺序排好每一笔成交再往下算。
已实现盈亏、手续费、资金费在哪里查
合约交易界面下方的仓位、历史委托和成交历史,适合看价格和数量;要把钱包余额的变化逐笔对上,更适合看合约账户的资金流水(App 里一般叫「交易历史」或「资金记录」)。流水会按类型分别列出已实现盈亏、手续费、资金费用和划转等记录,和上面的余额公式一一对应。
对一笔仓位,可以这样查:
- 在成交历史里找出这笔仓位所有的开仓和平仓成交,记下数量、成交价、挂单或吃单、手续费和扣费币种;
- 用开仓均价和每笔平仓成交价,算出每笔已实现盈亏,再和资金流水里的已实现盈亏逐笔比对;
- 在资金流水里筛出持仓期间的资金费用记录,确认次数和金额;
- 把已实现盈亏、手续费、资金费用相加,和这段时间合约钱包余额的变化比对,中间如有划转要单独扣除。
仓位面板或仓位历史里的“盈亏”有没有扣掉手续费和资金费用,币安公开帮助页没有逐一说明,界面也可能调整。汇总数对不上时,先用资金流水里的三类明细加一遍,弄清它包含哪几项,再判断是不是少结算。
如果这个合约账户在跟单,除了这三类明细,还要把盈利分润单独对一遍,见合约跟单还要单独核对盈利分润。
差额还对不上时,先排除这几种情况
| 现象 | 可能原因 | 怎么核 |
|---|---|---|
| 差额大约等于一两笔手续费 | 漏算了开仓手续费,或把平仓费率套到了开仓那笔 | 在成交历史里逐笔看手续费 |
| 差额有正有负、金额不大 | 持仓期间经过了一次或多次资金结算 | 在资金流水里筛资金费用,看结算时间 |
| 盈亏比按价差算的大很多或小很多 | 分批开仓、加仓后开仓均价变了 | 按时间重排成交,重新算加权均价 |
| 手续费合计和按 USDT 算的对不上 | 部分手续费以其他资产扣除 | 按扣费币种分别合计,不要直接相加 |
| 钱包少了一大块,流水里出现强平相关记录 | 仓位被强制平仓,产生强平清算费 | 查看流水中的强平相关记录;强平清算费的计算与记录位置另有说明 |
| “今日盈亏”和单个仓位盈亏不同 | 盈亏分析按整个账户钱包余额的变化计算 | 见下方说明 |
币安盈亏分析页面的说明中,合约的时段盈亏按“期末钱包余额 − 期初钱包余额 − 净流入”计算。它统计的是整个合约账户在这段时间的变化,同一时段内其他仓位的盈亏、所有手续费和资金费用都会算进去,不能拿来和单个仓位的平仓盈亏一对一比较。
现货账户和合约账户是两套记账方式:现货没有资金费用,买卖手续费和到账数量的算法可以参考现货买卖手续费和到账数量的算法。
参考资料
以下币安官方资料于 2026-09-23 查阅。实际费率和界面位置以你账户中的记录为准。