如何计算合约占用的保证金

发布于 2022-12-06 06:32

持仓与挂单的占用保证金

合约占用保证金包含两部分,仓位占用的保证金和挂单占用的保证金。

其中,由于止盈止损挂单(包含限价止损、市价止损和追踪止损订单)不占用保证金,下单和触发时计算下单保证金,所以挂单占用保证金部分仅指限价挂单。

合约占用保证金(包含持仓和挂单)将通过以下公式计算:

单向持仓占用保证金:

合约的占用保证金= max(绝对值(仓位名义价值+ 买单挂单价值), 绝对值(仓位名义价值- 卖单挂单价值)) / 杠杆

双向持仓占用保证金:

合约的占用保证金= 多方向占用保证金+ 空方向占用保证金

= max(绝对值(多方向仓位名义价值+ 多方向买单挂单价值), 绝对值(多方向仓位名义价值- 多方向卖单挂单价值)) / 杠杆+ max(绝对值(空方向仓位名义价值+ 空方向买单挂单价值), 绝对值(空方向仓位名义价值- 空方向卖单挂单价值)) / 杠杆

多方向和空方向指positionSide字段为LONG或者SHORT的仓位和挂单

以上计算中,

仓位名义价值:

U本位合约,仓位名义价值 = 仓位大小(币单位) * 标记价格

币本位合约,仓位名义价值 = 仓位大小(张单位) * 合约面值/ 标记价格

挂单价值:

U本位合约,挂单名义价值 = 挂单数量(币单位) * 限价价格

币本位合约,挂单名义价值 = 挂单数量(张单位) * 合约面值/ 限价价格

PS.仓位如果为买/做多方向,仓位大小为正数;卖/做空方向,仓位大小为负数。

举例说明:

  • 您有一个BTCUSDT的多仓,头寸为10,000 USDT(标记价格为20,000 USDT)
  • 您有一个做多的挂单,数量为0.1 BTCUSDT, 挂单价格为19,000 USDT ,杠杆为2X
  • 同时,您还有一个做空的挂单,数量为0.1 BTCUSDT, 挂单价格为22,000 USDT ,杠杆为2X

让我们来计算如上仓位的保证金要求:

保证金要求 = max(abs(10,000 USDT + 1,900 USDT), abs(10,000 USDT - 2,200)) / 2
= 5,950 美元

下单保证金检查

当新提交订单被判定为开仓订单时,系统将会进行保证金检查,被判定为减仓的委托不会进行保证金检查。

如果满足以下条件,新订单即被判断为开仓订单,需进行下单保证金检查:

1)对于买单:

  • 现有仓位方向为买/做多
  • 现有仓位方向为卖/做空,且新订单数量> 卖/做空仓位数量绝对值-买单挂单数量

举例说明:

假设您有数量1 BTCUSDT 的空仓和一个0.8 BTCUSDT 的做多挂单;
您现在还想下0.5 BTCUSDT 的限价多单;
0.5 BTCUSDT > (1 - 0.8) BTCUSDT, 您的新订单会被认为是开仓订单。

2)对于卖单:

  • 现有仓位方向为卖/做空
  • 现有仓位方向为买/做多,且新订单数量> 买/做多仓位数量绝对值-卖单挂单数量

举例说明:

假设您有一个1.4 BTCUSDT的多仓,和一个0.8 BTCUSDT的做空限价挂单;

您现在还想下一个0.5 BTCUSDT的限价空单;
0.5 BTCUSDT < (1.4 - 0.8) BTCUSDT, 您的新订单不会被认为是开仓订单。

需要注意的是“只减仓(Reduce Only)”订单如果满足以上条件也需要进行下单保证金检查,所以提交新只减仓订单也有被系统拒绝的情况。

只减仓Reduce Only(以下缩写为RO)订单大致规则如下:

  • 市价全平仓为RO订单:下单后会撤销同方向RO挂单,并平仓。
  • 价格更容易成交的限价RO订单:
    • (a) 如果新提交的限价RO单通过了保证金检查
    • (b)并且比当前持有的RO限价单更容易成交
    • (c)下单后挂单总数量超过了仓位大小
    • 更不容易成交的同向挂单会被撤销直到挂单总数量不大于仓位大小。
  • 止盈止损RO订单:止盈止损挂单不占用保证金,但在触发时会按照订单类型检查保证金。止盈止损RO订单在触发时如果发现保证金不足,会撤销同向限价RO挂单。

下单保证金检查公式

开仓订单需满足以下条件才可下单成功:

1)开仓成本 ≤ 可用余额

其中开仓成本包含初始保证金,和开仓亏损,具体计算请参考这篇文章

2)下单后合约整体名义价值 ≤ 当前杠杆允许的最大名义价值,即为当前杠杆需被支持,且在最大名义价值的范围内

各合约支持的杠杆倍数,和名义价值详细请查看这篇文章

立即注册,最高可获 100 USDT 的交易手续费返还(仅限认证用户)