Under price/Time priority order matching, market orders get priority over limit orders. How is starvation of limit orders prevented? By starvation, I am referring to the case where limit orders don't get a chance to be executed because there is always a market order available to be executed.

Can the priority of queued up limit orders be increased after some time?

Edit: Adding sources to backup my claim that market orders are executed before limit orders under price/time priority.

http://www.six-swiss-exchange.com/knowhow/exchange/trading/matching_en.html http://www.eurexchange.com/exchange-en/trading/market-model/matching-principles


1 Answer 1


Market orders do not get priority over limit orders. Time is the only factor that matters in price/time order matching when the order price is the same.

For example, suppose the current best available offer for AAPL is $100.01 and the best available bid is $100.00. Now a limit buy for $100.01 and a market buy arrive at around the same instant. The matching engine can only receive one order at a time, no matter how close together they arrive.

Let's say that by chance the limit buy arrives first. The engine will check if there's a matching sell at $100.01 and indeed there is and a trade occurs. This all happens in an instant before the matching engine ever sees the market buy. Then it moves on to the market buy and processes it accordingly.

On the other hand, let's say that by chance the market buy arrives first. The engine will match it with the best available sell (at $100.01) and a trade occurs. This all happens in an instant before the matching engine ever sees the limit buy. Then it moves on to the limit buy and processes it accordingly.

So there's never a comparison between the two orders or their "priorities" because they never exist in the system at the same time. The first one to arrive is processed first; the second one to arrive is processed second.

  • according to multiple sources market orders get priority for example: eurexchange.com/exchange-en/trading/market-model/…... does this mean that when a limit order (that can be matched) and a market order come in at the same time the market order is executed as it has priority ? Specifically, is the priority between them only ever a factor when they arrive at the same time? Mar 25, 2015 at 21:08
  • 1
    Ah. EUREX is being extremely lazy in that first paragraph; the rest of the page explains what they really mean. In the first paragraph they're using the term limit order to mean an order that is not immediately executable, even though many types of limit orders are immediately executable (as explained further down the page). Regardless, your comment demonstrates that you are still missing the point that there's no such thing as "at the same time". Orders are always sorted by arrival time, and the first to arrive (even by 1 nanosecond) wins, regardless of "type".
    – dg99
    Mar 25, 2015 at 21:18
  • 1
    Well, feel free to disagree all you want, but EUREX's price/time priority markets are synchronized. Only one order can arrive at a time. The matching engine's NIC cannot process two network packets at the same time. The order whose packets arrive on the matching engine's NIC first is the one that gets processed first, all before the matching engine ever sees the next order.
    – dg99
    Mar 25, 2015 at 21:45
  • 1
    With the added details you provided, I can now see how only one order is allowed into the book at a time as it is synchronized. Curious still, why does the article mention a priority if they are synchronizing ? Mar 25, 2015 at 22:33
  • 1
    That is a good question, but I did not want to get into it until after the first topic was settled (for fear of confusing the issue). The reason that the article mentions a priority is that there are other market types besides price/time priority that EUREX supports (explained farther down the page). In those markets there can indeed be market and limit orders in process at the same time -- synchronization is not supported (by design). So EUREX is being lazy by making a blanket statement at the top, when it doesn't really apply to all the paragraphs on the page.
    – dg99
    Mar 26, 2015 at 16:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .