The short answer

Forex has no central exchange. Every price is one venue's quote.

Free feeds often hold only hourly resolution. Asked for 15-minute bars, they repeat the hourly value four times. The chart looks fine. No such 15-minute bar ever traded.

How to spot it

Count distinct closing prices as a fraction of bar count.

Real minute data on a liquid pair is mostly distinct closes. Stretched data repeats.

A common free feed, 40 EURUSD 15-minute bars: 15 distinct closes. Values repeating exactly four times each. That is one hourly print stretched across an hour.

A real feed on the same pair and timeframe: 66 distinct closes out of 76.

Why it matters

A backtest on stretched data does not fail. It prints a clean curve. Nothing in the output says the input was fake.

The fake data is smoother than life. Gaps vanish. Wicks vanish. Stops that would have hit do not. Small-move rules look better than they are.

What is actually usable

  • Your broker export. Closest to what you would have traded, including your spread.
  • A paid feed with real tick or minute aggregation.
  • Daily bars from almost anywhere. Daily usually has real daily resolution behind it.

The check

Before you trust a test, count distinct closes on the data that fed it. One line. It will occasionally save you months of confidence in a result that was never real.