Часто задаваемые вопросы
Главная
Центр поддержки
Часто задаваемые вопросы
Криптовалютные Деривативы
Фьючерсные Контракты
Правила торговли
Обновление потока данных в Websocket API для фьючерсов USDT-Margined

Обновление потока данных в Websocket API для фьючерсов USDT-Margined

2020-10-20 12:24
ПОТОК ДАННЫХ В WEB SOCKET
Важное примечание: с целью обеспечения качественного сервиса для наших пользователей Binance Futures проведет обновление и оптимизацию потока пользовательских данных в Websocket для API фьючерсного контракта USDT-margin. Предполагаемая дата завершения обновления: 09.11.2020.
Обращаем ваше внимание на то, что для события ACCOUNT_UPDATE в USER-DATA-STREAM появились новые удобные оптимизированные правила push-уведомлений.
1. При изменении актива пользователя:
  • Будет отправлена информация только об этом активе и о его балансе.
  • Информация о других активах больше не будет передаваться, даже если остаток балансов больше 0.
  • Если изменение актива не связано с изменением позиции, для позиции «P» будет возвращаться только пустое значение []
2. При изменении позиции символа или типа маржи символа:
  • «P» выдаст детали в позиции «BOTH» этого символа
  • Если изменение происходит в позиции «LONG» или «SHORT», то будет отправлена соответственно измененная позиция «LONG» или «SHORT» данного символа
  • Также будет отправлена инициализированная «LONG»- или «SHORT»- изолированная позиция этого символа
  • Информация о положении других символов больше не будет передаваться, даже если их позиция не равна 0.
3. Полную информацию об активах и позициях необходимо получать через соответствующие конечные точки REST (GET /fapi/v2/account и GET /fapi/v2/positionRisk), а информацию об измененном активе или позиции для локально кешированных данных актива/позиции можно обновить через событие ACCOUNT_UPDATE в Websocket USER-DATA-STREAM.
Ниже приводится несколько различных примеров возможных сценариев, которые помогут лучше понять изменения после обновления:
Например, на фьючерсном кошельке пользователя находятся 94,89888561 USDT и 0,01575839 BNB, а также открыты позиция LONG на 0,01 BTCUSDT и позиция SHORT на -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 is not pushed as there is not balance change
{
"a":"BNB", // BNB is pushed as the balance is updated.
"wb":"0.02575839",
"cw":"0"
}
],
«P»:[], // данные о позиции не передаются, так как в позиции нет изменений.
"m":"DEPOSIT"
}
}
2. закрывает короткую (SHORT) позицию 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":[
{
«а»:«USDT», // USDT передается, потому что в нем появляются изменения из-за реализованного PNL.
"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» // BOTH-позиция передается всегда.
},
// LONG-позиция не передается, потому что она еще не инициализирована.
{
"s":"ETHUSDT",
"pa":"0",
"ep":"0.00000",
"cr":"-0.18750000",
"up":"0",
"mt":"cross",
"iw":"0",
«ps»:«SHORT» // SHORT-позиция передается, поскольку в ней появляются изменения от данного события.
}
],
"m":"ORDER"
}
}
3. изменяет режим ETHUSDT из CROSS в ISOLATED
Перед обновлением
После обновления
{
"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":[
{
«а»:«USDT», // USDT передается, потому что это маржинальный актив.
"wb":"94.90282656",
"cw":"93.71241461"
}
],
«P»:[ // только ETHUSDT передается, так как есть изменение режима (CROSS на ISOLATED).
{
"s":"ETHUSDT",
"pa":"0",
"ep":"0.00000",
"cr":"-0.00057000",
"up":"0",
"mt":"isolated",
"iw":"0",
«ps»:«BOTH» // BOTH-позиция передается всегда.
},
// LONG-позиция не передается, потому что она еще не инициализирована.
{
"s":"ETHUSDT",
"pa":"0",
"ep":"0.00000",
"cr":"-0.18750000",
"up":"0",
"mt":"isolated",
"iw":"0",
«ps»:«SHORT» // SHORT передается по мере инициализации.
}
],
"m":"MARGIN_TYPE_CHANGE"
}
}