2026-01-02 18:19:46 +06:00
# Polymarket HFT Market Making System
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
_Python High-Frequency Trading Infrastructure for Prediction Markets_
2026-01-02 18:09:14 +06:00
[]()
[]()
[]()
2026-01-03 14:21:49 +06:00
[]()
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
## Overview
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
A sophisticated high-frequency trading (HFT) market making system built for Polymarket's prediction markets. This system uses real-time orderbook analysis, signal generation, and automated execution to provide liquidity while maintaining profitability through intelligent market making strategies.
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
**Key Features:**
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
- **Real-time Market Making**: Automated bid-ask spread management with dynamic pricing
- **Signal-Based Trading**: BPS (Basis Points Spread) threshold monitoring for entry signals
- **Intelligent Hedging**: Automatic position hedging to manage risk exposure
- **Performance Optimization**: CPU affinity control, GC management, and async architecture
- **Risk Management**: Position limits, profit margins, and automated trade execution
- **24/7 Operation**: Continuous monitoring with robust error handling and reconnection logic
2026-01-02 18:09:14 +06:00
---
## System Architecture
### Core Components
```
2026-01-03 14:21:49 +06:00
┌─────────────────────────────────────────────────────────┐
│ TRADING ENGINE │
├─────────────────────────────────────────────────────────┤
│ OrderBook │ Signal Generator │ Risk Manager │
│ ├─ WebSocket │ ├─ BPS Analysis │ ├─ Position │
│ ├─ Real-time │ ├─ Threshold │ │ Limits │
│ │ Updates │ │ Monitoring │ ├─ Profit │
│ └─ Price Data │ └─ Entry Signals │ │ Margins │
│ │ │ └─ Exposure │
├─────────────────────────────────────────────────────────┤
│ EXECUTION LAYER │
│ Market Maker │ Hedging System │ Monitoring │
│ ├─ Order │ ├─ Fill │ ├─ Logging │
│ │ Management │ │ Detection │ ├─ Performance │
│ ├─ Spread │ ├─ Automatic │ │ Metrics │
│ │ Calculation │ │ Hedging │ ├─ Health │
│ └─ P&L Tracking │ └─ State Mgmt │ │ Checks │
│ │ │ └─ Alerts │
└─────────────────────────────────────────────────────────┘
```
---
## Fast In-Memory Data Store
The system includes a custom high-performance in-memory database built in Rust for ultra-low latency data operations.
### Architecture
The in-memory store consists of two components:
1. **Rust Server** ([in_mem_db.rs ](in_memory_db/in_mem_db.rs )): High-performance TCP server with thread-safe HashSet operations
2. **Python Client** ([utils.py ](in_memory_db/utils.py )): Fast HTTP client interface for Python integration
### Performance Benefits
```rust
// Thread-safe operations with Arc<Mutex<HashSet<String>>>
struct InMemSetDB {
data : Arc < Mutex < HashSet < String >>> ,
}
```
**Key Advantages:**
- **Ultra-low latency**: Rust-based operations for microsecond response times
- **Thread-safe**: Concurrent access with proper synchronization
- **Memory efficient**: Direct memory operations without disk I/O
- **Lightweight protocol**: Custom HTTP-like protocol minimizes overhead
- **Connection pooling**: Fast socket connections for rapid queries
### Python Integration
```python
from in_memory_db.utils import add_item , contains_item , clear_items , size
# Fast operations for trading state management
add_item ( "processed_order_123" )
if not contains_item ( "processed_order_123" ):
# Process order...
pass
# Performance monitoring
current_size = size ()
clear_items () # Reset state
```
### Use Cases in Trading
- **Duplicate Prevention**: Track processed orders to prevent double-execution
- **State Management**: Fast lookups for order status and hedge tracking
- **Signal Filtering**: Cache processed market signals to avoid redundant trades
- **Performance Monitoring**: Real-time metrics storage and retrieval
### Starting the In-Memory DB
```bash
# Compile and run the Rust server
cd in_memory_db
rustc in_mem_db.rs
./in_mem_db
# Server starts on localhost:8080
# InMemSetDB started on http://127.0.0.1:8080
2026-01-02 18:09:14 +06:00
```
---
## Performance Engineering
### 1. Garbage Collection Management
```python
gc . disable () # Eliminates GC pauses during trading
```
**Why:** Python's garbage collector can cause trading delays. We disable it during active trading and manually trigger cleanup during quiet periods.
### 2. CPU Optimization
```python
def set_cpu_affinity ():
affinity_cores = [ cpu_count - 2 , cpu_count - 1 ] # Use dedicated cores
process . cpu_affinity ( affinity_cores )
process . nice ( psutil . HIGH_PRIORITY_CLASS ) # High priority
```
**Benefits:**
- Dedicated CPU cores for trading operations
- High process priority for consistent performance
- Reduced interference from other system processes
### 3. Async Architecture
```python
# WebSocket on separate thread
self . thread = threading . Thread ( target = self . _connect , daemon = True )
# Order processing with async
await asyncio . create_task ( send_hedge ( ... ))
```
**Advantages:**
- Non-blocking network operations
- Concurrent order processing
- Thread-safe state management
### 4. Efficient Data Processing
```python
def _on_message ( self , ws , message ):
data = json . loads ( message ) # Fast JSON parsing
if event_type == "price_change" :
self . _update_orderbook_incremental ( data ) # Efficient updates
```
---
2026-01-03 14:21:49 +06:00
## Trading Strategy
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
### Market Making Approach
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
The system employs a market making strategy that focuses on:
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
1. **Spread Analysis** : Monitors bid-ask spreads and identifies profitable opportunities
2. **BPS Threshold Trading** : Uses configurable basis point thresholds (default: 50 BPS) to trigger trades
3. **Automated Hedging** : Places hedge orders automatically to manage risk exposure
4. **Position Limits** : Enforces maximum trade limits (configurable via `MAX_TRADES` )
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
### Signal Generation
2026-01-02 18:09:14 +06:00
```python
2026-01-03 14:21:49 +06:00
# BPS-based signal detection
if current_spread_bps >= TRADING_BPS_THRESHOLD :
# Generate trading signal
place_anchor_and_hedge ( market_data )
2026-01-02 18:09:14 +06:00
```
2026-01-03 14:21:49 +06:00
**Key Parameters:**
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
- `TRADING_BPS_THRESHOLD` : Minimum spread required to trigger a trade (50 BPS default)
- `PROFIT_MARGIN` : Minimum profit margin per trade (2% default)
- `MAX_TRADES` : Maximum concurrent positions (2 default)
### Risk Management
- **Position Sizing**: Controlled position sizes based on available capital
- **Automatic Hedging**: Every market making trade is automatically hedged
- **Market Time Windows**: Trades only during active market sessions
- **Stop-Loss Protection**: Built-in safeguards against adverse moves
2026-01-02 18:09:14 +06:00
---
2026-01-03 14:21:49 +06:00
## Monitoring & Logging
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
The system provides comprehensive logging and monitoring capabilities:
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
### Log Files
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
- **[logs/ ](logs/ )**: Trading activity logs
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
### Performance Monitoring
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
- Real-time orderbook updates
- Trading signal generation logs
- P&L tracking and reporting
- System health monitoring
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
### Debug Information
Enable detailed logging by modifying the logger configuration in [utils/logger.py ](utils/logger.py ).
2026-01-02 18:09:14 +06:00
---
2026-01-03 14:21:49 +06:00
## License & Disclaimer
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
**License** : This project is for educational and research purposes only.
**Important Disclaimers:**
- This software is provided as-is for educational purposes
- Trading involves substantial risk of financial loss
- Users are responsible for compliance with applicable financial regulations
- Past performance does not guarantee future results
- The authors are not responsible for any financial losses incurred
- Use at your own risk and ensure proper testing before live trading
---
## Installation & Setup
### Prerequisites
2026-01-02 18:09:14 +06:00
2026-01-01 22:25:40 +06:00
```bash
2026-01-03 14:21:49 +06:00
# System Requirements
Python 3.11+
4+ CPU cores recommended
2GB+ RAM for orderbook processing
Stable internet connection
2026-01-02 18:09:14 +06:00
```
### Installation
2026-01-03 14:21:49 +06:00
1. **Clone the repository:**
2026-01-02 18:09:14 +06:00
```bash
git clone https://github.com/nawaz0x1/py_polymarket_hft_mm
cd py_polymarket_hft_mm
```
2026-01-03 14:21:49 +06:00
2. **Setup:**
```bash
./setup.sh
```
3. **Configuration:**
```bash
# Edit config.py with your settings
# Set up your Polymarket API credentials
# Configure trading parameters as needed
```
### Quick Start
```bash
./run.sh
```
### Configuration Options
Edit [config.py ](config.py ) to customize the system:
2026-01-02 18:09:14 +06:00
```python
2026-01-03 14:21:49 +06:00
# Trading Parameters
TRADING_BPS_THRESHOLD = 50 # BPS threshold for trade signals
PROFIT_MARGIN = 0.02 # Minimum profit margin (2%)
MAX_TRADES = 2 # Maximum concurrent trades
PLACE_OPPOSITE_ORDER = True # Enable automatic hedging
# Performance Settings
REQUEST_TIMEOUT = 5 # API request timeout
MARKET_SESSION_SECONDS = 900 # Market session duration
2026-01-02 18:09:14 +06:00
```
---
2026-01-03 14:21:49 +06:00
## Contact & Support
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
**Author** : Shah Nawaz Haider
**GitHub** : [@nawaz0x1 ](https://github.com/nawaz0x1 )
**X (Twitter)** : [@nawaz0x1 ](https://x.com/nawaz0x1 )
**LinkedIn** : [Shah Nawaz Haider ](https://www.linkedin.com/in/nawazhaider/ )
2026-01-02 18:09:14 +06:00
2026-01-03 14:21:49 +06:00
---
### Support Development
If you find this project useful, consider supporting further development:
**Crypto Donations:**
2026-01-02 18:09:14 +06:00
- **Ethereum (ETH):** `0x89ae2f064cf2cb06a5e66a8e9ea6b653dcb93cfa`
- **Solana (SOL):** `2V4g71bG6dJyqv4REZeZSCtiF4pQauDvRiLy8MDNjWNv`
2026-01-03 14:21:49 +06:00
Your support helps maintain and improve the trading algorithms!
2026-01-02 18:09:14 +06:00
2026-01-03 14:26:35 +06:00
---
## ⚠️ DISCLAIMER
**FOR EDUCATIONAL AND RESEARCH PURPOSES ONLY**
This software is provided strictly for educational, research, and demonstration purposes. By using this code, you acknowledge and agree to the following:
### Financial Risk Warning
- **HIGH RISK**: Trading and market making involve substantial risk of financial loss
- **NO GUARANTEES**: Past performance does not guarantee future results
- **CAPITAL LOSS**: You may lose some or all of your invested capital
- **MARKET VOLATILITY**: Prediction markets are highly volatile and unpredictable
### Legal and Regulatory Compliance
- **USER RESPONSIBILITY**: You are solely responsible for compliance with all applicable laws and regulations in your jurisdiction
- **NO LEGAL ADVICE**: This software does not constitute financial, legal, or investment advice
- **REGULATORY COMPLIANCE**: Ensure compliance with securities laws, derivatives regulations, and financial services requirements
- **JURISDICTION SPECIFIC**: Trading regulations vary by country and may prohibit certain activities
### Software Limitations
- **NO WARRANTY**: This software is provided "AS IS" without any warranties, express or implied
- **BUGS AND ERRORS**: The software may contain bugs, errors, or security vulnerabilities
- **NO SUPPORT**: No guarantee of maintenance, updates, or technical support
- **THIRD-PARTY DEPENDENCIES**: Relies on external APIs and services that may change or become unavailable
### Liability Disclaimer
- **NO LIABILITY**: The authors and contributors are not liable for any financial losses, damages, or consequences
- **USER ASSUMES RISK**: You use this software entirely at your own risk
- **INDEMNIFICATION**: You agree to indemnify and hold harmless the authors from any claims or damages
### Additional Warnings
- **TEST THOROUGHLY**: Always test extensively with small amounts before any live trading
- **MONITOR CONSTANTLY**: Automated trading systems require constant monitoring
- **TECHNICAL KNOWLEDGE**: Requires significant technical knowledge to operate safely
- **API CHANGES**: External API changes may break functionality without notice
**By using this software, you acknowledge that you have read, understood, and agree to these terms.**
2026-01-02 18:09:14 +06:00
�