07 / 仓位成本

如何计算加密货币平均开仓价?

学习计算多次买入或合约分批成交的加权平均开仓价,并理解手续费、目标均价反算、部分平仓和交易所结果差异。

交易知识文档
11分钟
更新于2026年8月4日

平均开仓价是建立当前仓位时,各笔成交按数量加权后的价格,通常不能把订单记录中的几个价格直接相加后取平均。本指南会从零解释正确公式、USDT金额换算、手续费处理、目标均价反算,以及部分平仓后为什么不能继续套用同一公式。

30秒看懂

成交越大,对均价的影响越大

先用每笔成交价格乘以对应数量,再把所有仓位价值相加,最后除以总数量。大额成交占据更多仓位,因此对最终均价的影响也更大。

  • 每笔成交的价格和数量必须放在一起计算。
  • 先分别加总仓位价值和持仓数量,再做除法。
  • 只合并同一方向上增加仓位的成交。
成交
订单中已经按照某个价格真正执行的部分。
仓位价值
成交价格乘以对应币种数量。
持仓成本
建立当前仓位使用的金额,手续费需要根据采用的记账方式单独处理。
01

为什么直接取平均会算错?

简单平均会让每个价格拥有相同权重,只有每笔成交数量完全相同时才成立。如果第二笔买入数量是第一笔的两倍,它对最终均价的影响也应该是两倍。

把几个价格相加后除以成交笔数,会忽略每个价格究竟建立了多少仓位。加权算法计算的是实际仓位价值与数量,因此更接近真实持仓成本。

加权平均开仓价Σ(成交价格 × 成交数量)÷ Σ(成交数量)
总开仓价值Σ(成交价格 × 成交数量)
02

输入币种数量还是USDT金额?

线性合约和现货买入的标准公式需要币种数量。如果订单记录已经显示BTC、ETH、SOL或合约数量,可以直接使用。如果只知道每笔使用了多少USDT,需要先用金额除以对应成交价格,换算出币种数量。

这也解释了为什么每次投入相同USDT金额时,不能简单平均价格。相同金额在价格较低时可以买到更多币,因此较低价格自然会获得更高权重。

用金额换算数量币种数量 = USDT金额 ÷ 成交价格
按金额计算均价投入USDT总额 ÷ 币种总数量
订单记录输入方式处理方法
以68,000 USDT成交0.02 BTC币种数量无需换算
以68,000 USDT买入500 USDTUSDT金额500 ÷ 68,000
线性合约数量合约或币种数量使用线性加权公式
反向合约张数合约价值核对交易所反向合约公式
03

两笔BTC成交的完整示例

假设第一笔以70,000 USDT买入0.01 BTC,第二笔以68,000 USDT买入0.02 BTC。第二笔数量是第一笔的两倍,所以最终平均价应该更接近68,000 USDT。

第一笔形成700 USDT仓位价值,第二笔形成1,360 USDT。合计持有0.03 BTC,总开仓价值为2,060 USDT。用2,060除以0.03,得到平均开仓价68,666.67 USDT。

示例计算

在两个价格建立0.03 BTC仓位

不能使用(70,000 + 68,000)÷ 2。这个结果是69,000,会因为忽略第二笔更大的成交数量而高估真实均价。

第一笔仓位价值0.01 × 70,000 = 700 USDT
第二笔仓位价值0.02 × 68,000 = 1,360 USDT
总开仓价值700 + 1,360 = 2,060 USDT
总持仓数量0.01 + 0.02 = 0.03 BTC
加权平均价2,060 ÷ 0.03 = 68,666.67 USDT
04

手续费应该放在计算的什么位置?

交易平台通常把平均开仓价显示为不含手续费的加权成交价格,再把手续费单独计入已实现盈亏或账户成本。为了方便规划,可以保留这个平均成交价,同时再计算一个计入手续费的盈亏平衡价。

对于现货和多单,开仓费会提高回本所需收入,预计平仓费会减少最终获得的金额。空单的手续费则会减少开仓净收入,并增加买回仓位的成本。资金费、滑点、税务和借币成本还需要另外计算。

现货或多单盈亏平衡价(开仓价值 + 开仓手续费)÷ [数量 ×(1 − 平仓手续费率)]
空单盈亏平衡价(开仓价值 − 开仓手续费)÷ [数量 ×(1 + 平仓手续费率)]
关键要点
  • 确认手续费使用计价货币收取,还是从实际收到的币数量中扣除。
  • 使用自己的Maker或Taker费率等级,不要只看交易所宣传费率。
  • 不要把资金费和滑点混入加权成交价格。
  • 判断盈利时要看净盈亏,而不是只比较当前价和平均价。
05

怎样反算达到目标均价所需的加仓数量?

加权平均公式也可以反向使用。先输入下一笔可能的成交价和希望达到的平均价,再解出需要增加的数量。

可以达到的目标必须位于当前均价与计划成交价之间。如果当前均价和下一笔成交价都低于目标,继续在该价格成交不可能把均价推到两个价格上方,反方向也是同样道理。

需要增加的数量当前数量 ×(当前均价 − 目标均价)÷(目标均价 − 新成交价)
目标均价示例

把68,666.67 USDT降到68,000 USDT

当前持有0.03 BTC,均价为68,666.67 USDT。如果下一笔可以在64,000 USDT成交,需要增加0.005 BTC,也就是投入320 USDT。加仓后总价值为2,380 USDT,总数量为0.035 BTC,平均价正好为68,000 USDT。

当前仓位0.03 BTC,均价68,666.67 USDT
计划成交价64,000 USDT
目标平均价68,000 USDT
需要增加数量0.005 BTC
需要投入金额320 USDT
06

部分平仓、反手和反向合约应该怎样处理?

标准加权公式适合合并同一方向上增加风险敞口的成交。部分平仓会产生已实现盈亏,并不等于又增加一笔开仓。如果某笔成交先完全平掉原仓位,再建立相反方向的新仓位,通常应该从新仓位重新开始计算。

合约类型也很重要。USDT本位线性合约使用价格乘以数量,反向合约的报价和结算方式不同,通常需要使用价格倒数。有些带周期结算的产品还会重置或更新显示的阶段平均价,因此必须按照具体合约选择公式。

关键要点
  • 不要把减少多单的卖出记录成负数买入。
  • 部分平仓后的已实现盈亏应以交易所账单为准。
  • 完全平仓并反手后,应该重新建立一组计算。
  • 先确认合约属于线性、反向还是周期结算产品。
  • 已经开仓后,以交易所仓位面板作为最终记录。
计算你的综合开仓价

加密货币平均开仓价计算器

动态添加成交,切换币种数量与USDT金额输入,计入手续费、读取参考价格,并反算目标均价所需数量。

FAQ

常见问题

平均开仓价就是几个价格的平均数吗?

只有每笔成交数量完全相同时才是。只要数量不同,每个价格都必须按对应成交数量加权。

定投也可以使用这个公式吗?

可以。分别输入每次买入价格和数量,或者输入每次使用的计价金额,就能得到这些买入的综合成本价。

空单也能计算平均开仓价吗?

可以,前提是每笔成交都在增加同一个线性空单。平均价公式不变,但盈亏方向和盈亏平衡价不同。

平均开仓价需要包含手续费吗?

建议保留不含手续费的加权成交价,并在有效成本、盈亏平衡价和净盈亏中单独计入手续费,除非你的记账方法另有定义。

为什么目标均价显示无法达到?

目标价必须位于当前均价与计划成交价之间。成交价位于错误方向时,不可能让平均价越过当前值。

为什么交易所显示的结果不同?

交易所可能从币数量中扣除手续费、重置结算周期均价、使用反向合约公式,或对部分平仓采用不同记账方式。请检查具体合约和账单。

官方资料来源

交易所机制与费率可能调整。本文使用以下官方资料核对核心概念。

内容仅用于学习。不同交易所的合约规则和账户计算可能不同,交易前请以官方数据为准。