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.
Bars at the mid. Nothing fills here: the mid is a number between two prices, not a price.
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.
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.
-
Strict cross
This desk1.14516 at 10:22:21 ETHeld through 6 touches. Filled only when the ask printed through the limit — 4m 33s later.
-
Touch fills
Every other replay tool1.14517 at 10:17:48 ETFilled the first time the ask reached the price. The tape never traded through it. That trade did not exist.
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
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.
- 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
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.
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.
-
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.
-
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.
-
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.
-
Per-tick size cap
Half a million units of base currency per tick, every v1 pair; 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.
-
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.
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.
- 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 trade on this desk too — XAUUSD and XAGUSD, spot, off the same institutional bid/ask tape.
- 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.
Live Live today. Forex shares the account, the journal and the career ledger with every other section of the desk — no second signup.