Hi I am trying to design AI-based trading strategies for short term futures trading, with holding periods from a few seconds to a few hours. I have heard that back testing using the last traded price is a bad idea, and that you should somehow take the orderbook into account. Unfortunately, my current historical dataset has just time and sales (it is a series of (time, price, volume) tuples for each contract). Does anyone have any tips for how to deal with this problem? One thing that occurred to me is that I could simulate slippage by using the next trade price after the point at which a trading decision is made, ie as if my hypothetical trade were the next real trade that happened in the dataset. Even if I did have a full set of bid and offer data, I'm a little bit confused about how I would use that -- the best bid and offer prices are usually spread either side of the last trade price (based on looking at the Bloomberg GIPT screen), so if you traded at those prices then you would almost always get a worse price than the last trade, despite the fact that in reality many trades are at the same price as the previous one (based on a cursory glance at US morning NQ trading from the 20th... but maybe I should look at more data before making generalisations like that...) I've been working with FX data for many years which consists of simple bid/offer quotes from OTC dealers, but my grasp of exchange/orderbook mechanics is fledgling, any good articles on simulation with and without level II data would be very much appreciated. Thanks!