跳至主要内容

訂單

訂閱訂單數據推送

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

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

當您提交了撤單請求後, 恰巧此時訂單被撮合了, 那麼您可能會接收到兩條orderStatus=Filled的消息推送。常見的情況是, 一條消息裡包含 "orderStatus=Filled, rejectReason=EC_NoError", 然後另一條消息包含"orderStatus=Filled, cancelType=CancelByUser, rejectReason=EC_OrigClOrdIDDoesNotExist"。 前者表示訂單成交了, 後者表示由於訂單已成交, 導致對應的撤單請求被拒絕了。

響應參數

參數類型說明
idstring消息id
topicstringTopic名
creationTimenumber消息數據創建時間
dataarrayObject
> categorystring產品類型 spot, linear, inverse, option
> orderIdstring訂單ID
> orderLinkIdstring用戶自定義ID
> isLeveragestring是否借貸. 僅spot有效
  • 0: 否, 幣幣交易
  • 1: 是, 槓桿交易
  • > blockTradeIdstring大宗交易訂單Id
    > symbolstring合約名稱
    > pricestring訂單價格
    > brokerOrderPricestringEU流動性經紀商專有字段
    > qtystring訂單數量
    > sidestring方向. Buy,Sell
    > positionIdxinteger倉位標識。用戶不同倉位模式
    > orderStatusstring訂單狀態
    > createTypestring訂單創建類型
  • 僅作用於category=linear 或 inverse
  • 現貨、期權不返回該字段
  • > cancelTypestring訂單被取消類型
    > rejectReasonstring拒絕原因
    > avgPricestring訂單平均成交價格. 對於不存在avg price的場景, 總返回""
    > leavesQtystring訂單剩餘未成交的數量
    > leavesValuestring訂單剩餘未成交的價值
    > cumExecQtystring訂單累計成交數量
    > cumExecValuestring訂單累計成交價值
    > cumExecFeestring
  • inverse, option: 訂單累計成交的手續費.
  • linear, spot: 已棄用. 用cumFeeDetail替代.
  • 升級到統一帳戶後, 您可以使用成交頻道中的execFee字段來獲取每次成交的手續費
  • > closedPnlstring平倉單盈虧, 部分平倉時, 減去了平攤的開倉手續費和期間產生的資金費以及平倉手續費. 該數據和查詢平倉盈虧接口裡的"closedPnl"保持一致
    > feeCurrencystring已棄用. 現貨交易的手續費幣種. 可以從這裡了解現貨交易的手續費幣種規則
    > timeInForcestring執行策略
    > orderTypestring訂單類型. Market,Limit. 對於止盈止損單, 則表示為觸發後的訂單類型
    > stopOrderTypestring條件單類型
    > ocoTriggerBystring現貨OCO訂單的觸發類型.OcoTriggerByUnknown, OcoTriggerByTp, OcoTriggerBySl
    > orderIvstring隱含波動率
    > marketUnitstring現貨交易時給入參qty選擇的單位. baseCoin, quoteCoin
    > slippageToleranceTypestring市價單滑點容差類型, TickSize, Percent, UNKNOWN(默認值)
    > slippageTolerancestring滑點容差數值
    > triggerPricestring觸發價格. 若stopOrderType=TrailingStop, 則這是激活價格. 否則, 它是觸發價格
    > takeProfitstring止盈價格
    > stopLossstring止損價格
    > tpslModestring止盈止損模式 Full: 全部倉位止盈止損, Partial: 部分倉位止盈止損
    現貨不返回該字段, 期權總是返回""
    > tpLimitPricestring觸發止盈後轉換為限價單的價格
    > slLimitPricestring觸發止損後轉換為限價單的價格
    > tpTriggerBystring觸發止盈的價格類型
    > slTriggerBystring觸發止損的價格類型
    > triggerDirectioninteger觸發方向. 1: 上漲, 2: 下跌
    > triggerBystring觸發價格的觸發類型
    > lastPriceOnCreatedstring下單時的市場價格
    > reduceOnlyboolean只減倉. true表明這是只減倉單
    > closeOnTriggerboolean觸發後平倉委託. 什麼是觸發後平倉委託?
    > placeTypestring期權下單方式. iv, price
    > smpTypestringSMP執行類型
    > smpGroupinteger所屬Smp組ID. 如果uid不屬於任何組, 則默認為0
    > smpOrderIdstring觸發此SMP執行的交易對手的 orderID
    > createdTimestring創建訂單的時間戳 (毫秒)
    > updatedTimestring訂單更新的時間戳 (毫秒)
    > cumFeeDetailjson
  • linear, spot: 累積交易費詳情, 替代cumExecFee
  • `

    訂閱示例

    {
    "op": "subscribe",
    "args": [
    "order"
    ]
    }
    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.order_stream(callback=handle_message)
    while True:
    sleep(1)

    推送示例

    {
    "id": "5923240c6880ab-c59f-420b-9adb-3639adc9dd90",
    "topic": "order",
    "creationTime": 1672364262474,
    "data": [
    {
    "symbol": "ETH-30DEC22-1400-C",
    "orderId": "5cf98598-39a7-459e-97bf-76ca765ee020",
    "side": "Sell",
    "orderType": "Market",
    "cancelType": "UNKNOWN",
    "price": "72.5",
    "qty": "1",
    "orderIv": "",
    "timeInForce": "IOC",
    "orderStatus": "Filled",
    "orderLinkId": "",
    "lastPriceOnCreated": "",
    "reduceOnly": false,
    "leavesQty": "",
    "leavesValue": "",
    "cumExecQty": "1",
    "cumExecValue": "75",
    "closedPnl": "0",
    "avgPrice": "75",
    "blockTradeId": "",
    "positionIdx": 0,
    "cumExecFee": "0.358635",
    "createdTime": "1672364262444",
    "updatedTime": "1672364262457",
    "rejectReason": "EC_NoError",
    "stopOrderType": "",
    "tpslMode": "",
    "triggerPrice": "",
    "takeProfit": "",
    "stopLoss": "",
    "tpTriggerBy": "",
    "slTriggerBy": "",
    "tpLimitPrice": "",
    "slLimitPrice": "",
    "triggerDirection": 0,
    "triggerBy": "",
    "closeOnTrigger": false,
    "category": "option",
    "placeType": "price",
    "smpType": "None",
    "smpGroup": 0,
    "smpOrderId": "",
    "feeCurrency": "",
    "cumFeeDetail": {
    "MNT": "0.00242968"
    }
    }
    ]
    }