Preguntas frecuentes
Inicio
Centro de soporte
Preguntas frecuentes
Cripto-derivados
Contratos de Futuros
Reglas para el Trading
Actualización del flujo de datos de usuarios de Websocket de la API de Futuros USDT-M

Actualización del flujo de datos de usuarios de Websocket de la API de Futuros USDT-M

2020-10-20 12:24
1. Cuando se cambia un activo del usuario:
  • Solo se enviará este activo y la información de su balance
  • Ya no se enviarán otros activos con su información, incluso si sus balances son mayores que 0
  • Si el cambio de activo no va acompañado de ningún cambio de posición, la posición "P" solo devolverá un [] vacío
2. Cuando se cambia la posición de un símbolo o se modifica el tipo de margen de un símbolo:
  • "P" enviará los detalles en la posición "BOTH" de este símbolo
  • Si el cambio ocurre en la posición "LONG" o "SHORT", se enviará la posición "LONG" o "SHORT" cambiada de este símbolo
  • También se enviará la posición aislada "LONG" o "SHORT" iniciada de este símbolo
  • La información de posición de otros símbolos ya no se enviará, incluso si sus posiciones son mayores que 0
3. En resumen, la información completa de los activos y las posiciones debe obtenerse a través de los endpoint rest relacionados (GET /fapi/v2/account y GET /fapi/v2/positionRisk), y los datos de activos o posiciones almacenados localmente en caché pueden actualizarse a través del evento ACCOUNT_UPDATE en USER-DATA-STREAM de Websocket con la información del activo o la posición cambiada.

Para comprender mejor la actualización, aquí tienes algunos ejemplos de escenarios diferentes:

Imaginemos que un usuario tiene 94.89888561 USDT y 0.01575839 BNB en su billetera de Futuros, 0.01 BTCUSDT en la posición Long y -0.01 ETHUSDT en la posición Short. Si el usuario:
  1. Transfiere 0.01 BNB a la cuenta de Futuros

Antes de la actualización

Después de la actualización

{
"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 no se envía porque no hay cambios en el balance
{
"a":"BNB", // BNB se envía a medida que se actualiza el balance.
"wb":"0.02575839",
"cw":"0"
}
],
"P":[], // No se envían datos de la posición porque no hay cambios en la posición.
"m":"DEPOSIT"
}
}
2. Cierra la posición Short de ETHUSDT

Antes de la actualización

Después de la actualización

{
"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 se envía porque cambió por el PnL realizado.
"wb":"94.91428561",
"cw":"93.71241461"
},
{
"a":"BNB", // BNB se envía porque cambió por la quema de las comisiones de trading de BNB.
"wb":"0.02571331",
"cw":"0"
}
],
"P":[ // Solo se envía la posición cambiada de ETHUSDT.
{
"s":"ETHUSDT",
"pa":"0",
"ep":"0.00000",
"cr":"-0.00057000",
"up":"0",
"mt":"cross",
"iw":"0",
"ps":"BOTH" // Las posiciones BOTH se envían siempre.
},
// La posición LONG no se envía porque aún no se ha iniciado.
{
"s":"ETHUSDT",
"pa":"0",
"ep":"0.00000",
"cr":"-0.18750000",
"up":"0",
"mt":"cross",
"iw":"0",
"ps":"SHORT" // La posición SHORT se envía a medida que cambia a partir de este evento.
}
],
"m":"ORDER"
}
}
3. Cambia ETHUSDT del modo CROSS al modo ISOLATED

Antes de la actualización

Después de la actualización

{
"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 se envía porque es un activo de margen.
"wb":"94.90282656",
"cw":"93.71241461"
}
],
"P":[ // solo se envía ETHUSDT porque tiene un cambio de modo (de CRUZADO a AISLADO).
{
"s":"ETHUSDT",
"pa":"0",
"ep":"0.00000",
"cr":"-0.00057000",
"up":"0",
"mt":"isolated",
"iw":"0",
"ps":"BOTH" // Las posiciones BOTH se envían siempre.
},
// La posición LONG no se envía porque aún no se ha iniciado.
{
"s":"ETHUSDT",
"pa":"0",
"ep":"0.00000",
"cr":"-0.18750000",
"up":"0",
"mt":"isolated",
"iw":"0",
"ps":"SHORT" // SHORT se envía a medida que se inicia.
}
],
"m":"MARGIN_TYPE_CHANGE"
}
}