When placing a marker sell order I make sure that all the filters are applied, but even with that in place, sometimes the executed qty is not the requested quantity to sell, Why not and why is there no error ?
I requested to sell 9500 SUIEUR, but this is the result:
Binance doesn’t provide liquidity on the market, the users do.
Available liquidity is naturally limited: if the outstanding orders from other users to buy SUI for EUR offer to buy only 1282.40 SUI, then you can’t sell more than that at the moment.
Is that order from the real exchange, or the testnet? On testnet there isn’t much activity so it’s rather common to exhaust the order book with a huge order. For example, if I query /api/v3/depth?symbol=SUIEUR&limit=1000 right now, the bids:
That is, on testnet you could MARKET SELL only 901.4 SUI, as that’s what was available at the moment. On the actual exchange there’s much more liquidity available. (Beware of the slippage though.)
When a MARKET order ends up in EXPIRED status, this typically means that the order book did not have enough liquidity at the execution time. In your case, there might have been only 1282.40 worth of SUI in outstanding buy orders.
Thanks for the answer, but that behaviour is somewhat bogus, meaning that I will have to keep track of the qty and then I have to pay extra fees etc.
Let’s say that I over several days/week buy a asset, in that case, there is never a ‘error’ saying that I cannot buy - if I’m with in the given filters for the asset, so just to cap the quantity I want to sell seems wrong and only a benefit of Binance to charge more fees.
Is there any documentation on this behaviour and is there a way to avoid this ?