Купить криптовалюту
Оплатить
Рынки
Торговля
Деривативы
Earn
NFT
Institutional
Feed

Часто задаваемые вопросы

Функции Аккаунта
Обучающее
Binance Fan Token
Binance Earn
Депозит/Вывод Криптовалюты
Купить криптовалюту (Фиат/P2P)
Спот & Маржинальная Торговля
Криптовалютные Деривативы
Торговые боты
Финансы
API
Безопасность
Условия Использования
Tax
Binance Convert
NFT
VIP
Главная
Центр поддержки
Часто задаваемые вопросы
Криптовалютные Деривативы
Фьючерсные Контракты
Правила торговли
Обновление потока данных в Websocket API для фьючерсов USDT-Margined

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

2020-11-20 14:02
ПОТОК ДАННЫХ В 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"
}
}