Add working matching engine and demo program (Tier A) - #6
Merged
Conversation
Turns config/display strings like 10.03 into exact tick and lot counts, and back again. Prices that do not land on a whole tick are rejected, not rounded. 16 tests.
A simple, obviously-correct order book sorted by best price then arrival time. It is the trusted baseline the faster book will be checked against later. 8 tests including the worked example from the rules doc.
Checks each order against the rules, gives it an id, tracks its status, and matches buyers with sellers by price then time. Handles limit and market orders, partial fills, price improvement, and fees. 15 tests including a market order that sweeps several price levels.
microsim_run feeds a scripted set of orders through the engine and prints the trades and the final order book in plain dollars. A smoke test checks the result.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds the first runnable slice of the exchange: text/integer price conversions, the reference order book, order checking + matching (limit and market orders, partial fills, price improvement, fees), and a demo program that runs a scripted scenario and prints the book. 88 tests pass; sanitizer-clean.