A matching engine is at the heart of an exchange. Buy orders and sell orders come in and are listed in ‘books’. There is a one book for each instrument listed on the exchange. The matching engine will then match buy orders and sell orders according to the rules of the market. Whenever a buy and sell order is matched, a trade is generated. Trades are recorded and made available to clients as entries in ‘Course of Sales’ subscriptions.
The market rules are very specific about how trades are matched. The algorithms used by the matching engine within a market must exactly follow these rules (the market’s behaviour). Different markets for different instrument types can have different behaviour. Most exchanges have more than one market (or board) to handle different instrument types.
Prodigy can run multiple markets simultaneously. Each market is handled by a plugin which implements the rules for that market. One Prodigy installation can support an unlimited number of concurrent markets.
Using plugins to implement market behaviour greatly improve’s XStack ability to support new markets and new capabilities. No longer is it necessary to develop a new matching engine to support a new market or new capabilities. Instead it is only necessary to develop a new plugin. The core matching infrastructure, built into Prodigy itself, remains the same. This greatly reduces the time needed for development and testing.
Another advantage of having a plugin matching engine architecture, is the ability to simultaneously run current and previous versions of a plugin. This can facilitate upgrading and allow other systems to incremental move from one version to the next.
Institutional access (FIX API)
Prodigy is accessed using the industry standard FIX protocol. This provides enterprise level API access to firms who wish to send order flow to the exchange (for example, institutional banks and brokerage firms) and major data vendors.
Prodigy can be managed with either a web based Administration console or the Prodigy Management API.
Both management methods enable:
- Add/Remove/Manage markets
This includes specifying the plugins for the markets. In addition, you can set up phases and parameters for execution engines (eg. Market Integrity).
- Add/Remove/Manage symbols
Specify code, name and status.
- Add/Remove/Manage FIX sessions
This includes specifying market and access, whether broker private data is visible, determining what data streams are available (eg, Orders)
- Add/Remove Brokers
- Add/Remove/Manage FIX accounts
Provide authentication for access to sessions.
- Add/Remove/Manage Entities
Entities are businesses or people who are provided with API access to the system. Scalability and Availability.
We envisage that parts of this API will be made available to third-parties to manage their own listings. For example, a company issuing derivatives could use the ‘add/remove/manage symbols’ part of the API to manage their listings.
Reliability and Scalability
Like all parts of XStack, Prodigy has been created with the reliability and scalability expected of a exchange trading platform to be used in a regulatory environment. It can be configured to run in a fault tolerant mode where all components are fully redundant. In this fault tolerant mode, it is even possible to carry out upgrades with no down time - truly enabling 24x7 up-time.
Prodigy can also be configured to operate in a clustered environment. When clustered, it can scale to service extremely large loads.
Prodigy is more than ready to handle your markets’ business rules and matching requirements. For more technical information about Prodigy look here. Alternatively, contact us to discuss how Prodigy’s capabilities can help you grow your exchange business.