Imbalance Sniper
An automated trading strategy that monitors real-time tick data for significant order flow imbalances between bid and ask volume. Designed for liquid futures markets (ES, NQ, CL, GC).
Overview
Imbalance Sniper identifies institutional activity through:
- Imbalances: When one side (bid or ask) overwhelms the other at a price level
- Absorption: Large orders absorbing incoming flow (support/resistance)
- Delta: Running difference between buy and sell volume
- Price Ladder: Real-time volume distribution across levels
Performance
Production-validated against real ES Futures data:
| Metric | Value |
|---|---|
| Test Dataset | 885,395 ticks |
| Average Latency | ~1,000 ns/tick |
| Peak Burst Rate | 6,230 ticks/sec |
| CPU Headroom | 1000x over median rate |
Optimization Technologies
- Generation-Based Cache: 918x speedup for cumulative delta (O(n) → O(1))
- Striped Locking: 64-way fine-grained concurrency
- Lock-Free Price Ladder: ConcurrentNavigableMap for atomic operations
How It Works
Imbalance Detection
At each price level, the strategy tracks:
Bid Volume: Total volume at bid price
Ask Volume: Total volume at ask price
Imbalance Ratio: max(Bid, Ask) / min(Bid, Ask)
Delta: Ask Volume - Bid Volume
When imbalance ratio exceeds threshold AND delta exceeds minimum, a signal is generated.
Absorption Detection
Absorption occurs when:
- Large volume accumulates at a price level
- Price tests that level but doesn't break through
- The large orders "absorb" selling/buying pressure
This indicates institutional support or resistance.
Signal Generation
| Condition | Signal |
|---|---|
| High bid imbalance + absorption | Bullish (expect bounce) |
| High ask imbalance + absorption | Bearish (expect rejection) |
| Imbalance without absorption | Weaker signal, needs confirmation |
Settings
Imbalance Detection
| Setting | Default | Description |
|---|---|---|
| Imbalance Ratio Threshold | 2.0 | Minimum ratio (2.0 = one side 2x other) |
| Delta Volume Threshold | 100 | Minimum volume difference |
| Lookback Ticks | 1000 | Ticks to analyze for patterns |
Tuning:
- Too many signals → Increase ratio to 2.5 or 3.0
- Missing signals → Decrease ratio, lower delta threshold
- Adjust delta threshold based on instrument liquidity
Absorption Settings
| Setting | Default | Description |
|---|---|---|
| Absorption Volume | 500 | Minimum volume to qualify as absorption |
| Price Tolerance | 0.25 | Ticks for price level grouping |
| Confirmation Bars | 2 | Bars to confirm absorption holds |
Trade Execution
| Setting | Default | Description |
|---|---|---|
| Enable Trading | false | Activate automated execution |
| Position Size | 1 | Contracts per trade |
| Max Positions | 1 | Maximum concurrent positions |
Risk Management
| Setting | Default | Description |
|---|---|---|
| Stop Loss (ticks) | 8 | Initial stop distance |
| Take Profit (ticks) | 16 | Target profit distance |
| Break-Even Trigger | 8 | Move stop to entry after X ticks profit |
| Trail Start | 12 | Activate trailing after X ticks |
| Trail Distance | 4 | Trailing stop distance |
Circuit Breakers
| Setting | Default | Description |
|---|---|---|
| Max Daily Loss | -500 | Stop trading if daily P&L hits this |
| Max Daily Profit | 1000 | Optional profit target for day |
| Max Loss Per Bar | -100 | Per-bar loss limit |
| Cooldown Bars | 5 | Bars to wait after stopped out |
Display
Price Ladder Panel
Real-time visualization:
- Bid volume (left, green)
- Ask volume (right, red)
- Delta (center)
- Absorption levels highlighted
Chart Overlay
- Entry/exit arrows
- Stop and target lines
- Absorption level markers
- Imbalance zones shaded
Best Practices
Instrument Selection
Best results on high-liquidity futures:
- ES (S&P 500 E-mini)
- NQ (Nasdaq E-mini)
- CL (Crude Oil)
- GC (Gold)
Time Selection
Trade during high-activity periods:
- Regular Trading Hours (RTH)
- Avoid first/last 15 minutes
- Watch for scheduled economic releases
Risk Management
- Start with small size until you understand the signals
- Use circuit breakers — they're there to protect you
- Review trade log daily to identify patterns
- Adjust thresholds based on current market volatility
Troubleshooting
No Signals Appearing
- Ensure tick data is enabled for your instrument
- Reduce imbalance ratio threshold
- Verify sufficient liquidity in the market
Too Many False Signals
- Increase imbalance ratio to 2.5-3.0
- Increase delta volume threshold
- Add absorption confirmation requirement
Performance Issues
- Reduce lookback ticks if CPU-constrained
- Ensure adequate memory allocation
See Also
- Installation - Initial setup
- ICT Market Structure - Combine with structure analysis
- Wavelet ATR - Use for stop placement