The Same Candle Means Something Different on a Stock, a Future, and a Currency Pair

A pattern that validates on one asset class doesn't automatically transfer to another, because the plumbing generating the candle is structurally different in each.


Stock charts get called simple more often than they deserve, and forex charts get called complicated for reasons that are usually described vaguely, something about “no central exchange” that never gets explained past that phrase. Futures sit in the middle of most of these conversations, mentioned but rarely picked apart. None of this is really about difficulty in some abstract sense. It’s about the plumbing that produces the candle in front of you, and that plumbing is genuinely different across all three, in ways that determine whether a pattern validated on one of them means anything on another.

A visible order book versus an inferred one

A stock trading on a centralized exchange has an actual, queryable order book. Depth at each price level is a fact you can look up, not an inference. Futures contracts on an exchange like the CME work the same way, with a real central limit order book behind the price you see. Spot forex has neither. It’s an over-the-counter market, and what your MT5 terminal shows you is a composite feed built by your broker from whichever liquidity providers it connects to, with no single authoritative book behind it.

This changes what a support or resistance level actually is in each market. On a stock or a listed future, a level with resting size behind it is something you can, in principle, confirm directly. In forex, it’s an inference built entirely from how price has behaved historically near that level, because there’s no book to check it against. This is the same mechanism behind why liquidity-based forex strategies are unusually easy to overfit: the evidence supporting the pattern is once removed from ground truth in a way it simply isn’t for an exchange-traded instrument with a visible book.

One clock versus three overlapping ones

A stock exchange runs on a single, bounded session. The NYSE trades 9:30 to 16:00 Eastern, with a defined opening and closing auction that concentrate a disproportionate share of the day’s volume into a few specific minutes. Everything outside that window is either closed or thinly traded pre-market and after-hours activity that most retail pattern logic doesn’t even attempt to model. The entire trading day is, structurally, one session with a clear beginning and end.

Spot forex has no such single session. It runs continuously from the Sunday evening open to the Friday evening close, and what you actually get instead of one clock is three overlapping ones: Asian session, 00:00-08:00 UTC; London, 08:00-16:00 UTC; New York, 13:00-21:00 UTC, with the London/New York overlap, 13:00-16:00 UTC, representing a distinct combined-liquidity regime rather than a session boundary at all. A pattern built around a stock’s single-session open and close has no direct equivalent to port into forex, because forex doesn’t have an open or a close in the same sense. It has session handoffs, and a strategy’s JSON config needs start_hour and end_hour fields tuned to those handoffs specifically, not to some imagined single-session structure borrowed from equities.

Futures split the difference in an odd way. Most major futures contracts trade nearly around the clock like forex, but they still carry a settlement time and a defined session structure tied to the exchange that lists them, which means session-based pattern logic built for one futures contract doesn’t automatically transfer even to another future, let alone to forex.

The overnight gap means something different in each market

A stock that closes at 16:00 and reopens at 9:30 the next morning can gap significantly on overnight news, and that gap gets resolved through an actual opening auction, a specific price-discovery mechanism where the exchange aggregates pre-market orders and computes a single clearing price to open trading. The gap is the visible output of a real, mechanical auction process.

Forex’s weekend gap is a different animal entirely. There’s no auction resolving it. Price simply stops updating at the Friday close and resumes at the Sunday open wherever the aggregated liquidity provider feeds decide it should resume, with no centralized mechanism smoothing the transition. This is why weekend de-risking behavior in forex, concentrated in the final hour or two of the Friday session, is a genuinely different kind of pre-gap positioning than what happens before a stock’s overnight close, where a specialist or designated market maker framework still exists behind the scenes even outside regular hours.

The part that makes futures a genuinely separate problem: the chart isn’t one instrument

This is the mechanism that gets skipped in almost every comparison between asset classes, and it’s the one most worth understanding if you’re trading futures patterns at all. An individual futures contract expires. What you’re looking at on a “continuous” futures chart, the kind most charting platforms default to, is not one instrument’s price history. It’s a synthetic construct, stitched together from a sequence of individual contracts as each one approaches expiration and trading rolls into the next one out.

How that stitching gets done matters enormously and is rarely disclosed prominently. A back-adjusted continuous contract shifts all historical prices by a constant amount at each roll date to eliminate the artificial gap between the expiring and new contract’s price, which preserves the pattern shapes but means the absolute price level of a historical bar isn’t the price that instrument actually traded at on that date. A ratio-adjusted series does something similar using a multiplicative rather than additive adjustment. An unadjusted, simply spliced series preserves real historical prices but introduces an artificial gap at every roll date that has nothing to do with market behavior and everything to do with the difference in fair value between two different contract months.

A pattern-detection rule trained on a back-adjusted continuous series is, at every roll date in its training history, looking at a seam that doesn’t represent anything that actually happened in the market that day. If your pattern’s window happens to span a roll date, you’re not evaluating real price action, you’re evaluating an artifact of the adjustment method the data vendor chose. This is a structurally different kind of contamination than anything present in spot forex or single-listed-stock data, because neither of those instruments is synthetic. A stock is one continuous entity for as long as it’s listed. Spot forex has no expiration at all. A continuous futures contract is, by construction, several different instruments wearing one chart.

Circuit breakers: a failure mode that doesn’t exist in forex

Exchange-listed stocks and futures are subject to circuit breakers and limit up-down rules that can halt trading outright when price moves too far too fast. A pattern that’s 80% formed can simply stop forming, mid-bar, because the exchange paused trading. Spot forex has no equivalent mechanism. Price can move violently, spreads can widen dramatically, but there’s no regulatory halt that freezes the instrument mid-pattern. A strategy design that assumes a pattern will always either complete or invalidate, with no third option of “trading stopped entirely,” is an assumption borrowed from forex’s structure that simply doesn’t hold once you’re working with exchange-listed instruments.

What actually needs to happen when porting a pattern across asset classes

Structural factor Stocks Forex Futures
Order book Visible, centralized Inferred from price reaction Visible, centralized
Session structure Single bounded session Continuous, overlapping sessions Near-continuous, contract-specific
Gap mechanism Auction-resolved Unresolved absence of trading Auction-resolved, plus roll-date artifacts
Instrument continuity Continuous for life of listing Continuous, no expiration Synthetic, spliced across contracts
Trading halts Circuit breakers can pause mid-pattern None Circuit breakers can pause mid-pattern

None of this means a pattern that works in one asset class is worthless elsewhere. It means the validation has to be done separately and honestly for each one, using the same train/test split discipline regardless of asset class, but never assuming a healthy 52-62% win rate validated on forex data transfers to a futures contract without accounting for roll-date contamination in the training set, or transfers to equities without accounting for the fact that stocks have an actual auction mechanism generating the open and close instead of a session handoff. Spread, slippage, and commission also don’t translate directly. Forex cost is mostly spread and swap. Stock cost is commission, SEC fees, and auction-related market impact. Futures cost is exchange fees plus tick value asymmetries that scale with contract size in a way none of the other two do.

The instinct to treat “candlestick pattern” as a portable, asset-agnostic concept is understandable, since the visual shape on the chart looks the same regardless of what’s underneath it. But the process generating that shape is different enough, in each of these three markets, that the pattern’s statistical reliability has to be earned again from scratch every time you cross from one to another. The candle looks identical. The mechanism drawing it does not.