Skip to content
DAS Replay
Spot forex In development

There is no mid.
Only bid and ask.

Ten currency pairs, replayed from real historical bid/ask quotes, on a replay engine re-founded to run without a single trade print. Every fill lands where the tape says it could have — and nowhere else.

Under construction now — the quote-driven replay core and the forex fill engine are being written against the same tape running on this page. Beta accounts get it the day it lands.

Quote-driven clock Strict-cross limits US NFA margin
REPLAY · 10:22:00 ET
LIVE
Chart basis

Bars at the mid. Nothing fills here: the mid is a number between two prices, not a price.

Bid
1.14514
Ask
1.14516
Spread 0.2 pips
Rolling median 0.5
Time ETBidAskSp
EURUSD, 2026-07-14, 10:12–10:32 ET. Real historical bid/ask quotes, downsampled to one second at ingest — read straight out of the desk’s own quote cache. Bars are aggregated in your browser; the bid and ask lines are the tape.
The tape

Equities hand you prints. Forex hands you two prices and nothing else — no trades, no sizes, no volume.

So the clock, the bars, the cache and the fill engine were rebuilt to run on a tape that has none of it. Here, the quote is the tick.

Bars are derived

Candles aggregate a per-tick basis price — mid, bid or ask, your choice per window. The bar is a view of the quotes, never a price you can hit.

Volume is tick count

A sizeless feed cannot report volume, so the pane counts re-quotes instead of inventing size. VWAP is switched off rather than faked.

Empty is empty

A ten-second bucket with no quotes produces no bar. The chart shows the gap the market actually had.

Resting limits

A touch is not a fill.

A buy limit rests at 1.14517, below the market. Over the next six minutes the ask comes down and touches that price 6 times without ever trading through it. Move the rule and watch where your fill lands.

Fill rule
Ask Bid Limit 1.14517
EURUSD · 2026-07-14 · 10:17:39–10:23:38 ET
  1. Strict cross

    This desk
    1.14516 at 10:22:21 ET

    Held through 6 touches. Filled only when the ask printed through the limit — 4m 33s later.

  2. Touch fills

    Every other replay tool
    1.14517 at 10:17:48 ET

    Filled the first time the ask reached the price. The tape never traded through it. That trade did not exist.

The fill, explained

filled at ask 1.14516 · chart mid 1.14515 · spread 0.2 pips

filled at ask 1.14517 · chart mid 1.14515 · spread 0.5 pips

The rollover

At 17:00 ET the market does not close. It gets expensive.

Liquidity providers roll their books at the New York close. Spreads widen by an order of magnitude, the quote rate collapses, and a stop that had been sitting comfortably clear of the market gets triggered by a spread, not a move.

That is not a bug in the engine — it is the hour, and the desk replays it. The per-tick size cap halves through the rollover, stops trigger off the side they really watch, and the fill you get is the one the tape could actually have given you.

EURUSD — one forex day, 17:00 ET to 17:00 ET 2025-06-10 · 60,979 quotes
Median spread pips · 0 – 3.0
Quotes per hour 0 – 3,275
  • 17
  • 20
  • 23
  • 02
  • 05
  • 08
  • 11
  • 14

Hour, Eastern

Rollover hour median
3.0 pips
London hour median
0.1 pips
Widest single quote
39.8 pips
Quote rate at rollover
545/hr
The widest quote of the day printed at 17:03:36 ET, three minutes into the rollover: bid 1.14082 ask 1.14480. A sell stop anywhere in that 39.8-pip gap triggers, and fills at the bid. The 0.1-pip spreads the pair quotes for most of the day do not undo it.

Five rules, all resolved against you.

Where the tape is ambiguous, the engine takes the reading that costs you money. That is the only bias a simulator is allowed to have: a fill you got here but would not have got live is worse than no fill at all.

  1. Market and marketable limit

    Fills at the opposite quote — buy the ask, sell the bid — on the first tick that arrives after the latency hop, 50 to 200 ms out.

    A quote already standing when the order arrives does not fill it. A sizeless quote is an indication, not a firm obligation; the engine waits for the next real tick.

  2. Resting limit

    Fills only when the opposite quote crosses through the limit — buy when the ask prints below it, sell when the bid prints above it.

    A touch never fills. A limit never fills worse than its price. If the tape gaps through, the fill takes the gapped quote, in your favour.

  3. Stop

    A buy stop watches the ask, a sell stop watches the bid — the side that can actually reach you. On trigger it becomes a market order and walks the same latency path.

    It never fills at the stop price. A stop triggered by a rollover spread is a real trigger, and the desk lets it happen.

  4. Per-tick size cap

    One million units of base currency per tick on the majors, half a million on the crosses; halved again through the rollover hour and detected spread stress.

    The feed carries no sizes, so the cap comes from calibration against real ECN top-of-book — never from the vendor, and never generous.

  5. Gaps and closures

    No quotes means no evaluation: nothing triggers, nothing fills, and the clock does not invent a tick to fill you on.

    At the weekend reopen a stop fills at the first quote through it — the whole gap, against you. A limit gapped through fills at that quote, in your favour.

The account

A US retail forex account, down to the closeout.

Size is in units of base currency, presented in lots because that is how the ticket reads. Margin is the NFA security deposit, not a leverage slider: the higher of the two currencies’ requirements, recomputed on every tick.

Size
lots
Units of EUR
10,000
Notional
$11,442
Margin used · 2%
$228.83
Pip value
$1.00

The desk closes the position out when account value falls under half the margin used — $114.42. From $25,000 of collateral that leaves $24,886 of room — 99.5% of the account — before the rule binds. The closeout protects the broker, not the trader; the fill lands on the worse side of the book on the tick that breaches. Before financing.

FIFO lots
Opposite orders consume the oldest lot first and realise against it. No hedging, no simultaneous long and short — the US retail regime, enforced in the ledger rather than described in a footnote.
Margin call and closeout
Margin used is recomputed every tick against the mid notional. A call flags when account value drops under margin used; the whole position closes out at half of it, filled at the worse side of the book on the tick that breaches.
Swap and rollover
Positions open at 17:00 ET are charged or credited the policy-rate differential less markup, tripled on Wednesday for the weekend value date. Rates come from a versioned FRED table and the desk flags them as approximated, because they are.
Precision
Five decimals, three on the yen pairs, with the fractional pip rendered as its own digit. Distances read to a tenth of a pip. No rounding cliff anywhere on the forex path.

Ten pairs.

The majors and the crosses that carry real liquidity — the dollar pairs and the cross rates a US desk actually trades, replayed from institutional historical bid/ask.

  • EURUSD
  • GBPUSD
  • USDJPY
  • USDCHF
  • USDCAD
  • AUDUSD
  • NZDUSD
  • EURGBP
  • EURJPY
  • GBPJPY

Gold and silver are planned instruments, not part of this scope.

Session
One forex day per session — 17:00 ET to 17:00 ET, Sunday open included. Start the clock at any minute inside it.
Calendar
Closed Saturday and most of Sunday. Open on NYSE-only holidays, because the currency market is.
Data
Institutional historical bid/ask quotes, downsampled to a hundred milliseconds at ingest, cached whole-slice so the second run costs nothing.
Calibration
Size caps validated against real Dukascopy ECN top-of-book, hour by hour, before any of it ships.

Real quotes.
Fills you would have got.

In development In development. The equities desk is live today and the forex section lands on the same account — no second signup, no separate list.