Matching Rules
The engine uses Price-Time Priority (FIFO) to determine which orders matched together.1. Price Priority
Better prices always get priority.- For Buyers: Higher bid prices matched first.
- For Sellers: Lower ask prices matched first.
2. Time Priority
At the same price level, orders are matched in the order they arrived.- The order that was placed first (earliest timestamp) gets filled first.
Execution Types
Maker (Passive)
Adding an order to the orderbook adds Liquidity.- Mechanism: If your Limit Order price does not cross the spread (e.g., Buy Price < Best Sell Price), it sits on the book effectively “making” new market depth.
- Fee rebate: Makers typically pay lower (or negative) fees.
Taker (Aggressive)
Crossing the spread removes Liquidity.- Mechanism: If your order matches immediately against an existing resting order (e.g., Buy Price >= Best Sell Price), it is a “Taker” order.
- Cost: Takers typically pay higher fees for the immediate execution.
Partial Fills
If an aggressive order is larger than the best available resting order:- The resting order is fully filled.
- The aggressive order is partially filled.
- The remainder of the aggressive order continues to match against the next best price level.
- This process repeats until the order is fully filled or the limit price is reached.