In my opinion, instead of developing an analytical model, it's better to evaluate this probability directly from the data. Place your simulated orders at different price levels, and check whether and when they would be executed. Then use this probability model to simulate your trading strategy.
However, assuming that you want to simulate a trading strategy, why to do it in two steps as above? Such probability model would be a very rough approximation which dismisses the very non-stationary behavior of the markets. If you do so, at least compute it as conditional probability given your prediction of price change. Otherwise, your simulation will use too optimistic (average) execution probability when the price change is too obvious (i.e. many other market participants also see the same opportunity) and the actual probability of execution is zero.
A better approach is this: instead of developing a probability model prior to simulation, you can embed the execution process in the simulation itself. Points to consider are:
- According to FIFO matching algorithm, place your order at the end of the orders queue
- If your market data is MBO (market-by-order, aka order-by-order), you can compute exactly the place of your order in the queue as it evolves, and whether and when it would be executed
- If your market data is MBP (market-by-price), use a pessimistic approach and advance your order in the queue only when executions occur at its price level
While this approach is better, it has two major problems (i.e. sources of imprecision) like any other approach based on historical data:
- Latency. It's impossible to simulate the latency precisely. It's not consistent even if your trading strategy runs from an exchange co-location facility with an average RTT (round trip time) of 100 microseconds. And taking the "safe side" by configuring it in the simulation higher than average doesn't solve the problem.
- Trading is a multiplayer interactive real-time game. The execution of your limit orders require aggressive orders of other market participants. But because your simulated orders are not present in the historical data, you cannot know how their presence would affect the decision of other traders to send such aggressive orders. A typical assumption here is: "my orders are relatively small, therefore the impact of their presence or absence is negligible". But it's a very poor assumption because this "game" is the definition of a chaotic system: "infinitesimal differences in the starting conditions lead to drastically different results as the system evolves", which is nicely illustrated by this animation:
I've called these two problems the "Most typical mistakes in Quantitative analysis in trading" and described in more details in a Market Mechanics article. In my opinion (and based on some practice), they make the results of any historical data based simulation unreliable. A much better chance have the trading strategies that are based on game theory, on some reasonable assumptions of how other market participants would respond to observable actions of others and on your own actions which you are the first one to know regardless of latency.