持倉
訂閱持倉數據的推送
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更新
響應參數
參數 | 類型 | 說明 |
---|---|---|
id | string | 消息id |
topic | string | Topic名 |
creationTime | number | 消息數據創建時間 |
data | array | Object |
> category | string | 產品類型 |
> symbol | string | 合約名稱 |
> side | string | 持倉方向. Buy ,Sell |
> size | string | 當前倉位的合约數量, 總是正數 |
> positionIdx | integer | 倉位標識 |
> tradeMode | integer | 交易模式 |
> positionValue | string | 倉位價值 |
> riskId | integer | 风险限额ID, 參見風險限額接口 若賬戶為組合保證金模式(PM), 該字段返回0, 風險限額規則失效 |
> riskLimitValue | string | 當前風險限額ID對應的持倉限制量 若賬戶為組合保證金模式(PM),該字段返回"", 風險限額規則失效 |
> entryPrice | string | 入場價 |
> markPrice | string | 標記價 |
> leverage | string | 槓桿. 注意: 組合保證金模式下,該字段返回"",槓桿規則失效 |
> positionBalance | string | 倉位保證金 經典帳戶 & 統一帳戶1.0(inverse)可以根據這個字段了解倉位初始保證金+平倉手續費 |
> autoAddMargin | integer | 是否自動追加保證金, 反向合約不支持設置自動追加保證金 0 : 否1 : 是 |
> positionIM | string | 倉位起始保證金 |
> positionMM | string | 倉位維持保證金 |
> liqPrice | string | 倉位強平價格,
|
> bustPrice | string | 預估破產價. 統一帳戶(現貨/USDT和USDC永續/期權)為空 |
> tpslMode | string | 該字段廢棄, 無意義, 總是返回"Full". 期權總是返回"" |
> takeProfit | string | 止盈價格 |
> stopLoss | string | 止損價格 |
> trailingStop | string | 追蹤止損 |
> unrealisedPnl | string | 未結盈虧 |
> sessionAvgPrice | string | USDC合約平均持倉價格, 會隨著8小時結算而變動 |
> delta | string | Delta |
> gamma | string | Gamma |
> vega | string | Vega |
> theta | string | Theta |
> curRealisedPnl | string | 當前持倉的已結盈虧 |
> cumRealisedPnl | string | 累计已结盈亏
|
> positionStatus | string | 倉位狀態. Normal ,Liq , Adl |
> adlRankIndicator | integer | 自動減倉燈. 什麼是自動減倉機制? |
> createdTime | string | 倉位創建時間戳 (毫秒) |
> updatedTime | string | 倉位數據更新時間戳 (毫秒) |
> seq | long | 序列號, 用於關聯成交和倉位的更新
|
> isReduceOnly | boolean | 僅當Bybit需要降低某個Symbol的風險限額時有用
|
> mmrSysUpdatedTime | string | 僅當Bybit需要降低某個Symbol的風險限額時有用
false : 若不為空, 則表示系統已經完成了MMR調整的時間 |
> leverageSysUpdatedTime | string | 僅當Bybit需要降低某個Symbol的風險限額時有用
false : 若不為空, 則表示系統已經完成了槓桿調整的時間 |
訂閱示例
{
"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
}
]
}