MetaTrader 5 feeds
How MetaTrader 5 filters and checks incoming quotes.
MT5 can filter incoming ticks with price-distance and spread controls, or flag a gap without deleting it. Those are platform guards, not source validation.
- Distance levels create a per-symbol acceptance channel.
- Spread limits reject invalid two-sided quotes.
- Gap mode flags unusual movement without necessarily removing the tick.
Use symbol units
Every level is interpreted in platform points, so digits and point size are part of the policy.
Know the exemptions
Depth, exchange-style data, manual/API ticks, and the first tick after a break may follow different rules.
Keep raw evidence
Raw and accepted histories are essential when a desk asks why one price appeared and another did not.
On this page
MT5 filtering is configured per symbol. It evaluates incoming prices against recent accepted values and symbol-level spread rules before the stream reaches clients.
Price-distance levels
MT5 can use graduated distance levels with confirmation counts. In practical terms:
- a small move remains inside the normal channel;
- a larger move may require repeated quotes before the channel follows it; and
- an extreme move can be discarded.
The values are in platform points. Always review them together with digits, point size, normal spread, market volatility, and quote cadence.
A currency major, an equity index, and a cryptocurrency should rarely inherit the same numeric settings without separate testing.
Spread limits
Minimum and maximum spread controls can reject a two-sided OTC quote whose Bid/Ask relationship is outside the permitted range. They are useful for catching crossed, negative, or implausibly wide spreads.
They do not prove that both sides are correct. A clean-looking but stale or mispriced quote can still pass.
Gap mode is a signal
Gap controls can mark an unusual move for downstream trading logic while allowing the price to remain visible. This is different from filtration that removes an update.
Agree what the flag should cause—logging, routing restrictions, temporary request handling, or an operator review—and test that complete path. A configured threshold without an operational response is only an indicator.
Not every data type follows the same path
Market Depth and exchange-style data have different semantics from an OTC Bid/Ask stream. Manual or API-added ticks, symbol mappings, and the first tick after a session break can also follow different filtering behavior depending on the symbol type and build.
Create separate test cases for:
- ordinary OTC Bid/Ask updates;
- the first tick after a restart or quote-session opening;
- Last and volume updates;
- Market Depth changes;
- manually or programmatically published ticks; and
- a symbol mapped from another source name.
Retain raw and accepted histories
When raw-price storage is enabled, compare the incoming stream with accepted ticks and client-visible output. Keep the active filter configuration with the evidence, including any translation or Bid/Ask shift on the feed.
What filtration cannot decide
MT5 filters one symbol’s stream. They cannot determine that another venue disagrees, that a provider mapped the wrong contract, or that an apparently normal price has frozen.
Use upstream quote protection for cross-source and stale-input checks, then keep MT5 filtering as the platform-specific final layer.
A feed shaped around your setup
Separate platform filtering from feed quality.
Send a symbol whose ticks get filtered unexpectedly. We’ll explain which checks belong upstream and which belong on MT5.