#orders #minimalist #trading #exchange #price #order-book #matching-engine

bin+lib matchina

Minimalistic matching engine designed for a trading exchange

1 unstable release

0.1.3 Apr 7, 2024

#176 in Finance

MIT license

62KB
1.5K SLoC

Build Badge Crates Badge Docs Badge License Badge

matchina

This is a minimalistic matching engine designed for a trading exchange. It supports various order types including limit orders, market orders, and order features such as Immediate-Or-Cancel (IOC), Fill-Or-Kill (FOK), and Post-Only orders.

Features

  • Limit Orders: Traders can place buy or sell orders at specified price levels, ensuring their orders are executed at their desired prices or better.
  • Market Orders: Traders can place orders to be executed at the current market price, guaranteeing an immediate fill.
  • Immediate-Or-Cancel (IOC): IOC orders are designed for immediate execution. Any portion of an IOC order that cannot be filled immediately is canceled.
  • Fill-Or-Kill (FOK): FOK orders demand complete execution. If the entire order cannot be filled immediately, it is canceled.
  • Post-Only Orders: Post-Only orders are added to the order book and are only executed as maker orders, ensuring no additional fees as a taker.

Usage

To run the simulation with this matching engine, simply execute the following command:

just run

Just is used to manage various build and development tasks, and you can explore the available options with:

just

Contributing

Contributions from the community are welcomed! Feel free to submit bug reports, feature requests, or even pull requests to enhance the matching engine.

License

This project is licensed under the MIT License.

Dependencies

~11–18MB
~224K SLoC