Skip to content
dyn4mik3Public

About

Matching Engine for Limit Order Book

Resources

Stars

415 stars

Watchers

24 watching

Forks

Latest commit

 

History

49 Commits

Folders and files

Repository files navigation

OrderBook

Matching engine based on a limit order book written in Python.

Features:

  • Standard price-time priority
  • Supports both market and limit orders
  • Add, cancel, update orders

Requirements:

  • Python 3.8+
  • sortedcontainers

Usage

Install package:

pip install orderbook 

Import package:

from orderbook import OrderBook

Take a look at example.py: https://github.com/dyn4mik3/OrderBook/blob/master/orderbook/test/example.py

Key Functions

Create an Order Book:

order_book = OrderBook()

process_order

cancel_order

modify_order

get_volume_at_price

get_best_bid

get_best_ask

Data Structure

Orders are sent to the order book using the process_order function. The Order is created using a quote.

# For a limit order
quote = {'type' : 'limit',
         'side' : 'bid', 
         'quantity' : 6, 
         'price' : 108.2, 
         'trade_id' : 001}
         
# and for a market order:
quote = {'type' : 'market',
         'side' : 'ask', 
         'quantity' : 6, 
         'trade_id' : 002}

About

Matching Engine for Limit Order Book

Resources

Stars

415 stars

Watchers

24 watching

Forks

Releases

Packages

Used by

Contributors

Languages