Two key considerations of a trade simulator are:
- Is the use of a simulator identical to live account trading — that is, are the setup and trade execution procedures identical to actual trading? The user should be hidden from any differences, no matter how subtle, between trading against a simulated account and market, and his or her live account. This includes both manually entered trades and those automated by software.
- Does simulated trading fill orders on an if-touched basis, or does it implement an exchange emulation that accurately mimics the unfilled limit orders that often are a part of live trading? This last point is key as not every (or most) limit order that is touched is filled.
In the if-touched case, the simulator will fill an order whenever the price specified in a stop or limit order is reached. In the case of a stop, this is the behavior of the order type and if-touched execution is adequate (though not necessarily at that price). In the case of a limit order, it can lead to different results from those achieved with actual trading. Specifically, it can give overly optimistic performance, and especially so with high-frequency strategies that may be scalping a few ticks at a time from the market.
If a trade simulator is used as a training or software debug tool, then if-touched simulation is adequate. For example, the trader will want to use a simulator to learn a new trading platform and gain practice with its various order entry options and interfaces. It also is useful if the algorithmic trader wants to debug trade automation software. In this case, the developer is not looking to verify the profitability of a trade strategy but needs to work out coding bugs. (Novice algorithmic traders often overlook that trade strategy automation involves developing and testing software, and there are always bugs in software, no matter what the application.)