Self Match Prevention
Self match prevention (SMP) is a risk control mechanism that prevents traders or trading algorithms from unintentionally trading with themselves. This functionality helps maintain market integrity by avoiding wash trades and ensures compliance with regulatory requirements around self-dealing.
Understanding self match prevention
Self match prevention is a critical component of modern pre-trade risk checks implemented by exchanges and trading venues. It works by automatically checking whether incoming orders would match against existing orders from the same trading entity before allowing them to enter the matching engine.
The mechanism typically operates at several possible levels:
- Firm level - preventing matches between orders from the same company
- Trader level - preventing matches between orders from the same trader
- Account level - preventing matches between orders from the same trading account
- Strategy level - preventing matches between orders from the same trading algorithm
How self match prevention works
When an incoming order arrives at a trading venue, the SMP mechanism:
- Identifies the order originator using unique identifiers (like Tag 50 in FIX Protocol)
- Checks for potential matches against existing orders from the same originator
- Takes one of several prevention actions based on configured rules
Prevention actions
Common prevention actions include:
- Cancel Resting Order - Cancels the existing order and allows the new order
- Cancel Incoming Order - Rejects the new order and keeps the existing order
- Cancel Both Orders - Cancels both the existing and incoming orders
- Decrement Order Quantity - Reduces order quantities to prevent self-matching
Market impact and considerations
Self match prevention is particularly important for:
- High-frequency trading firms operating multiple strategies
- Market makers providing liquidity across multiple venues
- Asset managers trading for different internal accounts
- Automated market makers managing multiple trading algorithms
Next generation time-series database
QuestDB is an open-source time-series database optimized for market and heavy industry data. Built from scratch in Java and C++, it offers high-throughput ingestion and fast SQL queries with time-series extensions.
Performance implications
SMP checks must be extremely efficient to avoid adding significant latency to the order lifecycle. Modern implementations typically achieve:
- Nanosecond-level checking times
- Minimal impact on tick-to-trade latency
- Efficient memory usage for identifier lookups
Regulatory context
Self match prevention helps firms comply with regulations prohibiting wash trading and self-dealing. It's particularly relevant for:
- MiFID II requirements in European markets
- Market Access Rule (15c3-5) compliance in US markets
- Market manipulation prevention under various jurisdictions
Integration with trading systems
Self match prevention typically integrates with:
- Order management systems
- Direct market access platforms
- Smart order routers
- Market surveillance systems
This integration ensures comprehensive protection across the entire trading infrastructure while maintaining optimal performance and reliability.