How samridhirastogi/order-matching-engine works
This is a C++ limit-order-matching engine. The executable creates a Book and sends order-command files through OrderPipeline, which dispatches market, limit, stop, and stop-limit operations to the book. The book maintains price levels and orders, with matching and AVL-tree balancing implemented in its core. Order generation can create sample command files; processing also writes timing and balance metrics, and the repository includes a visualization script. The visualization script’s data dependency is not established by the shown source, so that connection is omitted.
Main entry points: OrderPipeline.cpp Order dispatcher · Book.cpp Order book · Limit.cpp Price levels · Order.cpp Order records
Components 11
Order processing
- Executable entry
limit-order-book-main/main.cpp - Order dispatcher
limit-order-book-main/Process_Orders/OrderPipeline.cpp
Matching engine
- Order book
limit-order-book-main/Limit_Order_Book/Book.cpp - Price levels
limit-order-book-main/Limit_Order_Book/Limit.cpp - Order records
limit-order-book-main/Limit_Order_Book/Order.cpp
Order generation
- Order generator
limit-order-book-main/Generate_Orders/GenerateOrders.cpp - Initial orders
limit-order-book-main/Generate_Orders/initialOrders.txt
Performance analysis
- Processing metrics CSV
limit-order-book-main/Process_Orders/order_processing_times.csv - Metrics visualization
limit-order-book-main/Process_Orders/data_visualisation.py
Other components
- Operator
- Order command files
Connections 11
- Operator → Executable entry: starts
limit-order-book-main/main.cpp - Executable entry → Order dispatcher: processes commands
limit-order-book-main/main.cpp - Order dispatcher → Order command files: reads
limit-order-book-main/Process_Orders/OrderPipeline.cpp - Order dispatcher → Order book: dispatches orders
limit-order-book-main/Process_Orders/OrderPipeline.cpp - Order dispatcher → Processing metrics CSV: writes timings
limit-order-book-main/Process_Orders/OrderPipeline.cpp - Order book → Price levels: manages levels
limit-order-book-main/Limit_Order_Book/Book.cpp - Order book → Order records: creates and matches
limit-order-book-main/Limit_Order_Book/Book.cpp - Price levels → Order records: queues orders
limit-order-book-main/Limit_Order_Book/Limit.cpp - Order records → Price levels: updates parent level
limit-order-book-main/Limit_Order_Book/Order.cpp - Order generator → Order book: queries and mutates
limit-order-book-main/Generate_Orders/GenerateOrders.cpp - Order generator → Initial orders: writes commands
limit-order-book-main/Generate_Orders/GenerateOrders.cpp