USDT合約API User Data Stream 接口推送規則更新

發布於 2020-10-20 12:24

1. 當用戶的資產變更時:

  • 只有此資產及其餘額資訊才會被推播
  • 即使餘額可能不為 0,其他資產和訊息也不會再被推播
  • 如果資產變更並未伴隨著任何倉位變化,則「 P 」倉位只會返回空的 []

2. 當倉位幣種變更或幣種的桿槓類型變更時:

  • 「 P 」將推播此幣種的「雙向」倉位細節
  • 如果變更發生在「多頭」或「空頭」倉位時,此幣種所變更的「多頭」或「空頭」倉位將被推播
  • 該幣種的初始「多頭」或「空頭」逐倉也將會被推播
  • 即使倉位可能不為 0,其他幣種的倉位訊息也不會再被推播

3. 簡而言之,資產和倉位的完整訊息應透過相關的其他端點 (GET /fapi/v2/account 和 GET /FAPI/v2/Position Risk) 獲取,而本地緩存的資產或倉位數據可透過 Websocket USER-DATA-STREAM 中的 ACCOUNT_UPDATE 事件更新,並使用已變更的資產或倉位訊息。

為了更了解升級,您可以在下面找到一些不同的情境示例:

假設一個用戶在合約錢包中持有 94.89888561 USDT 和 0.01575839 BNB,持有 0.01 BTCUSDT 多頭倉位和 -0.01 ETHUSDT 空頭倉位。如果用戶:

  1. 將 0.01 BNB 轉入合約帳戶

升級前

升級後

{

"e":"ACCOUNT_UPDATE",

"T":1603093193280,

"E":1603093193284,

"a":{

"B":[

{

"a":"USDT",

"wb":"94.91018561",

"cw":"93.70831461"

},

{

"a":"BNB",

"wb":"0.02575839",

"cw":"0"

}

],

"P":[

{

"s":"BTCUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-147.28880096",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"BOTH"

},

{

"s":"BTCUSDT",

"pa":"0.010",

"ep":"11445.71000",

"cr":"-23.20024001",

"up":"0.17770",

"mt":"isolated",

"iw":"1.20187100",

"ps":"LONG"

},

{

"s":"BTCUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-6.04296000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"SHORT"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.00057000",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"BOTH"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-385.79173997",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"LONG"

},

{

"s":"ETHUSDT",

"pa":"-0.010",

"ep":"375.74000",

"cr":"-0.19160000",

"up":"0.00149",

"mt":"cross",

"iw":"0",

"ps":"SHORT"

}

],

"m":"DEPOSIT"

}

}

{

"e":"ACCOUNT_UPDATE",

"T":1603093193280,

"E":1603093193284,

"a":{

"B":[

//USDT 不會被推播,因為餘額沒有變化

{

" a ":" BNB ",//當餘額更新時, BNB 便會被推播。

"wb":"0.02575839",

"cw":"0"

}

],

" P ": [],//由於倉位沒有變更,因此倉位數據不會被推播。

"m":"DEPOSIT"

}

}

2. 平倉 ETHUSDT 空頭倉位

升級前

升級後

{

"e":"ACCOUNT_UPDATE",

"T":1603093588546,

"E":1603093588553,

"a":{

"B":[

{

"a":"USDT",

"wb":"94.91428561",

"cw":"93.71241461"

},

{

"a":"BNB",

"wb":"0.02571331",

"cw":"0"

}

],

"P":[

{

"s":"BTCUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-147.28880096",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"BOTH"

},

{

"s":"BTCUSDT",

"pa":"0.010",

"ep":"11445.71000",

"cr":"-23.20024001",

"up":"0.13910",

"mt":"isolated",

"iw":"1.20187100",

"ps":"LONG"

},

{

"s":"BTCUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-6.04296000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"SHORT"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.00057000",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"BOTH"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-385.79173997",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"LONG"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.18750000",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"SHORT"

}

],

"m":"ORDER"

}

}

{

"e":"ACCOUNT_UPDATE",

"T":1603093588546,

"E":1603093588553,

"a":{

"B":[

{

" a ":" USDT ",// USDT 被推播,因為它被已實現盈虧所變更。

"wb":"94.91428561",

"cw":"93.71241461"

},

{

" a ":" BNB ",// BNB 被推播,因為它被 BNB 交易費用銷毀所變更。

"wb":"0.02571331",

"cw":"0"

}

],

" P ":[// 只推播 ETHUSDT 的變更倉位。

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.00057000",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"BOTH" // 雙向倉位都會被推播。

},

// 多頭倉位未被推播,因為它尚未初始化。

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.18750000",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"SHORT" // 因為此事件而發生變更時,空頭倉位會被推播。

}

],

"m":"ORDER"

}

}

3. 將 ETHUSDT 從全倉模式變更為逐倉模式

升級前

升級後

{

"e":"ACCOUNT_UPDATE",

"T":1603094890011,

"E":1603094890017,

"a":{

"B":[

{

"a":"USDT",

"wb":"94.90282656",

"cw":"93.71241461"

},

{

"a":"BNB",

"wb":"0.02571331",

"cw":"0"

}

],

"P":[

{

"s":"BTCUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-147.28880096",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"BOTH"

},

{

"s":"BTCUSDT",

"pa":"0.010",

"ep":"11445.71000",

"cr":"-23.20024001",

"up":"0.03240",

"mt":"isolated",

"iw":"1.19041195",

"ps":"LONG"

},

{

"s":"BTCUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-6.04296000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"SHORT"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.00057000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"BOTH"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-385.79173997",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"LONG"

},

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.18750000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"SHORT"

}

],

"m":"MARGIN_TYPE_CHANGE"

}

}

{

"e":"ACCOUNT_UPDATE",

"T":1603094890011,

"E":1603094890017,

"a":{

"B":[

{

"a":"USDT", // USDT 被推播,因為它是槓桿資產。

"wb":"94.90282656",

"cw":"93.71241461"

}

],

" P ":[// 僅推播 ETHUSDT,因為它的模式已變更 (全倉到逐倉) 。

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.00057000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"BOTH" // 雙向倉位都會被推播。

},

// 多頭倉位未被推播,因為它尚未初始化。

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.18750000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"SHORT" // 在初始化時會推播空頭

}

],

"m":"MARGIN_TYPE_CHANGE"

}

}

立即註冊 — 獲得高達 100 USDT 交易手續費折抵 (適用於已通過驗證用戶)