[Feature Request] Trading Status/current fee via websocket

Hello,
I received your update email about removal of “outboundAccountInfo” from websocket userdata stream.

binance should add features and not remove them…

Aynway, besides providing the full balance, this stream also provided:

  1. The current fee tier (“t” and “m”)
  2. The stop of global trading (“T”)

So now you have to provide alternative streams that are pushing this data whenever it changes.

Of course we also need a stream informing about particular pairs, where trading is halted or any special mode like “post only”.

Please tell me the websocket streams to get these informations from.

In addtion a question:
“outboundAccountPosition” is triggered on any balance change, right? So also when doing a withdrawal/deposit or transfer between accounts?

Infos like Trading status and current fee tier may change anytime, I can not foresee this. So getting this change via weboscket is the only viable way, otherwise I would need to make a REST call for this every few seconds, and you don’t want me to do that.

Trading status or trading fee changes is low frequency event, restful API is definitely the best practise to get the data.

Yes they are low frequency events, but why does it mean they are best use with REST? I don’t think so.

Why don’t you understand that it is very very important to always use the correct trading fee when calculating possible profits (before you actually make the trades)? And it is also important to know if trading is possible, before you try to do the trade.

And since I calculate every few seconds and may try to place an order every few seconds, this means I have to check these REST endpoints every few seconds.
That can’t be right.

@dino now that finally the “outboundAccountInfo” event will get disabled, I urgently need to beg you, that you add changes for status and fee-tiers to another websocket stream instead.

Please try think from the point of view of a daytrader like me.
I do thousands of trades every day. And to know if my trade will be profitable I of course need to substract the fees in my calculation. If I only ask the REST API call for current fee like once per hour (which already is too much for “low frequency event”), and my fee tier gets worse because of shrinking trading volume, I will do losses instead of profits for 1 hole hour, which can be hundreds of trades. So to be save, I would need to make the REST fee-tier call before every single trade I do, so thousands times a day.

Similar problem for the trading status. With my strategy I will do a loss whenever a place-order call returns “error, trading disabled” or similar. I need to know in advance, before I submit the order, if trading is enabled or not. So also this would result in thousand REST calls every day, just to not make losses.

Especially because they are low frequency events, it is absolutely no problem to include them in a websocket stream, they will not cause high traffic, if you only send them when the fee-tier/trading status changes.

I beg you, please try to understand this trader perspective.

please let me understand the question, the trading fee is linked into your vip level, start from 0.1%, that only change when you reached the next level. I think by calculating your trading volume, it should be easy to get the current level/rate. I don’t think it’s necessary to include this info into websocket.

@dino thank you for your response.
Fee: Compared to other exchanges, the fee-tier of users will change less often, but this is only because binance has such an unrealistic fee-tier system which is bound to BTC (with rsiing BTC price, it gets more and more difficult). Hopefully binance will change the required volumes in the future.
But even with the current fee tier system, I could easily be on a boundary. Eg. a month has 30 days and I trade 33.4 BTC every second day, and the other days nothing. After 1 month, I will have 30 day volume of 500 BTC and reached the better fee tier. But because I do not trade at the 31th day, the 30 day volume will go below 500. And the next day it will go over 500 again, so my fee-tier may change every single day in this extreme example. But even if my fee tier is getting worse only 1 day a month, I will only notice this after doing a REST call. And if I do this eg. only once per day, I may trade a whole day with wrong fees, resulting in losses. So I need to tighten the intervall when I do the REST call for fees. Even every 1 hour might be too less when you see my number of trades.

You say calculating the trading volume would solve this:
That might be a good idea, if I can calculate the trading volume 100% correct from websocket and I know the fee-tiers (which volume reaches which level). But how do I deal with different fee per pair? As you can see here, I don’t have the same fee for each pair: How to get promotional fee via API?
So even if this would work (I think the different fee per pair is currently not solvable), it is still very complicated, compared to the very minor work binance had to do, to simply add fee-tier-changes to any stream. It will only be send very rare, so no big traffic from this.

Trading pair status:
Since you offered no possible solution to this one, I guess you finally see my point and will implement something for this? Would be really important, especially combined with this topic: Rest API trading is not enabled - Any status call/stream? (implement a cancel_only status in API).

Sum up:
If you have working workarounds, eg. like the trading volume suggestion, I’m happy to hear them and to see, if they would really work. But if you don’t have workarounds, there is no other way than to implement it into API.
It is not like my feature requests are strange, many other exchanges do have what I request here. I want to hlep to make binance trading better. And at most I don’t want to make losses when my bot trades at binance.

bump @dino

binance just changed the weight for the “exchangeInfo” call from 1 to 10!

This makes it very clear, that binance urgently needs to add the trading status of every pair to websocket. I need to know when a pair is halted/cancel_only before I try to place an order. And without websocket that means I need to use REST to get exchangeInfo every few minutes!

So instead of only tighten the REST limits, how about finally adding crucial information to the websocket, so users do not need to call REST so often that your servers break?!

yes

that will trigger the event balanceUpdate, please find the details from document.
https://binance-docs.github.io/apidocs/spot/en/#payload-account-update

this event was the reason for my question. outboundAccountPosition is triggered on any balance change. For me this sentence means, also on deposit/transfers.

So since your answer is the same confusing like the documentation, please state cleary:
To maintain a correct balance by myself, it is enough to only rely on “outboundAccountPosition” and there is no need to listen to “balanceUpdate” since the first one is triggered on “any balance change”. Right?

yes