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

ПОТОК ДАННЫХ В 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»
}
}
0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *