Estoy buscando una implementación en c/c++ de Libro de pedidos . Necesito una implementación para reconstruir los datos del mercado a partir de FAST. No necesito hacer "matching" porque ya lo hizo por intercambio, solo necesito "agregar" dichas estructuras:
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;
};
El principal requisito es, por supuesto, la velocidad. He encontrado en internet varios proyectos:
- 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/
Desgraciadamente, la mayoría de estas implementaciones son motores de "coincidencia" y no son exactamente lo que estoy buscando.
¿Qué es mejor utilizar para reconstruir la cartera de pedidos a partir de los mensajes FAST?