BACKTESTMARKET
Trading Halts Data: Fields, Sources and Backtest Handling
backtesting·

Trading Halts Data: Fields, Sources and Backtest Handling

What trading halts data should contain, where to find halt history, how to verify it, and how to keep halts from distorting your backtests.

By BacktestMarket Team
trading halts data

Market operator monitoring a temporary trading pause

Trading halts data is the record of when a security or a whole market stopped trading, why, and when it resumed. To use it well in a backtest, you need four things: the halt and resume timestamps at source precision, the reason code, the scope (one stock or the whole market), and the reopening event. Then you have to model the halt as a pause, not as a missing stretch of prices to fill in. This guide covers what the data should contain, where to look for it, how to check it, and how to keep halts from corrupting your results.

TL;DR

  • A halt is an intentional, temporary pause in trading set by an exchange or regulator. It is not a data error, and your backtest should treat it as a pause.
  • Good halt records carry the symbol, halt time, resume time, reason code, market or venue, and the reopening details, all with original timestamps.
  • Official exchange and regulator pages are the reference for rules and codes. Check any third-party halt history against them before relying on it.
  • Never interpolate prices across a halt or simulate fills during it. The reopening price often comes from an auction.
  • Clean minute bars with documented gaps are the foundation. Halts then become a labeled layer on top, not a source of silent errors.

Table of Contents

What a trading halt is and why it happens

A trading halt is an intentional temporary pause in trading activity. Exchanges use it in response to volatility, large price changes, order imbalances, major news or other market factors, as Fidelity's learning center describes it. The pause is a decision by a market operator or regulator. It is not a feed outage.

There are two broad families.

Security-specific halts. These cover one instrument. The best-known case is a "news pending" halt, where a company is about to release information that could move its price. Regulatory halts of this kind allow fair dissemination of material news to all participants, so nobody with early access gets an unfair advantage. Volatility mechanisms such as Limit Up-Limit Down (LULD) also pause single securities.

Market-wide halts. These stop trading across a market after a severe decline. In the U.S., FINRA explains that market-wide circuit breakers trigger when the S&P 500 falls 7% (Level 1), 13% (Level 2) or 20% (Level 3) from the previous day's close. The result is a temporary halt or an early close, depending on the level and the time of day.

Scope matters for data. When a halt is active in a listed U.S. stock, all other U.S. markets trading it must observe the halt, including off-exchange trading. So one halt event should appear as one pause across venues, not as separate unrelated gaps.

Rules are not universal. An IOSCO report on halts and market closures notes that the procedures are heterogeneous and tailored to local circumstances, though the shared goal is to maintain order when information is lacking or stress is excessive. If your universe spans several countries, expect different codes, thresholds and resumption mechanics for each.

What a trading halt is and why it happens

What good trading halts data should contain

The field list below comes from what a backtest needs to reproduce a halt faithfully. The exact field names differ by source, so map them to your own schema once and keep the mapping documented.

FieldWhy it matters
Symbol and venue or primary listing marketIdentifies the instrument and which market's rules applied
Halt timestampStart of the pause, at the precision and time zone the source publishes
Resume timestampEnd of the pause, or the time trading was scheduled to resume
Reason code and descriptionSeparates news halts, volatility pauses, regulatory suspensions and market-wide events
ScopeSingle security or market-wide, so you can pause the right set of instruments
Reopening mechanismWhether trading restarted through an auction or directly, which affects the first price
Source and retrieval dateLets you trace and revisit the record if the source revises it

Two habits save a lot of trouble later. First, preserve source timestamps instead of rewriting them to your local clock on ingest. Second, keep the raw record next to your cleaned version, so you can always see what the source said.

Notice that a halt record alone does not give you prices. You need the price series too, and the two must line up on the same time basis. That is where minute-bar quality matters, which we cover below.

Where to find historical halt records

For U.S. equities, the starting points are the market operators themselves. Nasdaq and NYSE each publish halt information, including current and recent halts and the reason codes they use. Regulators such as FINRA publish explanatory material on halts, delays and suspensions. Use these official pages for definitions of codes and for the rules that apply on a given date.

Coverage varies in ways that matter:

  • By exchange. Each operator uses its own code set and publishes in its own format. A record from one venue does not necessarily use the same labels as another.
  • By depth of history. Pages built for monitoring today's halts are not always designed as long archives. Check how far back a source goes before you design a study around it.
  • By instrument class. Equities have well-documented halt regimes. Futures, forex and metals trade differently. Forex is decentralized, so there is no single exchange halt, and futures venues apply their own pauses and limits.
  • By rule changes. Mechanisms such as LULD and market-wide circuit breakers were introduced or revised over time. A halt-free stretch in 2012 and one in 2022 may reflect different rules, not different markets.

If a vendor or an open-source project offers consolidated halt history, treat it as a convenience layer, not as the authority. The next section shows how to test it.

How to verify halt data before you use it

Bad halt data is quietly expensive. A missing resume time can leave a stock "halted" for the rest of your sample. A wrong reason code can put a volatility pause into your news-halt bucket. Run these checks before any study.

  1. Spot check against the exchange. Pick a sample of halts across years, symbols and reason codes. Compare each against exchange-published history. A spot-check approach like this is also recommended for vetting any vendor's history.
  2. Run a gap census. Count records by year and month. Sudden drops to zero suggest the source did not cover that period, not that no halts occurred.
  3. Test for orphan halts. Every halt should have a resumption. Analysts should test for missing resumption data and decide in advance how to treat records that lack one.
  4. Track revisions. If a source corrects past records, keep versions. A backtest you ran last quarter should be reproducible, or at least explainable, after an update.
  5. Reconcile with prices. During a documented halt window, a clean price series should show no trades. If your bars show trades inside the window, either the halt record or the price data is wrong.
  6. Check time zones and daylight saving. An hour of offset will shift halts relative to bars and create false conflicts in step 5.

The revision point connects to a broader discipline: version your inputs. Our piece on tracking historical data updates covers how to keep backtests comparable as datasets are maintained.

How to handle halts in a backtest

The core rule is simple: a halt is a period in which the market did not exist for that instrument. Model it that way.

Pause the execution clock. According to this practitioner write-up on modeling halts, no trades should be simulated or filled during the halt interval, and the model should respect the actual resumption point.

Do not interpolate across the gap. Filling the halt with synthetic prices invents liquidity that never existed. The same source warns that the reopening price is often formed through an auction. It also notes that an auction print does not prove every resting order at that price participated, so be conservative about assumed fills at the open.

Backtest steps for handling a trading halt

Decide what happens to resting orders and stops. Stops do not trigger during a halt. After resumption, a stop can fill far from its level. Your simulator should apply the reopening price, plus a slippage assumption you can defend, not the stop price.

Tag halt-affected bars. Add a flag column rather than deleting rows. That lets you run the strategy with and without halt periods and see how much of the result depends on them.

Think about the whole portfolio. A market-wide halt pauses every instrument at once. A single-stock halt pauses only one, but correlated holdings may keep moving. Position sizing and risk logic should know which case applies.

A worked example

Suppose your minute data for a stock shows bars up to 10:14 and resumes at 10:45, and the halt record says news pending with a 10:15 halt and 10:45 resume. The correct treatment is:

  • No bars exist for 10:15 to 10:44, and none are created.
  • Any signal generated at 10:14 cannot execute until 10:45.
  • The first fill uses the 10:45 reopening data, with slippage applied.
  • Indicators that depend on consecutive bars, such as moving averages, treat the gap as a discontinuity, not a flat price.

If instead your data shows bars at flat prices during 10:15 to 10:44, something upstream filled the gap, and your results will be flattering and wrong.

Halts, missing bars and data cleaning

In minute-bar data, a halt looks like missing bars. So does a feed outage, a weekend, a holiday or a vendor error. The difference is that only some gaps are real market events. Your job is to classify each gap before deciding what to do with it.

A practical classification pass:

For spikes around reopenings, which are real but extreme, a rule-based filter is better than a blanket cut. A three-condition spike test can separate bad ticks from genuine post-halt price jumps, so you do not delete the very moves your strategy needs to survive.

If you test on MetaTrader, gap handling also affects reported modeling quality. See how a per-year gap audit fits into MQL4 data preparation.

Our perspective

Halts expose how good your data pipeline really is. When a gap appears in a minute series, you have to know in seconds whether it is a market event, a holiday or a defect. If you cannot, every later conclusion rests on a guess.

That is why we build around clean minute-bar history, verified bar by bar, with adjustments documented, rather than around volume of records. Our data is designed so that gaps mean something. It comes ready to import into MT4 and MT5, so the time you save on cleaning goes into modeling the events that matter, halts included.

Support also counts. The engineers who collect the data answer questions about it, so when a gap looks odd you can ask the people who handle it. We hold the same standard for human-run and AI-driven backtesting, because an automated model will trust a flawed bar even faster than a person would.

Start

Build your halt-aware backtest on clean minute data

Halt handling only works if the price history underneath it is trustworthy. Our minute-bar datasets run from 2014 across forex, metals, bonds, stock indices and commodities, delivered as a complete one-time download and ready for import into MT4 and MT5. You can browse them on the historical data page.

DOW JONES Pack

If you prefer a plan, the Annual Plan is €119 per year. Expert advisors and indicators are on our main site.

A checklist before you trust any halt-adjusted result

  • Do halt records come from, or reconcile to, an exchange or regulator page?
  • Does every halt have a resume time, or a stated rule for the ones that do not?
  • Are timestamps kept in source form, with time zone and daylight saving handled?
  • Is there a gap census by year and month for both halts and bars?
  • Are halt-affected bars flagged, not deleted or filled?
  • Do fills after reopening use reopening prices plus slippage?
  • Can you rerun last quarter's test with last quarter's data version?

If all seven are yes, halts are unlikely to be the hidden reason your backtest looks better than live trading.

FAQ

How long does a trading halt last?

It depends on the type and the market. A news-pending halt lasts until the news has been disseminated and the exchange sets a resumption time. Market-wide halts follow level-based rules set by the market, and a Level 3 event can end the trading day, per FINRA's description of the guardrails. Always record the actual resume timestamp instead of assuming a duration.

Do halts apply to forex?

Forex is decentralized, so there is no single exchange that halts it. Halt data mainly matters for exchange-traded instruments such as stocks and futures. For forex, gaps usually reflect weekends, holidays or liquidity events, so classify them with a missing-bar audit.

Should I remove halted periods from my backtest?

Keep them, but as labeled pauses. Deleting them hides the reopening gap, which is often where a strategy gains or loses the most. Flag the bars, block fills during the halt, and test results with and without those periods.

Can I fill halt gaps with interpolated prices?

No. Interpolation creates prices at which nobody could trade. Practitioners advise against interpolating across a halt, because the reopening price is often set by an auction. Use the real resumption point.

Sources

Related resources

Explore BacktestMarket's Expert Advisor robots to put the ideas in this article into practice.

Newsletter

Stay updated

New datasets, expert advisors, discounts, and trading insights — straight to your inbox.

Cart

Your cart is empty

Add some products to get started.