Tick Data vs OHLC
Trading data comes in different resolutions, and the choice between them significantly affects backtest accuracy, speed, and the types of strategies you can reliably test.
What They Are
Tick Data is the most granular form of market data. Every single transaction or quote change is recorded with a timestamp, price, and volume. A liquid stock might generate thousands of ticks per second.
09:30:00.001 BID 149.95 x 200
09:30:00.001 ASK 149.97 x 500
09:30:00.003 TRADE 149.97 x 100
09:30:00.005 TRADE 149.96 x 250
09:30:00.008 BID 149.96 x 300
OHLC Data (Open, High, Low, Close) compresses all activity within a time period into four prices plus volume. A 1-hour bar tells you the first price, highest, lowest, and last — but nothing about the path between them.
Time: 09:30 Open: 149.97 High: 151.20 Low: 149.50 Close: 150.85 Volume: 45,000
Common resolutions (most to least granular):
- Tick data (every trade/quote)
- 1-second bars
- 1-minute bars
- 5/15-minute / 1-hour bars
- Daily OHLC
- Weekly / Monthly OHLC
Why Data Resolution Matters
The Intrabar Problem
OHLC bars hide the actual price path. Did the bar go Open -> High -> Low -> Close? Or Open -> Low -> High -> Close? This matters enormously when both a stop-loss and take-profit fall within the bar’s range.
With tick data, you know the exact sequence. With OHLC, the backtester must guess — and guessing introduces systematic errors.
False Fills
With OHLC data, a limit buy at $150 in a bar with Low=$149.50 appears to fill. But tick data might show price touched $150 only briefly with minimal volume — your order might not have filled.
Strategy Requirements
The type of strategy determines minimum data resolution:
- Daily swing trading: Daily OHLC is sufficient
- Intraday strategies: Need at least 1-minute bars
- High-frequency: Tick data is mandatory
- Scalping: Tick data with order book depth is ideal
Concrete Examples
The Stop-Loss / Take-Profit Problem
Your strategy buys at $100 with a stop at $98 and target at $104. Today’s bar: Open=$100, High=$104.50, Low=$97.50, Close=$103.
Both stop ($98) and target ($104) are within the bar’s range. What happened first?
- Price went down first: Stop hit at $98, you lose $2. Missed the rally.
- Price went up first: Target hit at $104, you gain $4.
With OHLC, the backtester guesses. Common approaches:
- Assume worst case (stop first) — conservative but often inaccurate
- Assume best case (target first) — optimistic and dangerous
- Use closer level first — arbitrary
With tick data, you know exactly what happened. The difference between -$2 and +$4 per trade compounds into massively different backtest results.
Intraday Strategy on Daily Data
A mean-reversion strategy buys when price drops 2% intraday and sells at close. Daily OHLC shows Open=$100, Low=$97 (-3%), Close=$99.50. The backtest buys at $98 and sells at $99.50 for $1.50 profit.
But intraday data reveals the 2% drop happened at 3:55 PM — 5 minutes before close. By the time you detect it and place an order, the market closes. The trade was never executable.
Volume Reality
A daily bar shows 1 million shares traded with a low of $50. Your strategy places a limit order at $50. Did 1 million shares trade at $50? Or did only 100 shares trade there before bouncing? OHLC can’t tell you. Tick data shows only 100 shares at $50 — your 10,000-share order gets a partial fill at best.
Gap Opens
Your stop-loss is at $95. Stock closes at $97, opens next day at $92 due to bad news. OHLC backtesting might fill the stop at $95. In reality, you’d be filled at $92 or worse. Tick data shows the gap correctly.
Choosing the Right Resolution
| Strategy Type | Minimum Data | Recommended |
|---|---|---|
| Buy-and-hold / Monthly | Daily OHLC | Daily OHLC |
| Swing trading (multi-day) | Daily OHLC | Daily OHLC |
| Day trading (hours) | 1-minute OHLC | 5-min or 1-min |
| Scalping (minutes) | 1-minute OHLC | Tick data |
| High-frequency | Tick data | Tick + order book |
| Options strategies | Daily + Greeks | Intraday + Greeks |
Best Practices
-
Match resolution to timeframe: Don’t use daily bars for a scalping strategy. Don’t use tick data for monthly rebalancing (it’s slow and unnecessary).
-
Handle intrabar ambiguity: When using OHLC and both stop and target are within the bar’s range, document your assumption. Conservative (worst case) is safest.
-
Use multi-resolution backtesting: Some platforms use daily bars for signal generation but intraday bars for execution simulation — speed for signals, accuracy for fills.
-
Account for gaps: Fill stop orders at the actual open price (or worse) when gaps occur, not at the stop price.
-
Validate with higher resolution: If developed on daily data, validate a sample period using intraday data to see if results hold.
-
Watch bar construction: Not all “daily” bars are the same. Different providers use different session times. Forex daily bars depend on timezone cutoff.
Data Sources
Tick data:
- Dukascopy (free forex tick data)
- Polygon.io (stocks, crypto)
- Databento (institutional-grade)
- Binance API (crypto, free)
OHLC data:
- Yahoo Finance (free daily, quality varies)
- Alpha Vantage (free tier available)
- Tiingo (affordable, good quality)
- Norgate Data (survivorship-bias-free)
- EOD Historical Data (global coverage)
Storage Considerations
Tick data is large:
- One liquid stock: ~500MB-1GB per year
- One liquid forex pair: ~2-5GB per year
- Daily OHLC for the same period: ~50KB
For multi-year backtests across many instruments, OHLC is often the pragmatic choice with periodic tick-level validation on critical periods.
Resources
- Investopedia: Tick Data — basic definition
- Dukascopy Historical Data — free tick-level forex data
- Databento — modern tick data provider
- MQL5: Tick-Based Backtesting — tick-based backtesting in MetaTrader
- Trade That Swing: What Your Charts Aren’t Telling You — how resolution affects performance
- Trading and Exchanges by Larry Harris — how trades happen at the tick level
- Algorithmic Trading by Ernie Chan — data resolution considerations by strategy type