跳至主要内容

持倉

訂閱持倉數據的推送

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交易模式
> positionValuestring倉位價值
> riskIdinteger风险限额ID, 參見風險限額接口
若賬戶為組合保證金模式(PM), 該字段返回0, 風險限額規則失效
> riskLimitValuestring當前風險限額ID對應的持倉限制量
若賬戶為組合保證金模式(PM),該字段返回"", 風險限額規則失效
> entryPricestring入場價
> markPricestring標記價
> leveragestring槓桿. 注意: 組合保證金模式下,該字段返回"",槓桿規則失效
> positionBalancestring倉位保證金
經典帳戶 & 統一帳戶1.0(inverse)可以根據這個字段了解倉位初始保證金+平倉手續費
> autoAddMargininteger是否自動追加保證金, 反向合約不支持設置自動追加保證金
  • 0: 否
  • 1: 是
  • > positionIMstring倉位起始保證金
  • 經典帳戶 & 統一帳戶1.0(inverse): 忽略該字段
  • 統一帳戶組合保證金模式(PM)下, 該字段返回為空字符串
  • > positionMMstring倉位維持保證金
  • 經典帳戶 & 統一帳戶1.0(inverse): 忽略該字段
  • 統一帳戶組合保證金模式(PM)下, 該字段返回為空字符串
  • > 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自動減倉燈. 什麼是自動減倉機制?
    > createdTimestring倉位創建時間戳 (毫秒)
    > updatedTimestring倉位數據更新時間戳 (毫秒)
    > seqlong序列號, 用於關聯成交和倉位的更新
    • 不同的幣對會存在相同seq, 可以使用seq + symbol來做唯一性識別
    • 如果該幣對從未被交易過, 查詢時則會返回"-1"
    • 對於更新槓桿、更新風險限額等非交易行為, 將會返回上一次成交時更新的seq
    > 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有過系統降檔的操作, 那麼這裡會顯示上一次操作的時間
    • 僅對逐倉和全倉的期貨倉位有意義

    訂閱示例

    {
    "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
    }
    ]
    }