Backtests
Quotes and Data Quality

Liquidity Filters

our backtester does a lot to screen and filter historical quotes before using them for backtest fills if our backtester determines that historical quotes are unrealistic or not liquid enough to fill in live trading, it will skip over those quotes for you and only use quotes that would actually produce fills in live trading we have dedicated extensive time and resources toward mimicing live trades in our backtest engine in many cases, we've compared backtests against thousands of live trades and found less than a 3% margin for error this is not true of all backtests that we generate, but we have extreme confidence in the accuracy of our backtest results over others you will find if you ever have any questions or suspicions about our backtest fills, please contact us , as this is our priority below, you will find more information and what and how we filter out some quotes there is even more going on under the surface than what you see here we can't reveal everything that we do to filter quotes, because much of it we consider to be proprietary liquidity filters at entry when a backtest enters a new trade, it checks for liquidity on both individual strikes and also the entire chain to determine liquidity, our backtester uses its own algorithm which considers bid, ask, volume, and underlying movement a backtest will only open a new trade if both its target contract is liquid along with the chain itself for a chain to be liquid, a certain percentage of contracts in that chain must be liquid if a large percentage of the chain is not liquid, the backtester will not use it, even if individual contracts are liquid enough this is to ensure that the backtester has the right "image" of the current state of the option chain and is not only looking at a fraction of the chain if the chain is liquid enough, then the backtester will locate a contract that is also liquid, and open a trade at that strike if the market is not liquid enough at that moment in time, the backtester will enter a trade when liquidity critera are met liquidity filters at exit backtests uses similar liquidity rules for trade exits as described above for entries however, there are two differences at exit first, the backtester only requires that the current trade's position is liquid enough for exit it does not require that the chain be liquid at the time this is primarily to ensure that stop losses occur when they should, even if surrounding strikes are illiquid second, for credit spread positions (call credit spread, put credit spread, short iron condor, etc ), utilizing stop losses, only the spread's short strike must be liquid to exit if the stop value hits and the short strike is liquid but the long strike is not, the short strike will close without the long strike it is common during stop scenarios for closer strikes to be liquid and far strikes to not, so this helps to ensure that stops are not missed no trades entered during first minute of market session to avoid liquidity issues at market open, new trades are not entered until 9 31am us eastern time at the earliest backtests will exit trades at 9 30am if exit conditions are met and those trades are considered liquid at the time no sells with no bid when selling a trade, whether sell to open or sell to close, if the target contract has no bid, the backtester will not include it with the transaction for opening trades (sell to open), this means that only contracts with a bid can be opened for closing trades as part of a spread (sell to close), if the long strike does not have a bid, the short strike can still be closed by itself and the long strike will not be closed for a credit it will be left open and assumed to expire worthless