Execution Simulation: From Quote Changes to Order-Flow Models
Summary
The document considers how to simulate a passive buy order using trade prints and snapshots of the best bid and ask, while assuming the simulated order has no market impact. The proposed simple approach is to use changes in bid and ask prices as a rough indication of whether the hypothetical order would have filled. A more detailed alternative models the matching process through assumptions about the arrival rates or processes of orders and trades.
The response frames simulator choice as a tradeoff between simplicity and realism. Quote movement can provide a basic fill proxy, but it omits queue depth and other market microstructure effects, as well as the possibility that incoming traders have information. For those reasons, the simple method is described as unsuitable for serious high-frequency simulation. The discussion offers no calibrated model, implementation details, or empirical comparison, so it serves as guidance on model limitations rather than a complete execution simulator.
Key ideas
- Best bid and ask changes can serve as a simple proxy for whether a simulated passive order filled.
- A more detailed simulator can model order and trade arrival processes.
- Ignoring queue depth and matching mechanics limits the realism of quote-based fill assumptions.
- Informed trading can also affect simulated execution outcomes.
Tags
Full text
# Algo trading execution simulation # Algo trading execution simulation Disclaimer: Brand new to high frequency algo trading. Background:I have tick-by-tick trade data for stock A and I have joined the price and volume data for each trade with the previous snapshot of the first level of the Quotes book table (i.e. BID and ASK snapshots). I thought this would be useful since you can see where the trade was lifted from (i.e. did it hit the bid or lift the offer?). Question: Now I would like to simulate a trade execution (while assuming no market impact). In particular, assume I sit at 11:00:55 and my algorithm wants to place a buy order for 20 shares. How exactly would the execution algorithm play out? What's a simple conservative approach? In the case I'm considering, it's ok to wait a bit to execute the trade. What I'm thinking: Look at the last trade as a reference price and put that price down on the BID side for 20 shares. Now passively wait to see if my BID was crossed for a few ticks, if not, increase the price a bit. Looking for some ideas from an expert or non-nube! Thank you. ## Answer by wildbunny (score 2) https://quant.stackexchange.com/a/43647 It depends how accurate you need the simulator to be, on the one hand you could simply use the change in bid/ask to gauge whether your simulated order was hit, and on the other you could be modelling things like the the order matching process based on a model for order and trade arrival rates/process. The simple method is probably not suitable for modelling high frequency trading however as it completely ignores microstructure, queue depth and the presence of informed traders.
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.