1. 當用戶的資產變更時:
2. 當倉位幣種變更或幣種的桿槓類型變更時:
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 空頭倉位。如果用戶:
升級前 | 升級後 |
{ "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" } } |