Our own prices, checked before they count

The platform takes every price from our own price engine and from nothing else. The engine collects market data from more than one source, builds the firm's own bid and ask, and streams them to the platform. Before a price can fill an order or judge a rule, the platform's price guard checks it.

Our own bid and ask

The price engine combines more than one market data source into the bid and ask the firm trades on. If all its sources go quiet, or they disagree, it halts that pair rather than publish a doubtful price.

It streams prices to the platform over one connection for all seven pairs, with a snapshot to start from after every reconnect.

Not tied to one data provider

The platform only ever talks to our price engine. Data providers behind it can be swapped without the platform noticing: nothing in the trading engine depends on where a price came from.

The browser never sees it

Traders' browsers get prices from the platform's own stream. They never connect to the price engine and never see its credentials.

The price guard

Every price passes through the guard before it is used. If a price is in doubt, trading on that pair stops.

What arrivesWhat the guard does
A crossed or zero priceDrops it
A sudden jump from the last priceHolds it until the next prices confirm it. A confirmed move counts from the moment it is confirmed, never back-dated
A price re-sent after a reconnectTreats it as stale, never as a new move
No new price for 5 secondsMarks the pair stale. Heartbeats on the connection don't keep a price fresh
A pair marked closed or haltedStops trading on that pair at once, with the reason on screen
A price outside FX market hoursNothing fills. Market hours are Sunday 17:00 to Friday 17:00 New York time
A price that passesGives it a sequence number and an ID, and records it before any account uses it

When in doubt, trading stops

If a pair an account holds has no usable price, the account can't be valued properly. Until a fresh price arrives:

  • orders that add risk are refused, and Buy and Sell are switched off on screen;
  • rule checks pause, and passes and payouts wait;
  • a close on that pair is refused rather than filled at an old price.

The first fresh price is the one everything is judged on. After a restart, prices recorded before it are never traded on.

The web trader during a Cut prices drill on test data: a Price feed down notice, every pair marked price unavailable, equity waiting for prices, Sell and Buy showing no price, and a note that EUR/USD has no usable price.
The web trader during a Cut prices drill from the back office.

More instruments and more price sources are on the roadmap.