Unit 1 of 10 · Beginner

The two prices

In one read

There is never one price — there are two. The bid is the highest price a buyer is currently willing to pay; the ask is the lowest price a seller will accept. The gap between them is the spread, and the mid is just their average, a convenient fiction no one actually trades at. The last price is only the most recent trade, already history. To buy right now you cross the spread and pay the ask; to sell right now you hit the bid. That crossing is a real cost, paid on entry and again on exit, and it is why the price a chart draws — usually the last or the mid — is not the price you get filled at. A wide spread makes that cost large; a tight one makes it small. This unit shows where the two prices sit against the chart's single line, then hands you a real filled trade to recompute.

The two prices

A chart draws a single line, but the market never has just one price. It has two at every instant:

  • The bid — the highest price a buyer is currently willing to pay.
  • The ask — the lowest price a seller is currently willing to accept.

The spread is the gap between them. The mid is their average — a convenient number no one actually trades at. The last price is simply the most recent trade to print, already history the moment you read it.

To buy right now you cross the spread and pay the ask; to sell right now you hit the bid. Crossing costs you the width of the spread — paid on the way in and again on the way out. That is why a fill is not the chart's line: the chart usually plots the last or the mid, and you transact at the edge.

A worked example

Take a generic broad-ETF session — call the instrument GENCO. The chart shows a tidy line at, say, the mid. But underneath, the book quotes a bid a hair below it and an ask a hair above, and you have two ways to trade against it:

  • Cross the spread (a marketable order). Buy now and you lift the ask — the higher of the two prices. You pay the spread: you got in immediately, and the width between the ask and the mid is the toll for that immediacy. Sell now and you hit the bid, paying it again on the way out.
  • Rest at your price (a passive limit order). Post a buy at the bid and wait. You do not cross anything; a seller has to come down to you. If one does, you earn the spread rather than pay it — but the catch is real: you only fill if price comes to your level, and you may not fill at all.

Either way, one thing holds: the fill is not the chart's line. The chart plots the mid or the last; your order executes at the bid or the ask, at whatever level actually traded. When the book thins out and the spread widens, crossing costs more and a resting order sits further from the action — for no reason other than the two prices drifting apart.

See it in kestrel

The gap between the chart's line and a real fill is not a story — it is a receipt you can pull. Run a session that actually fills a resting limit order:

npx kestrel.markets sim mean-reversion-range-fade

That runs a deterministic simulation over a generic range-fading session — managed licensed data, no wall time, no signup, no card — where a resting limit buy fills only when price fades back down to it, and prints a certified proof URL. The fill lands at the order's own limit level, not the chart's mid line; the small result on that proof is the trade's directional give-back, not a spread cost. Point the CLI back at the proof and it recomputes the whole record — the fill price and where it sits against the tape — on your own machine, byte for byte:

npx kestrel.markets certify https://kestrel.markets/proof/art_f576347572a410a52647cf90

Keep it one command away: drop the kestrel.markets MCP server into your client and the next fill is one call away — no account in between.

Recompute it

Every claim in this unit recomputes from a certified proof — no account, no card.

/proof/art_f576347572a410a52647cf90
Keep readingWho is on the other side