跳至主要内容

持倉

訂閱持倉數據的推送

All-In-One Topic: position
Categorised Topic: position.linear, position.inverse, position.option

信息
  • All-In-One topic 和 Categorised topic 不能放在同一個訂閱請求裡
  • All-In-One topic: 允許您監聽所有業務線的websocket倉位更新(正向合約, 反向合約, 期權)
  • Categorised Topic: 您只能監聽您指定的那個業務的websocket更新

響應參數

參數類型說明
idstring消息id
topicstringTopic名
creationTimenumber消息數據創建時間
dataarrayObject
> categorystring產品類型
> symbolstring合約名稱
> sidestring持倉方向. Buy,Sell
> sizestring持倉大小
> positionIdxinteger倉位標識
> tradeModeinteger交易模式。
  • 統一帳戶 (反向合約) & 經典帳戶: 0: 全倉, 1: 逐倉
  • 統一帳戶: 廢棄, 總是 0
> positionValuestring倉位價值
> riskIdinteger風險限額id. 注意: 組合保證金模式下,該字段返回0,風險限額規則失效
> riskLimitValuestring風險限額id對應的風險限額度. 注意: 組合保證金模式下,該字段返回空字符串,風險限額規則失效
> entryPricestring入場價
> markPricestring標記價
> leveragestring槓桿. 注意: 組合保證金模式下,該字段返回"",槓桿規則失效
> positionBalancestring倉位保證金. 組合保證金模式(PM)下, 該字段返回為空字符串
> autoAddMargininteger是否自動追加保證金. 0: 否, 1: 是. 僅當統一帳戶(除反向合約)開啟了帳戶維度的逐倉保證金模式, 該字段才有意義
> positionMMstring倉位維持保證金. 注意: 組合保證金模式下,該字段返回空字符串
> positionIMstring倉位初始保證金. 注意: 組合保證金模式下,該字段返回空字符串
> liqPricestring倉位強平價格,
  • UTA(反向合約) & 普通账户 & UTA(開啟逐倉保證金模式):是逐倉和全倉持仓的真實價格, 當強平價 <= minPrice或者 強平價 >= maxPrice, 則為""
  • 統一帳戶(全倉保證金):是全倉持仓的预估价格(因为统一帳戶模式是按照帳戶維度控制风险率), 當強平價 <= minPrice或者 強平價 >= maxPrice, 則為""
但是對於組合保證金模式,此字段為空,不會提供強平價格
> bustPricestring預估破產價. 統一帳戶(現貨/USDT和USDC永續/期權)為空
> tpslModestring該字段廢棄, 無意義, 總是返回"Full". 期權總是返回""
> takeProfitstring止盈價格
> stopLossstring止損價格
> trailingStopstring追蹤止損
> unrealisedPnlstring未結盈虧
> sessionAvgPricestringUSDC合約平均持倉價格, 會隨著8小時結算而變動
> deltastringDelta, 期權的獨有字段
> gammastringGamma, 期權的獨有字段
> vegastringVega, 期權的獨有字段
> thetastringTheta, 期權的獨有字段
> curRealisedPnlstring當前持倉的已結盈虧
> cumRealisedPnlstring累计已结盈亏
  • 期貨: 是從第一次開始有持倉加總的已結盈虧
  • 期權: 它是本次持倉的加總已結盈虧
> positionStatusstring倉位狀態. Normal,Liq, Adl
> adlRankIndicatorinteger自動減倉燈. 什麼是自動減倉機制?
> isReduceOnlyboolean僅當Bybit需要降低某個Symbol的風險限額時有用
  • true: 僅允許減倉操作. 您可以考慮一系列的方式, 比如, 降低risk limit檔位, 或者同檔位修改槓桿或減少倉位, 或者增加保證金, 或者撤單, 這些操作做完後, 可以主動調用確認新的風險限額接口
  • false(默認): 沒有交易限制, 表示您的倉位在系統調整時處於風險水平之下
  • 僅對逐倉和全倉的期貨倉位有意義
> mmrSysUpdatedTimestring僅當Bybit需要降低某個Symbol的風險限額時有用
  • 當isReduceOnly=true: 這個時間戳表示系統強制修改MMR的時間
  • 當isReduceOnly=false: 若不為空, 則表示系統已經完成了MMR調整的時間
  • 僅當系統調整才會賦值, 對於主動的調整, 不會在這裡展示時間戳
  • 默認為"", 但如果曾經這個symbol有過系統降檔的操作, 那麼這裡會顯示上一次操作的時間
  • 僅對逐倉和全倉的期貨倉位有意義
> leverageSysUpdatedTimestring僅當Bybit需要降低某個Symbol的風險限額時有用
  • 當isReduceOnly=true: 這個時間戳表示系統強制修改槓桿的時間
  • 當isReduceOnly=false: 若不為空, 則表示系統已經完成了槓桿調整的時間
  • 僅當系統調整才會賦值, 對於主動的調整, 不會在這裡展示時間戳
  • 默認為"", 但如果曾經這個symbol有過系統降檔的操作, 那麼這裡會顯示上一次操作的時間
  • 僅對逐倉和全倉的期貨倉位有意義
> createdTimestring倉位創建時間戳 (毫秒)
> updatedTimestring倉位數據更新時間戳 (毫秒)
> seqlong序列號, 用於關聯成交和倉位的更新
  • 不同的幣對會存在相同seq, 可以使用seq + symbol來做唯一性識別
  • 如果該幣對從未被交易過, 查詢時則會返回"-1"
  • 對於更新槓桿、更新風險限額等非交易行為, 將會返回上一次成交時更新的seq

訂閱示例

{
"op": "subscribe",
"args": [
"position"
]
}
from pybit.unified_trading import WebSocket
from time import sleep
ws = WebSocket(
testnet=True,
channel_type="private",
api_key="XXXXX",
api_secret="XXXXX",
)
def handle_message(message):
print(message)
ws.position_stream(callback=handle_message)
while True:
sleep(1)

推送示例

{
"id": "1003076014fb7eedb-c7e6-45d6-a8c1-270f0169171a",
"topic": "position",
"creationTime": 1697682317044,
"data": [
{
"positionIdx": 2,
"tradeMode": 0,
"riskId": 1,
"riskLimitValue": "2000000",
"symbol": "BTCUSDT",
"side": "",
"size": "0",
"entryPrice": "0",
"leverage": "10",
"positionValue": "0",
"positionBalance": "0",
"markPrice": "28184.5",
"positionIM": "0",
"positionMM": "0",
"takeProfit": "0",
"stopLoss": "0",
"trailingStop": "0",
"sessionAvgPrice": "0",
"unrealisedPnl": "0",
"curRealisedPnl": "-2.06",
"cumRealisedPnl": "-25.06579337",
"createdTime": "1694402496913",
"updatedTime": "1697682317038",
"tpslMode": "Full",
"liqPrice": "0",
"bustPrice": "",
"category": "linear",
"positionStatus": "Normal",
"adlRankIndicator": 0,
"autoAddMargin": 0,
"leverageSysUpdatedTime": "",
"mmrSysUpdatedTime": "",
"seq": 8327597863,
"isReduceOnly": false
}
]
}