Order matching system

Order matching at the heart of trading systems in Deutsche Börse.

An order matching system or simply matching system is an electronic system that matches buy and sell orders for a stock market, commodity market or other financial exchanges. The order matching system is the core of all electronic exchanges and are used to execute orders from participants in the exchange.

Orders are usually entered by members of an exchange and executed by a central system that belongs to the exchange. The algorithm that is used to match orders varies from system to system and often involves rules around best execution.[1]

The order matching system and implied order system or Implication engine is often part of a larger electronic trading system which will usually include a settlement system and a central securities depository that are accessed by electronic trading platforms. These services may or may not be provided by the organisation that provides the order matching system.

The matching algorithms decide the efficiency and robustness of the order matching system. There are two states for a market: continuous trading where orders are matched immediately or auction where matching is done at fixed intervals. A common example when a matching system is used in auction state is at the market open when a number of orders have built up.


Electronic order matching was introduced in the early 1980s in the United States to supplement open outcry trading. For example the then Mid West Stock Exchange (now the Chicago Stock Exchange) launched the “MAX system, becoming one of the first stock exchanges to provide fully automated order execution” in 1982.[2][3]


There are a variety of algorithms for auction trading, which is used before the market opens, on market close etc. However, most of the time, continuous trading is performed.

The trading mechanism on electronic exchanges is an important component that has a great impact on the efficiency and liquidity of financial markets. The choice of matching algorithm is an important part of the trading mechanism. The most common matching algorithms are the Pro-Rata and Price/Time algorithms.

Comparison of Price/Time and Pro-Rata Following are few basic remarks about the two basic algorithms and their comparison.[4]

Price/Time algorithm (or First-in-First-out)[edit]

  • Motivates to narrow the spread, since by narrowing the spread the limit order is the first in the order queue.
  • Discourages other orders to join the queue since a limit order that joins the queue is the last.
  • Might be computationally more demanding than Pro-Rata. The reason is that market participants might want to place more small orders in different positions in the order queue, and also tend to “flood” the market, i.e., place limit order in the depth of the market in order to stay in the queue.

Pro-Rata algorithm[edit]

  • Motivates other orders to join the queue with large limit orders. As a consequence, the cumulative quoted volume at the best price is relatively large.


Large limit orders can be “front-run” by “penny jumping”. For example, if a buy limit order for 100,000 shares for $1.00 is announced to the market, many traders may seek to buy for $1.01. If the market price increases after their purchases, they will get the full amount of the price increase. However, if the market price decreases, they will likely be able to sell to the limit order trader, for only a one cent loss. This type of trading is probably not illegal, and in any case, a law against it would be very difficult to enforce.[5]

See also[edit]


.mw-parser-output .reflist{font-size:90%;margin-bottom:0.5em;list-style-type:decimal}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}body.skin-minerva .mw-parser-output .reflist{column-gap:2em}

  1. ^ .mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:”””””””‘””‘”}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url(“//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg”)right 0.1em center/9px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a{background-size:contain}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url(“//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg”)right 0.1em center/9px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a{background-size:contain}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url(“//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg”)right 0.1em center/9px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a{background-size:contain}.mw-parser-output .cs1-ws-icon a{background:url(“//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg”)right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#2C882D;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911F}html.skin-theme-clientpref-night .mw-parser-output .cs1-visible-error,html.skin-theme-clientpref-night .mw-parser-output .cs1-hidden-error{color:#f8a397}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-visible-error,html.skin-theme-clientpref-os .mw-parser-output .cs1-hidden-error{color:#f8a397}html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911F}}“Supported Matching Algorithms”. CME Group. Retrieved 2021-05-13.
  2. ^ “History:Chicago Stock Exchange Historical Timeline”. Retrieved November 1, 2015.
  3. ^ Commodity Exchange Act Cea: Issues Related to the Regulation of Electronic Trading by Thomas J. McCool, Cecile O. Trop 2000 ISBN 0-7567-0329-8 page 18
  4. ^ Janecek, Karel; Kabrhel, Martin (2007). “Matching Algorithms of International Exchanges”. CiteSeerX
  5. ^ Harris, Larry (24 October 2002). Trading and Exchanges (First ed.). New York: Oxford University Press. ISBN 0-19-514470-8.


Leave a Reply

Your email address will not be published. Required fields are marked *