持倉
訂閱持倉數據的推送
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 | 倉位起始保證金 |
| > positionIMByMp | string | 倉位起始保證金(用mark price計算) |
| > positionMM | string | 倉位維持保證金 |
| > positionMMByMp | string | 倉位維持保證金(用mark price計算) |
| > liqPrice | string | 倉位強平價格,
|
| > bustPrice | string | 預估破產價. 統一帳戶(現貨/USDT和USDC永續/期權)為空 |
| > tpslMode | string | 該字段廢棄, 無意義, 總是返回"Full". 期權總是返回"" |
| > takeProfit | string | 止盈價格 |
| > stopLoss | string | 止損價格 |
| > trailingStop | string | 追蹤止損 |
| > unrealisedPnl | string | 未結盈虧 |
| > sessionAvgPrice | string | USDC合約平均持倉價格, 會隨著8小時結算而變動 |
| > delta | string | Delta. 只有訂閱期權的position時才會推送這個字段 |
| > gamma | string | Gamma. 只有訂閱期權的position時才會推送這個字段 |
| > vega | string | Vega. 只有訂閱期權的position時才會推送這個字段 |
| > theta | string | Theta. 只有訂閱期權的position時才會推送這個字段 |
| > 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="xxxxxxxxxxxxxxxxxx",
api_secret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
)
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",
"positionIMByMp": "0",
"positionMM": "0",
"positionMMByMp": "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
}
]
}