Tick data backtesting: when bars are not enough for futures
Tick data backtesting is needed only when a trade can open and close inside one bar or when the fill price inside the bar decides the result. A strategy that decides at the bar close and fills on the next bar is judged well on bars. Run the same strategy on finer bars first; buy ticks only if the results move.
By Soren Huang · Published · updated · Editorial policy
Contents
- Do you need tick data to backtest a futures strategy?
- What does tick data contain and how big is it?
- How much do tick and bar backtests differ in fills?
- Which strategies need tick backtests, and which do not?
- What does tick data cost in money and storage?
- How do you check sensitivity with finer bars before buying ticks?
- Frequently asked questions
- References
Do you need tick data to backtest a futures strategy?
Tick data backtesting is only needed when a trade can open and close inside one bar, or when the exact fill price inside a bar decides the result. A strategy that decides at the bar close and fills on the next bar is judged well on bars. Test on finer bars first; buy ticks only if the results move.
The word "tick" has two meanings in futures, and the difference matters here. A tick as a price step is the smallest move a contract can make, for example 0.25 index points on E-mini Nasdaq-100 futures (NQ), worth $5.00 per contract; the free futures contract calculator shows this value for the contracts you trade. A tick as a data record is one trade that printed at the exchange, with its time, price and size. This article is about the second meaning: replaying your rules on every single trade instead of on bars.
A bar backtest replays rules on summarized prices, and what backtesting means for futures explains that replay in full. The question is whether the summary throws away something your strategy needs. Two conditions decide it:
- Can a trade open and close inside one bar? If a stop and a target can both be reached before the bar closes, the bar cannot tell you which came first.
- Does the price inside the bar decide the fill? A limit order that fills only if price trades through it, or a stop order whose slippage depends on how fast price moved, needs the path, not just the high and low.
If both answers are no, your strategy decides at the close and fills on the next bar. Next-bar execution is the rule that an order calculated at the close of one bar is filled at the open of the following bar. Under that rule the only prices that matter are the ones the bar stores, and a tick vs bar backtest will tell nearly the same story. One claim runs through this article: the need for ticks is decided by how your strategy fills, not by how fast the market is.
What does tick data contain and how big is it?
Tick data is the complete list of trades in a contract, one row per trade, and a bar is a summary of many such rows with the path between open and close thrown away. A tick record holds at least the time stamp, the price and the number of contracts traded. Many vendors add a flag that says whether the trade hit the bid or the ask, and some add the best bid and ask prices at that moment, which turns the file from trade ticks into trade-and-quote data.
A bar is built by taking all ticks in a time window and keeping four prices and one total: the first price (open), the highest (high), the lowest (low), the last (close) and the summed size (volume). The order in which the high and the low occurred, how long price stayed near each, and how many times it crossed a level are gone. Tick charts group ticks by count instead of by time, but they are still bars: the path inside each one is still discarded.
The size difference is large because a liquid index future trades nearly 23 hours a day on weekdays. One year of daily bars for one contract is about 250 rows. One year of 1-minute bars is a few hundred thousand rows, because each trading day holds more than a thousand minutes of session. One year of ticks is many millions of rows, and the exact count depends on the market, the year and what the vendor includes in each row. Think of a bar as the daily total on a till receipt and ticks as every item scanned: the total is enough to check the day's takings, but only the item list tells you what was bought when.
How much do tick and bar backtests differ in fills?
The difference between a tick backtest and a bar backtest comes from the unknown path inside the bar, so the two results drift apart exactly where an order's fill depends on that path: stop orders, limit orders and exits inside the entry bar. For a market order at the next open, both backtests use the same price. For everything else, the bar backtest must assume and the tick backtest can read.
The clearest case is a stop and a target that both fall inside the same bar. The bar shows a high above the target and a low below the stop. It does not show which came first. A bar backtest has to pick a rule: assume the worst (stop first), assume the best (target first), or assume the one closer to the open was hit first. Each rule gives a different equity curve from the same data. A tick backtest walks through the trades in time order and sees which level was touched first.
| Order type | What a bar backtest must assume | What a tick backtest sees |
|---|---|---|
| Market order at next open | Fill at the open plus a fixed slippage | The same open, plus the actual size at that price |
| Stop order | Fill at the stop price plus a fixed slippage when the bar's high or low crosses it | The first trade at or through the stop, and how far price ran before the next trade |
| Limit order | Fill when the bar touches the limit price, or only when it trades through it | Whether price traded through the level and how many contracts printed there |
| Stop and target in one bar | A rule for which was hit first | The order of the two touches |
Hypothetical example
Suppose an NQ day-trading rule enters long at 18,000.00 with a stop 10 points below ($200 per contract) and a target 20 points above ($400 per contract). One 5-minute bar after entry prints open 18,002, high 18,025, low 17,988, close 18,010. Both levels are inside the bar. A bar backtest that assumes the stop was hit first books −$200 before costs; one that assumes the target first books +$400. The gap for this single trade is $600. If 20 such ambiguous bars occur in a year, the two assumptions differ by $12,000, which can be the whole difference between a rule that looks tradable and one that does not.
Slippage, the difference between the price a backtest assumes and the price you would actually receive, is the second place the results drift. A bar backtest charges a fixed amount per side. A tick backtest with bid and ask quotes can charge the spread that existed at that moment, which is wider during the open, around news and in the night session. Pardo (2008) treats the realism of these fill assumptions as part of the evaluation itself, not as a detail added later, and the same holds whether the input is ticks or bars.
Which strategies need tick backtests, and which do not?
Scalping, stop-and-target exits inside one bar, limit-order entries and anything that trades several times a minute need ticks, while a daily-bar breakout with next-bar execution depends very little on intrabar detail. The dividing line is the decision point and the fill assumption, not the speed of the market. A fast market on slow rules is still a bar problem; a slow market on fast exits is still a tick problem.
| Strategy type | Decision point | Fill assumption that matters | Bars enough? |
|---|---|---|---|
| Daily-bar breakout, next-bar execution | Daily close | Next open plus fixed slippage | Yes |
| 30-minute trend following with a wide stop | 30-minute close | Stop rarely inside the entry bar | Yes, confirm on finer bars |
| Opening range breakout with stop and target in the same bar | Intrabar level touch | Which of stop and target came first | Finer bars at least; ticks to be sure |
| Limit-order mean reversion | Intrabar level touch | Whether price traded through the limit | Ticks with quotes |
| Sub-minute scalping | Every trade or quote | Spread and queue position at each fill | Ticks with quotes |
The third row is the common trap. An opening range breakout with its stop and target parameters often places both levels a few points from entry, and on 5-minute bars in the first hour of the US session both are frequently inside one bar. The strategy is not fast by design, but its exits are path-dependent, so it sits on the tick side of the line.
The first row is the case where bars are clearly enough, and a run in AlphaPrime (Valynox), shown below, explains why. The run tested NQ daily bars from 2019-01-02 to 2025-06-30, long and short, one contract, with $20 commission and $10 slippage per trade. The rule is a stand-in for the subject of this article: a Highest and Lowest rule as the only entry and exit, with no stop, no target and no filters, built from standard indicators. It is the one candidate the search kept out of the 1,024 it tried, chosen for its return against its drawdown; picking the kept one after the fact flatters the figures, and they are not something the rule earned or that a reader can expect.
Source: AlphaPrime product engine (CPU), run 2026-10-31. NQ daily bars, 2019-01-02 to 2025-06-30, long and short, 1 contract, $20 commission and $10 slippage per trade.
| Number | Result |
|---|---|
| Net profit (closed trades) | $58,910 |
| Max drawdown | $33,420 |
| Trades | 91 |
| Win rate | 59.34% |
| Profit factor | 1.492 |
| Average trade | $647.36 |
| Time in market | 11.84% |
Look at two numbers rather than the profit. There are 91 trades in about six and a half years, and the position is in the market 11.84% of the time. Every entry and every exit happens at a daily open after a decision at the previous close. No stop or target can be hit inside a bar because there is none. The intrabar path on those days changes only the slippage on 182 fills, which is why a tick replay of this rule would move the result by little. Bailey, Borwein, López de Prado and Zhu (2014) show that the best of many candidates carries a selection bonus that only unseen data can remove; that bonus, not the missing ticks, is the first thing to discount in this run.

What does tick data cost in money and storage?
Tick data costs more to buy, store and process than bars of the same period, and it adds cleaning work, so the decision should rest on whether your strategy's fills actually change, not on ticks being "more accurate" in general. A more detailed input only improves a backtest if the rules read that detail. For a daily-bar rule, the extra rows are weight with no information.
The cost comes in four parts, and the last two are usually underestimated:
- Purchase. Vendors price tick history per market and per year, and trade-and-quote data costs more than trade ticks alone. Bars of the same period are often included with a platform or priced far lower.
- Storage. Many millions of rows per contract per year, multiplied by every contract month you need to build a continuous series, and multiplied again if you keep quotes.
- Processing time. A backtest that reads every tick does proportionally more work than one that reads every bar. A parameter search of a few thousand candidates that takes minutes on daily bars can take hours or days on ticks, depending on your processor.
- Cleaning. Tick files contain bad prints (trades far from the market that were later busted), time stamps that may be exchange time or vendor arrival time, and contract rolls that must be stitched without a false gap. Contract specs and rollover for futures backtests covers the roll problem, which is harder at tick resolution because the switch happens inside a session rather than between daily bars.
The same arithmetic applies outside futures. A Taiwan stock or ETF tested on daily bars is a small file; the guide to backtesting Taiwan stocks and ETFs shows that the costs and session details matter more than the resolution for those rules. Before paying for ticks, also confirm that your software can read them: the six checks to run on backtesting software before you pay include which data resolutions each tool type accepts.
Hypothetical example
A trader keeps ten years of one index future for research. On daily bars that is about 2,500 rows, which fits in a spreadsheet. On 1-minute bars it is roughly 3.5 million rows, which needs a database or a binary file. On ticks it is hundreds of millions of rows and tens of gigabytes before quotes are added, and every search run must read all of it. If the strategy decides at the daily close, the first file answers the same question as the third one.
How do you check sensitivity with finer bars before buying ticks?
Rerun the same strategy on progressively finer bars with the same costs and next-bar execution; if net profit and average trade stay close across resolutions the strategy is not path-sensitive, and if they swing, it depends on intrabar fills and needs ticks or a redesign of its exits. Path-sensitive means that the result changes when the order of prices inside a bar changes. This resolution ladder costs nothing but the bar data you probably already have.
- Fix everything except the bar size. Same symbol, same period, same session, same commission and slippage per side, same next-bar execution. Write the settings down so that nothing else changes between runs.
- Run on the coarsest bars the rule allows. For an intraday rule that is often 60-minute or 30-minute bars. Record net profit, average trade after costs and the number of trades.
- Step down to 5-minute bars, then to 1-minute bars. Keep the decision logic identical. If the rule uses a lookback of 20 bars, keep it at 20 bars of the new size only if the rule is defined in bars; if it is defined in time (the first 30 minutes), convert it so the time span is unchanged.
- Compare the three results. Look at the average trade first, because it is the number closest to the fill. Then look at the trade count, which should barely move if the decision logic is the same.
- Decide. Results within a modest band of each other mean the path inside a bar is not what makes the strategy work. Results that fall or flip sign as bars get finer mean the coarse backtest was getting favourable fills it could not know about.
Hypothetical example
Strategy A, a 30-minute trend rule with a wide stop, shows net $14,000 on 60-minute bars, $13,200 on 5-minute bars and $12,600 on 1-minute bars, with the average trade moving from $70 to $63. The drift is small and in one direction, which is what finer slippage detail usually does. Strategy B, a breakout with a tight stop and target, shows $21,000, $9,000 and −$3,000 over the same ladder. Its coarse result depended on the target being hit before the stop in bars where the order was unknown. Strategy A can be judged on bars; Strategy B needs ticks, or exits placed far enough apart that both levels cannot sit inside one bar.
Because every step of the ladder changes only the data resolution, the backtest settings must stay fixed across runs; AlphaPrime handles this directly, since its backtesting applies the same fees, slippage, session and next-bar execution to every candidate regardless of the bar size of the history you load. The ladder also doubles as a check on the rule itself: a strategy that only works at one resolution is telling you something about its exits, and the fix is usually to widen them or to move the decision to the bar close, which turns a tick problem back into a bar problem.
Your next step: take the one intraday strategy you trust most, run it on 60-minute, 5-minute and 1-minute bars with identical costs this week, and write the three average-trade figures side by side. If they sit within a modest band, close the tick data question for that strategy. If they do not, read the stop and target distances against the average 5-minute range of your market before you spend anything on ticks.
Frequently asked questions
How much does a tick backtest differ from a bar backtest?
For a strategy that decides at the bar close and fills at the next open, the two differ only in slippage detail and the results stay close. For a strategy with a stop and a target that can both sit inside one bar, or with limit orders that may or may not fill, the difference can be the whole result, because the bar backtest must guess which level was touched first. The size of the gap depends on the strategy, not on the market.
How big is tick data?
One year of one liquid index future is about 250 daily bars, a few hundred thousand 1-minute bars, and many millions of ticks. Trade-and-quote data, which adds the bid and ask at each trade, is larger again. Exact counts depend on the market, the year and what the vendor stores in each row.
Which strategies need a tick backtest?
Scalping that trades several times a minute, strategies whose stop and target can both be hit inside one bar, and limit-order entries where the fill depends on price trading through the level. Daily-bar and multi-hour rules with next-bar execution and wide or no stops are judged well on bars. The test is whether the fill depends on the path inside the bar.
Can I use 1-minute bars instead of tick data?
Often yes, as a step. Running the same strategy on 60-minute, 5-minute and 1-minute bars with identical costs shows whether the result depends on the bar size. If the average trade stays close across the three runs, 1-minute bars are enough. If it keeps falling as bars get finer, the strategy is path-sensitive and either needs ticks or needs exits placed so that both cannot sit inside one bar.
References
- CME Group. E-mini Nasdaq-100 Futures Contract Specs. https://www.cmegroup.com/markets/equities/nasdaq/e-mini-nasdaq-100.contractSpecs.html
- Pardo, R. (2008). The Evaluation and Optimization of Trading Strategies (2nd ed.). John Wiley & Sons.
- Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.

