Skip to content
GetProfitable
Search

Time zones, sessions and bad ticks

Lesson 7 · about 10 min

Three small data problems cause a large share of "it worked in the backtest but not live" complaints. The first two are about when a bar starts and ends. The third is about single prints that should never have been in the data at all.

Time zones

A 1-hour bar is only defined once you say which hour. A bar labelled "09:00" in a data set stamped in UTC covers different trades from one stamped in New York or London time, and a strategy tuned to "the 09:00 bar" will trade a different hour live if the platform uses a different zone.

The classic case is daily forex bars. The forex day conventionally ends at 17:00 New York, when the swap is applied. A vendor whose daily bars close at 00:00 UTC produces a series in which the "daily close" happens in the middle of the Asian session. Both are valid; a strategy tested on one and traded on the other will see different closes, different ranges, and often a different number of bars per week (the UTC version can produce a stub Sunday bar).

Convention Daily bar closes at Bars per week Typical users
New York 17:00 22:00 UTC (summer) / 21:00 UTC (winter) 5 Most retail forex brokers
UTC 00:00 00:00 UTC 5 plus a Sunday stub, sometimes Some data vendors, most crypto exchanges
London 00:00 23:00 or 00:00 UTC 5 Some UK brokers

Daylight saving makes it worse. New York and London shift on different dates, so for a few weeks a year the offset between them changes by an hour. A rule like "trade the London open at 08:00" needs to be defined in London time, and the data must be stamped in London time, or the rule will be an hour off twice a year.

The rule: store and test in one zone, state it, and make sure the live platform uses the same one.

Sessions

Futures and stocks have session structure that data sets handle differently.

  • Stocks. Regular session 09:30 to 16:00 Eastern. Some intraday feeds include pre-market (04:00 onwards) and after-hours (to 20:00); some do not. A "first 5-minute bar of the day" rule means different things on each.
  • Index futures. Trade from 18:00 to 17:00 Eastern with a one-hour break. The "daily bar" may be the full session or the regular-trading-hours (RTH) 09:30 to 16:00 portion. The overnight high and low are outside RTH and rules referencing "yesterday's high" need to say which.
  • Crypto. No sessions, but weekend liquidity is thinner and some strategies behave differently on Saturday. A daily bar needs a stated cutoff.

Holiday sessions are the trap within the trap. Early closes (the day after Thanksgiving, Christmas Eve) produce short days that look like low-volatility days. Strategies with volume or range filters will treat them oddly, and some data sets include them while others drop them.

Key idea: A bar is defined by its time zone and its session boundaries. If the backtest and the live platform disagree on either, the strategy you trade is not the strategy you tested.

Bad ticks

A bad tick is a single print far from the surrounding prices, caused by a data error, a fat finger, a one-lot trade in an illiquid moment, or a stale quote. On a chart it looks like a one-bar spike with a huge wick. In a backtest it looks like a stop being hit, a breakout firing, or a target being filled at a price nobody could have traded.

Symptom Likely cause What the backtest does with it
Single bar with high 8% above neighbours, close normal Erroneous print Fills your target at a fantasy price
Single bar with low far below neighbours Erroneous print or flash crash Stops you out on a price that was not tradeable
Bar with zero volume and price change Vendor fill-in Creates a fake signal or fake fill
Series of identical closes Stale feed Kills volatility-based rules

Detecting bad ticks: flag any bar whose high or low is more than, say, five times the average true range away from the previous close, and inspect it manually. Genuine events (a flash crash, a limit-down open) exist and should be kept; a one-lot print at 3 a.m. should be removed or capped.

How you handle them tells you something about your strategy's robustness. If removing six bad ticks from ten years of data changes the result materially, the strategy was living on those bars.

A checklist for a new data set

  1. Which time zone are the stamps in? Convert everything to one zone.
  2. Where does the daily bar close, and is that what the live platform uses?
  3. Which session is included: full, RTH, with or without extended hours?
  4. How are holidays and early closes handled?
  5. Scan for bars more than 5 ATR from the previous close; inspect each one.
  6. Scan for zero-volume bars and repeated identical closes.
  7. Count bars per day and per week; investigate any day with the wrong count.

Try it: Take one year of intraday data for an instrument you trade. Count the bars on each day and list the days where the count is not the usual number. Then look up each one. You will find early closes, missing sessions, and probably at least one day where the vendor's clock was wrong.

Recap

  • Bars depend on time zone; store and test in one zone and match the live platform.
  • Daily forex bars can close at 17:00 New York or 00:00 UTC, giving different series.
  • Session definitions (RTH vs full session, extended hours) change opens, highs, lows and "first bar" rules.
  • Bad ticks create fake fills and fake signals; flag bars far outside the ATR and inspect them.
  • Run the seven-point checklist on every new data set before testing.

See it drawn

Original diagrams for the ideas on this page. Illustrative, not real market data.

A range beside a trendOne chart swinging between a flat floor and ceiling, another stepping upwards inside a pair of sloping lines.Range-boundresistancesupportprice bounces between two levelsTrendingthe trend channelhigher highs and higher lowsA range has two flat edges; a trend has two sloping ones.
Range versus trend. On the left price keeps bouncing between the same floor and ceiling, which is a range. On the right each high and each low is higher than the last, inside a pair of sloping lines called a channel.
Risk and reward on one tradeA price scale showing an entry with a stop two points below and a target six points above, so the reward band is three times the risk band.PRICETARGET 106.00ENTRY 100.00STOP 98.00REWARDRISK6.00 pointsthree times the risk2.00 pointsthe most you loserisk : reward = 1 : 3
Risk and reward on one trade. One trade on a price scale: the entry sits 2.00 points above the stop and 6.00 points below the target, so the shaded reward band is three times the risk band. The ratio compares what is lost if the stop is hit with what is gained if the target is reached.

Finished this module? Take the module quiz.