I'm looking for c/c++ implementation of OrderBook. I need implementation to reconstruct market data from FAST. I don't need to do "matching" because it already did by exchange, I only need to "aggregate" such structures:
struct OrderUpdate {
int32_t instrumentId;
uint32_t MDEntryID;
uint32_t MDUpdateAction; // 0 - New 1 - Change 2 -Delete
int64_t MDEntryPx_Mantissa;
int16_t MDEntryPx_Exponent;
int64_t MDEntrySize_Mantissa;
int16_t MDEntrySize_Exponent;
uint32_t RptSeq;
uint32_t MDEntryTime;
uint32_t OrigTime;
int32_t SecurityTradingStatus;
char MDEntryType; // 0 - buy; 1 - sell; other values in documentation
char MsgType;
};
Main requirement is, of course, speed. I've found in internet several projects:
- http://www.ociweb.com/products/liquibook
- https://github.com/chuvpilo/OrderBook
- https://github.com/jordanbaucke/Limit-Order-Book
- https://code.google.com/p/rex-matching-engine/
- http://www.quantcup.org/
Unfortunately most of these implementations are "matching" engines and not exactly what I'm looking for.
What is better to use to reconstruct orderbook from FAST messages?