I am using the Binance futures API to send orders as follows: I observe the best bid and ask, and I send limit orders to buy(sell) at prices below(above) the current best bid(ask). If latency were zero, these order would always go into the order book and be charged maker commissions if and when executed. They would NEVER be executed immediately upon arrival. That’s my goal.
Some significant portion of the time, however, given that latency is nonzero, by the time my order arrives at Binance’s matching engine, the best bid and ask have moved such that my order is now executable. In such cases, the order executes immediately against an order resting in the book, and I am charged the taker commission rate, something I really want to avoid.
Is there any way to mark a limit order such that it will be rejected by Binance if it is executable on arrival at the matching engine? I find no such feature in the API documentation.
One idea is to reduce recvWindow, but that won’t eliminate all instances of this problem.