持倉與掛單的佔用保證金
合約佔用保證金包含兩部分,倉位佔用的保證金和掛單佔用的保證金。
其中,由於止盈止損掛單(包含限價止損、市價止損和追踪止損訂單)不佔用保證金,下單和触發時計算下單保證金,所以掛單佔用保證金部分僅指限價掛單。
合約佔用保證金(包含持倉和掛單)將通過以下公式計算:
單向持倉佔用保證金:
合約的佔用保證金= 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 USDT
= 5,950 USDT
下單保證金檢查
當新提交訂單被判定為開倉訂單時,系統將會進行保證金檢查,被判定為減倉的委託不會進行保證金檢查。
如果滿足以下條件,新訂單即被判斷為開倉訂單,需進行下單保證金檢查:
1)對於買單:
- 現有倉位方向為買/做多
- 現有倉位方向為賣/做空,且新訂單數量> 賣/做空倉位數量絕對值-買單掛單數量
舉例說明:
假設您有數量1 BTCUSDT 的空倉和一個0.8 BTCUSDT 的做多掛單;
您現在還想下0.5 BTCUSDT 的限價多單;
0.5 BTCUSDT > (1 - 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, 您的新訂單不會被認為是開倉訂單。
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)下單後合約整體名義價值 ≤ 當前杠桿允許的最大名義價值,即為當前杠桿需被支持,且在最大名義價值的範圍內
各合約支持的槓桿倍數,和名義價值詳細請查看這篇文章。