urgently add a "submitted" orderstatus to prevent more losses

This is not only relted to REST API, but to the whole exchange.

Everytime the price is moving a bit faster than usual, I place order that should fill immediately. But instead with a “orderinfo” call they have status “NEW”==“open” while they are not listed in “open_orders”.
Of course now you can say “REST API is slow, use websocket instead”, but no, in this case it is not the API, it is the whole exchange. My bot waited several seconds and because the orderstatus was still “NEW” he assumed that it simply wasnt matched and made a cancel request, to place the order to another price. But this new order failed the same way.

Now 2 scenarios are possible:

  1. I get an error message when trying to place an order, usually means it will get matched, but API is simply too bad.
  2. I dont get an error message when canceling, so the order gets indeed unfilled cancelled.

It would help alot, if the status of the order, that was not yet placed and, would be sth like “submitted” instead of “open”. It is very important to distinguish between these 2 states. If it is submitted, my bot needs to wait. If it is really unfilled and open, my bot needs to act immediately and cancel it, to place it at a better price.
Without this “submitted” status, I always need to wait, without knowing what the actual status of the order is (before doing more calls to find out more).

Ok, the submitted status is important, but currently binance is totally broken!

The best ask is 18200€ while best bid ist 18600€ ! that is totally wrong, also on the website it looks like this

see this screenshot, bids are higher asks (also API retunrs this) that is why my orders failed:

with a “submitted” status of orders, it would be alot easier to track this kind of errors. Because currently , when status is “NEW”, one simply does not know if it is really open or only waiting for submition.

I think you should have a look at the Time in force option when passing an order: https://binance-docs.github.io/apidocs/spot/en/#public-api-definitions
If I’m understanding your problem correctly, this would fix it.

@dino @GG-lemon and all other possible binance employes:

There need something to be done.
Tonight I made very huge losses, because of binances problems and my bot is simply unable to identify those problems, because of the lacky API.

From my logs I assume that all placed orders took several minutes to get filled, although the orderbook price should match them immediately. I did not get “Does not exist” from an get_orderinfo REST call, but the response told me that it is open and unfilled (for several minutes and also the balance did not update, so it is not like websocket would help, the problem is binance).

In this case a “submitted” status, like I’m requesting since so long, would have saved me from the losses today. (yes in this speical case, “submitted” would work, becase the problem is not “Order does not exist”.)

So please, finally do something to allow your clients protect themself against faulty binance servers!

PS: “Fill or Kill” is no solution unfortunately, because I want my order to get filled (and a resting order can also get filled, so it is better to let them rest for a specific time). I only cancel and place a new one, when I think I need a better price to increase chances of getting filled (which of course does not help if orderbook data ist wrong or orders need minutes to get filled)