Liquidity-Seeking Algorithms
A liquidity-seeking algorithm decides where, when, and how to expose a child order when the best execution venue is uncertain. It differs from a simple router that always takes the best displayed price and from a schedule that follows a fixed participation curve. Its job is to search for executable liquidity while controlling spread cost, queue risk, information leakage, fees, and completion risk.
The critical distinction is between displayed liquidity and accessible liquidity. A large best offer might disappear before a child order reaches it; a midpoint venue might contain hidden liquidity but offer no queue transparency; an apparently cheap maker rebate can be outweighed by adverse selection.
Define the decision and its constraints
At each decision point, the policy chooses an action \(a\): venue, order type, limit price, size, and lifetime. It observes state \(s\): consolidated and venue quotes, depth, recent flow, queue estimate, fees, fill history, remaining parent quantity, and deadline. The action should maximize expected net value subject to hard restrictions:
\[ \max_a E[\text{price improvement}+\text{rebate}-\text{impact}-\text{markout} -\text{fallback cost}\mid s,a]. \]
| Constraint | Example | Reason |
|---|---|---|
| Limit price | Never buy above limit | Client protection |
| Participation | At most 10% venue volume | Reduce footprint |
| Exposure | Max resting shares | Control stale risk |
| Venue eligibility | Approved venues only | Operational/regulatory |
| Message rate | Cancel/replace ceiling | Avoid abuse and throttling |
| Deadline | Escalation route | Completion governance |
These constraints belong outside an estimated value model. A model can be uncertain; a limit-price breach is unacceptable.
Estimate accessible liquidity
A venue score should be conditional on the proposed order, not an average historical fill rate. Useful components include probability of fill within lifetime, expected quantity, expected price improvement, fee/rebate, and signed post-fill markout.
def expected_passive_value(fill_prob, size, improvement_bps,
rebate_bps, markout_bps, fallback_bps):
fill_value = size * (improvement_bps + rebate_bps - markout_bps)
miss_value = size * fallback_bps
return fill_prob * fill_value - (1.0 - fill_prob) * miss_value
The sign convention should make a larger score better for both buy and sell logic. Model fill probability by queue position, price level, order lifetime, venue, spread, depth, volatility, and recent trade/cancel intensity. With only aggregated market data, queue rank is latent; use conservative assumptions and calibrate against actual order reports. The mechanics are closely related to inventory-risk market making.
Hidden liquidity and midpoint venues
Dark pools and midpoint books can provide price improvement and reduce displayed footprint, but a fill can reveal that the counterparty was informed. Evaluate each venue using conditional outcomes: fill probability is not enough. A high fill rate paired with unfavorable five-second markouts is evidence of adverse selection.
Avoid naïvely pinging every venue with tiny orders. It can create signaling costs, consume message budgets, violate venue rules, and produce a misleading backtest if historical hidden fills are assumed observable. Use minimum sizes, throttles, and cooldowns, and log every exposure decision.
| Venue condition | Candidate response | Metric to monitor |
|---|---|---|
| Deep lit queue, low toxicity | Rest passively | Queue-adjusted fill probability |
| Tight spread, urgent parent | Take displayed liquidity | Effective spread and impact |
| Midpoint fill improves price | Probe within limits | Post-fill markout |
| Rejections/cancels rise | Reduce order lifetime | Reject rate and stale exposure |
| Price moves through limit | Cancel/escalate | Limit compliance |
Explore safely and avoid selection bias
Routing models need data on actions not always chosen. Pure exploitation creates a feedback loop: an underused venue has little data and stays underused. Controlled exploration can solve this, but only inside low-risk slices and with randomization logged at decision time. Contextual-bandit methods are possible, provided off-policy evaluation accounts for the probability that each action was selected.
Historical fills are selected outcomes. Comparing markouts only for filled passive orders ignores the opportunity cost of nonfills and the fact that difficult states may route aggressively. Include the fallback action and matched controls. Randomized experiments with small allocation weights are more reliable than retrospective claims of venue superiority.
Architecture and real-time controls
Separate market-data normalization, feature generation, value estimation, policy constraints, order state, and TCA. The order-state service must be idempotent and reconcile acknowledgments, fills, cancel confirmations, and exchange busts. A delayed cancel can leave more resting exposure than the policy believes.
| Component | Required audit record |
|---|---|
| Feature service | Input timestamp and data version |
| Value model | Model version and predicted outcome |
| Policy | Candidate actions and rejected constraints |
| Router | Child ID, venue response, latency |
| TCA | Benchmark, fills, fees, residual markout |
Kill switches should respond to stale market data, crossed quotes, abnormal rejects, participation breaches, or order-state reconciliation loss. Default to a safe schedule or pause rather than continuing with stale estimates.
Evaluate the whole parent order
Route-level fill statistics can improve while parent-order implementation shortfall worsens because missed passive shares are forced across later. Evaluate the full parent against a benchmark, including fees and opportunity cost. Segment by urgency, size/ADV, venue mix, liquidity, and volatility; compare with a baseline from execution algorithms.
Use transaction cost analysis to close the loop, then revise estimates only with point-in-time data. A liquidity seeker is an adaptive decision system, so reproducible state and action logs are non-negotiable.
Key takeaways
- Liquidity seeking optimizes net liquidity—not displayed size or fill rate alone.
- Score venues using fill, price improvement, fees, markouts, and the cost of fallback execution.
- Keep hard client, participation, message, and exposure limits outside learned routing models.
- Explore venue alternatives only through logged, bounded experiments that support causal evaluation.
- Judge success at the parent-order level with benchmark-consistent TCA and complete order-state audit trails.
