跳至主要内容

個人成交

訂閱個人成交的推送

提示

單筆訂單可能有多次成交

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

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

響應參數

參數類型說明
idstring消息id
topicstringTopic名
creationTimenumber消息數據創建時間
dataarrayObject
> categorystring產品類型
  • 統一帳戶: spot, linear, iverse, option
  • 經典帳戶: spot, linear, inverse.
> symbolstring合約名稱
> isLeveragestring是否借貸. 僅統一帳戶spot有效. 0: 否, 1: 是. 經典帳戶現貨交易不支持, 總是0
> orderIdstring訂單ID
> orderLinkIdstring用戶自定義訂單ID
> sidestring訂單方向.買:Buy,賣:Sell
> orderPricestring訂單價格. 經典帳戶現貨交易不支持
> orderQtystring訂單數量. 經典帳戶現貨交易不支持
> leavesQtystring剩餘委託未成交數量. 經典帳戶現貨交易不支持
> createTypestring訂單創建類型
  • 經典帳戶和統一帳戶1.0(inverse): 總是返回""
  • 現貨、期權不返回該字段
  • > orderTypestring訂單類型. 市價單:Market,限價單:Limit
    > stopOrderTypestring条件单的订单类型。如果该订单不是条件单,则不会返回任何类型. 經典帳戶現貨交易不支持
    > execFeestring交易手續費. 您可以從這裡了解現貨手續費幣種信息. 經典帳戶現貨交易不支持
    > execIdstring成交Id
    > execPricestring成交價格
    > execQtystring成交數量
    > execPnlstring每筆平倉成交的盈虧. 該值和交易日誌(統一帳戶)中的"cashFlow"字段一致
    > execTypestring成交類型. 經典帳戶現貨交易不支持
    > execValuestring成交價值. 經典帳戶現貨交易不支持
    > execTimestring成交時間(毫秒)
    > isMakerBool是否是 Maker 訂單,true 為 maker 訂單,false 為 taker 訂單
    > feeRatestring手續費率. 經典帳戶現貨交易不支持
    > tradeIvstring隱含波動率,僅期權有效
    > markIvstring標記價格的隱含波動率,僅期權有效
    > markPricestring成交執行時,該 symbol 當時的標記價格. 經典帳戶現貨交易不支持
    > indexPricestring成交執行時,該 symbol 當時的指數價格,目前僅對期權業務有效
    > underlyingPricestring成交執行時,該 symbol 當時的底層資產價格,僅期權有效
    > blockTradeIdstring大宗交易的订单 ID ,使用 paradigm 进行大宗交易时生成的 ID
    > closedSizestring平倉數量
    > seqlong序列號, 用於關聯成交和倉位的更新
    • 同一時間有多筆成交, seq相同
    • 不同的幣對會存在相同seq, 可以使用seq + symbol來做唯一性識別

    訂閱示例

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

    推送示例

    {
    "id": "592324803b2785-26fa-4214-9963-bdd4727f07be",
    "topic": "execution",
    "creationTime": 1672364174455,
    "data": [
    {
    "category": "linear",
    "symbol": "XRPUSDT",
    "execFee": "0.005061",
    "execId": "7e2ae69c-4edf-5800-a352-893d52b446aa",
    "execPrice": "0.3374",
    "execQty": "25",
    "execType": "Trade",
    "execValue": "8.435",
    "execPnl": "0",
    "isMaker": false,
    "feeRate": "0.0006",
    "tradeIv": "",
    "markIv": "",
    "blockTradeId": "",
    "markPrice": "0.3391",
    "indexPrice": "",
    "underlyingPrice": "",
    "leavesQty": "0",
    "orderId": "f6e324ff-99c2-4e89-9739-3086e47f9381",
    "orderLinkId": "",
    "orderPrice": "0.3207",
    "orderQty": "25",
    "orderType": "Market",
    "stopOrderType": "UNKNOWN",
    "side": "Sell",
    "execTime": "1672364174443",
    "isLeverage": "0",
    "closedSize": "25",
    "seq": 4688002127
    }
    ]
    }