How Trading Works
Price sources
Updated
Which exchanges price each market, how the price is calculated, what happens when an exchange fails — and a live view of every source.
On this page
Every price on Runtiler — the chart, your entry price, whether your target was touched, the price at expiry and your trade history — is one number: Runtiler’s reference price. It does not come from any single exchange. It is built from several independent exchanges at once, so no one of them can move it, glitch it or switch it off.
This article explains exactly how that number is made. At the bottom, a live table shows every exchange behind every market, right now.
Which exchanges price each market
Each market is quoted by five or six major exchanges:
- Crypto (Bitcoin, Ethereum, Solana, BNB, Dogecoin) — Binance, Coinbase, OKX, Kraken and Bitget, from their spot markets.
- Metals and indices (gold, silver, SPY and QQQ) — Binance Futures, OKX, Bitget Futures, Gate, HTX and Crypto.com, from their perpetual contracts that track the real asset.
From each exchange Runtiler reads the best bid and the best ask and takes the midpoint between them — the mid. That is the middle of the exchange’s order book at that instant, rather than its last trade, which can be a single small order.
How the price is calculated
Four times a second, for every market, Runtiler:
- Takes the latest mid from each exchange that prices it. Most exchanges send a new quote only when their order book changes, so a quiet book simply keeps its last quote. An exchange drops out when it stops working as it should: its connection stops answering, it misses the updates it guarantees, or its book stays still for two minutes while the other exchanges move more than 0.25% away from it.
- Sets aside any exchange whose mid is more than 2% away from the median of all the fresh quotes — a broken, stuck or thin order book can’t drag the price.
- Checks that at least 2 exchanges are left — and when exactly 2 are, that they agree to within 0.5%. If not, there is no price for that moment.
- Takes the median of the exchanges that remain — the middle value, which no single exchange can move on its own.
The price you see is the average of those medians over the last 10 seconds. That one number is used everywhere: the chart, the price you enter at, the touch check, the price at expiry and your history. What you see is what settles.
What counts as a touch
Your target is touched when the 10-second price reaches it before your trade expires. The price at expiry is the same 10-second price.
The trade-off is a small lag: the reference price follows the market a few seconds behind the fastest exchange. The chart draws the same averaged price, so the line you watch is the line that settles.
When an exchange fails
Exchanges disconnect, lag and occasionally print a bad price. Runtiler is built so that none of that decides your trade:
- One exchange goes down, lags, misprices or reports maintenance. It drops out of the median automatically and rejoins as soon as its quotes are fresh and in line again. The price carries on from the others.
- Fewer than 2 exchanges are live. Runtiler then has no reliable price, so it publishes none: nothing is guessed or filled in, and new trades and exits on that market pause until enough exchanges are back.
- Open trades keep their terms. A pause changes nothing about a trade you already hold — its target, stake and expiry stay exactly as they were — and only a real reference price can touch its target.
Market hours
Some of these exchanges quote gold, silver and index contracts around the clock, but Runtiler follows the real market’s hours, not the exchanges’: SPY and QQQ trade during New York Stock Exchange hours, gold and silver during COMEX hours, and crypto 24/7. Outside those hours the market is closed on Runtiler, whatever the exchanges are doing. See what you can trade.
Live status
The table below is live. It refreshes every few seconds and shows, for each market, every exchange that prices it, whether that exchange is counted right now, its current mid, and the reference price that results.
What the statuses mean: Live — counted in the median. Excluded (outlier) — more than 2% from the others, set aside. Stale — the exchange stopped sending the updates it guarantees, so its last quote can no longer be trusted. Connecting — waiting for its first quote. Offline — the connection is down and reconnecting. Maintenance — the exchange itself reports maintenance, so its prices are set aside until it says it is back. Quiet — the exchange is connected but has had no trade on this market for a minute, so its last price is set aside until the next one (Coinbase only updates its price on a trade). Unsupported — the exchange refused this market. Exchanges keep quoting while a market is closed on Runtiler, so the table can show prices when trading is shut. The same data is public, as JSON, at /api/price-sources.
Related articles
Still need help?
Reach the Runtiler support team — we’re glad to help.
Runtiler support will never ask for your recovery phrase or private keys.