This is my c++ implementation of Order-book. It executes two specific orders- Market orders and Limit orders. I've defines two orderbooks- bids orderbook and asks orderbook. These orderbook are implemented as ordered_maps.
i.e. std::map<double, std::vector<std::unique_ptr>>.
Some important features are-
1) The orderbook is pre-populated with random orders.
2) It handles Market orders and Limit orders.
3) Displays bar chart visualization
4) Whole and partial fills
Here there are 7 main files-
-
enums.hpp- which stores general variables like bid, ask, buy, sell, market, limit.
-
helpers.hpp- stores function to generate time
-
order.hpp- defines order class that stores our very important variables- quantity, price, side and timestamp, along with getter and setter functions
-
order.cpp- it defines all getter and setter function members that were declared in order class of order.hpp.
-
orderbook.hpp- defines orderbook class that holds our 2 orderbooks- bids orderbook and asks orderbook.
-
orderbook.cpp- it defines all functions members that were declared in orderbook class of orderbook.hpp i.e defines important functions like- add_order(), remove empty_order from map, execute_order() etc.
-
main.cpp- the starting point of the entire programme.
