Aktualizacja strumienia danych użytkownika Websocketu API kontraktu futures USDT-marginowanego

Opublikowano: 2020-10-20 12:24

1. Zmiana aktywa użytkownika:

  • Przesyłane są tylko informacje dotyczące danego aktywa i jego salda
  • Pozostałe aktywa i informacje nie zostaną przesłane, nawet jeśli ich salda nie będą wynosić 0
  • Jeśli zmiana aktywów nie wiąże się ze zmianą pozycji, pozycja „P” zwróci jedynie puste pole []

2. Zmiana pozycji symbolu lub zmiana typu marginu symbolu:

  • „P” prześle szczegóły w pozycji „BOTH” tego symbolu
  • Jeśli zmiana dotyczy pozycji „LONG” lub „SHORT”, przesłana zostanie zmieniona pozycja „LONG” lub „SHORT” tego symbolu
  • Przesłana zostanie również zainicjowana pozycja odizolowana „LONG” lub „SHORT” tego symbolu
  • Informacje o pozycjach innych symboli nie będą już przesyłane, nawet jeśli ich pozycje nie są równe 0

3. Podsumowując, pełne informacje o aktywach i pozycjach powinny być uzyskiwane za pośrednictwem powiązanych punktów końcowych (GET /fapi/v2/account i GET /fapi/v2/positionRisk), a lokalnie buforowane dane aktywów lub pozycji mogą być aktualizowane za pośrednictwem zdarzenia ACCOUNT_UPDATE w Websocket USER-DATA-STREAM z informacjami o zmienionych aktywach lub pozycjach.

Aby ułatwić zrozumienie aktualizacji, poniżej przedstawiamy kilka przykładowych scenariuszy:

Załóżmy, że użytkownik posiada 94,89888561 USDT i 0,01575839 BNB w swoim portfelu Futures oraz 0,01 BTCUSDT w pozycji LONG i –0,01 ETHUSDT w pozycji SHORT. Jeśli użytkownik:

  1. Przeleje 0,01 BNB na konto futures

Przed aktualizacją

Po aktualizacji

{

"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 nie jest przesyłane, ponieważ nie nastąpiła zmiana salda

{

"a":"BNB", // BNB jest przesyłane, ponieważ saldo zostało zaktualizowane.

"wb":"0.02575839",

"cw":"0"

}

],

"P":[], // Nie są przesyłane żadne dane pozycji, ponieważ nie nastąpiła żadna zmiana pozycji.

"m":"DEPOSIT"

}

}

2. Zamknie pozycję short ETHUSDT

Przed aktualizacją

Po aktualizacji

{

"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 jest przesyłane, ponieważ zostało zmienione przez Zrealizowany PNL.

"wb":"94.91428561",

"cw":"93.71241461"

},

{

"a":"BNB", // BNB jest przesyłane, ponieważ zostało zmienione przez spalanie opłaty transakcyjnej BNB.

"wb":"0.02571331",

"cw":"0"

}

],

"P":[ // Przesyłana jest jedynie zmieniona pozycja ETHUSDT.

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.00057000",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"BOTH" // Przesyłane są zawsze OBIE pozycje.

},

// Pozycja LONG nie jest przesyłana, ponieważ nie została zaktualizowana.

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.18750000",

"up":"0",

"mt":"cross",

"iw":"0",

"ps":"SHORT" // Pozycja SHORT jest przesyłana, ponieważ została zmieniona w wyniku tego zdarzenia.

}

],

"m":"ORDER"

}

}

3. Zmieni ETHUSDT z trybu CROSS na IZOLOWANY

Przed aktualizacją

Po aktualizacji

{

"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 jest przesyłane, ponieważ jest aktywem margin.

"wb":"94.90282656",

"cw":"93.71241461"

}

],

"P":[ // przesyłany jest tylko ETHUSDT, ponieważ ma zmieniony tryb (z CROSS na IZOLOWANY).

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.00057000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"BOTH" // Przesyłane są zawsze OBIE pozycje.

},

// Pozycja LONG nie jest przesyłana, ponieważ nie została zaktualizowana.

{

"s":"ETHUSDT",

"pa":"0",

"ep":"0.00000",

"cr":"-0.18750000",

"up":"0",

"mt":"isolated",

"iw":"0",

"ps":"SHORT" // przesyłana jest pozycja SHORT, ponieważ została zainicjowana.

}

],

"m":"MARGIN_TYPE_CHANGE"

}

}

Zarejestruj się teraz – uzyskaj do 100 USDT rabatu na opłaty handlowe (dla zweryfikowanych użytkowników)