Implementation guide · Liquidity and Market Data
Stale Prices: Freshness Checks for a Trading Feed
Distinguish a quiet market from a stale feed using source and receipt timestamps, session state and a worked diagnostic timeline for operators.
Published Updated
Published by FxTrusts, a supplier of brokerage and prop firm technology. Prepared with AI-assisted research and drafting; reviewed against the cited public sources. Examples are illustrative. Product links describe our services.
Quick answer
A stale price is a value that is no longer sufficiently current for its intended use. Detect it using documented freshness rules, source and receipt timestamps, instrument session state and stream behavior. A connected session or repeated heartbeat does not prove that every symbol’s price is fresh.

Define freshness for the intended workflow
A historical chart, a valuation report and a pre-trade check do not necessarily need identical update frequency. Specify the relevant instrument, session and use before choosing a threshold. An arbitrary universal age limit can generate false alarms for a quiet or closed market and miss a fast-market issue elsewhere. The policy should state what happens when the limit is exceeded: flag, suspend use, switch an approved source or escalate for review.
Keep source age and transport delay separate
A source timestamp describes when the provider says an event occurred; a receipt timestamp describes when your system observed it. Their difference can help diagnose delay only if the clock assumptions are understood. Local time since the last received update is another measure. Store these values separately. Replacing the original source time with ingestion time makes an old event look new and destroys evidence needed for a later investigation.
Check symbol activity rather than only session health
FIX heartbeats can establish session liveness while a specific instrument has stopped updating. Conversely, an unchanged price can be legitimate if the source sends updates only when values change. Review the feed’s update policy, instrument status and sequence behavior. If quote sizes or timestamps update while prices remain unchanged, the feed may still be active. A proper diagnostic separates no price movement from no valid market-data events.
Recover without silently using uncertain state
When freshness fails, expose the degraded condition to downstream consumers according to the approved policy. A fallback source needs its own mapping, permissions and freshness checks. After recovery, confirm that the latest valid state has replaced the old one before removing the warning. Preserve the incident interval and affected symbols so reports and execution reviews can identify which decisions used uncertain data.
A synthetic symbol-level freshness review
Assume an illustrative policy flags a tradable symbol after five seconds without a valid market-data event. At 10:00:08 the session heartbeat is healthy, but the symbol’s last valid event was received at 10:00:01. Its seven-second age crosses this example’s threshold. A closed-session symbol would be evaluated under a different declared policy; the threshold is not a market standard.
| Record | Timestamp or value | Interpretation |
|---|---|---|
| Last valid symbol event | 10:00:01 | Start of local age measurement |
| Latest session heartbeat | 10:00:07 | Session alive, not proof of symbol freshness |
| Review time | 10:00:08 | Symbol age is seven seconds |
| Trading session | Open in this example | Apply the illustrative active-session rule |
Implementation checklist
- Define freshness by instrument, session and intended use.
- Retain source timestamps separately from receipt timestamps.
- Monitor symbol events as well as session heartbeats.
- Document degraded-state behavior and validate recovery before clearing it.
Sources
These documents support the reference. Check the original publication for current requirements and the limits of its scope.
- MetaTrader 5 price datawww.metatrader5.com
- FIX Session Layer standardfixtrading.org
Continue with the broader guides
Connect this reference to platform selection and the wider operating workflow.
