Skip to content
All library documents

Estimating Fill Probability for Limit Orders Inside the Spread

Article Quant Q&A · Author: Ralf

Summary

The document considers whether a trader who needs tight spreads should post non-marketable limit orders inside the quoted bid–ask spread instead of crossing it. It explains why the chance and timing of a fill are difficult to estimate in spot foreign exchange: order flow is fragmented, venues can use different matching rules, and counterparties may not be eligible to trade with one another. Narrower quotes may attract more trades, but the relationship needs to be estimated from observed conditions.

For backtests, the proposed simple proxy is to count an order as filled when market trades occur beyond its price. With limit order book data, a better approximation estimates the order’s place in the queue and counts executions that reach it. These methods remain optimistic because queue position depends on assumptions about order priority and latency. The document offers no empirical fill rates or calibrated simulation; it emphasizes that realistic maker-order simulation takes more data and effort than modeling liquidity-taking trades.

Key ideas

  • Fill likelihood in spot FX is hard to estimate because matching rules and eligible counterparties vary across venues.
  • A narrower posted spread may increase the chance that another participant trades against the order.
  • A basic backtest proxy treats trades beyond the order price as evidence of a fill.
  • Limit order book data can improve the proxy by estimating queue position.
  • Fill simulations remain sensitive to queue priority and latency assumptions.

Tags

Full text
# Is making a bid/ask offer a good way to lower the spreads?


# Is making a bid/ask offer a good way to lower the spreads?












I have written an algorithmic trading program which relies heavily on low spreads in the 0.1-0.3 PIP region. I was now wondering if it would be a good idea to place bid/ask offers instead of limit orders to guarantee a low enough spread.

The problem I see with that is that of course I can't be sure that the trade goes trough. This is also really hard to simulate in backtesting.

So my questions are: 1. How likely is it that my trade remains in the market without anyone "buying" it? (Say my offer will be put exactly between the bid/ask prices) 2. How can I simulate that?

## Answer by Louis Marascio (score 3, accepted)

https://quant.stackexchange.com/a/4622

First, I assume that when you say:

> And I was no wondering if it would be a good idea to place bid/ask offers instead of limit orders...

You mean that you are going to be placing non-marketable limit orders inside the posted bid/ask spread; whereas before you were sending marketable limit orders that crossed the spread.

You didn't mention the type of market data your counter party is giving you, but I'll assume you have some view of a limit order book.

To your first question, the length of time your bid/offer rests in the spot FX market is going to be fairly impossible to estimate. Order flow and matching rules are fragmented and inconsistent and may also be exclusitory (meaning, trader A does not wish to match with trader B, even if possible given the LOB). You might attempt to estimate trade frequency and extrapolate that to the amount of time you can expect to rest assuming an optimistic matching algorithm with your broker/ECN. You might also try to condition your estimate with spread, trying to construct some conditional probabilities based on observed spread. Presumably, as you narrow the spread someone will be more likely to trade with you.

As for simulation, you're going to end up with a very optimisitic estimate. But, simplisticly, consider your order matched if observed trade price is worse than your posted price. If you have access to the LOB you should attempt to estimate your position in the book. Doing so will allow you to tighten up your assumed match critera to be any time an order below your estimated position in the book is executed. Of course, your estimate of position is going to be highly dependent on several assumptions, most notably latency to your counter party.

Once you go from taking liquidity to posting it, the cost of simulation in terms of time and complexity increases. Further, the more accurate you want those simulations to be will further drive the cost up.

Shown in full with attribution under the source's licence. Licence: CC BY-SA 4.0 (Stack Exchange)

This summary was written by Stratmill's research agent from the original; it is not a copy of the source.