Market Liquidity: Theory, Evidence, and Policy — Foucault, Pagano & Röell

Chapter 3: Order Flow, Liquidity, and Securities Price Dynamics

This chapter's real title corrects an earlier guess in this project's own curriculum notes — it isn't called "Price Determination Theory," but that's exactly what it is. It derives the bid-ask spread from three separate causes, with the Glosten-Milgrom model as its centerpiece, using real intraday trade data from a French insurance company's stock to ground every step.

Source
Extracted directly from the chapter text in /references
Companion lecture
Covers the same ground as Lecture 3 (both parts) of the video course — read independently
Book part
Part I — foundations, flagged "essential" per the preface
01

Real intraday data: prices bounce a lot, in 35 minutes

The chapter opens with real trade-and-quote data for AGF, a large French insurer, on Euronext's electronic book — 20 transactions between 9:05 and 9:40am on March 26, 2001.

Real AGF trades on Euronext, March 26, 2001 (selected rows from the chapter's Table 3.1)
TimeSizePriceDirectionBidAsk
9:06:042066.70Sell66.9067.00
9:26:261,00066.20Buy66.0066.20
9:36:101,00066.00Sell66.0066.20

What this means: the price moved from 66.70 down to 66.00 and around, over just 30 minutes, with no company-specific news in between — and the correlation between successive price changes in this exact dataset is −0.45, strongly negative. This is the empirical puzzle the whole chapter exists to explain: intraday prices move too much, too often, and in a specific negatively-correlated pattern that a frictionless "prices only move on news" model can't produce.

02

The frictionless benchmark, and why it fails

The EMH benchmark: pₜ = μₜ = E(v|Ωₜ). The chapter's own illustration: Ajax Amsterdam beats Juventus in an upset; investors mark Ajax stock up from €7.00 to a new fair value of €7.20. Under the EMH, the very next trade should occur at €7.20 — not a gradual crawl through €7.10, €7.15. If a dealer is risk-neutral, competitive, and faces investors with no informational edge, competition drives both bid and ask to exactly μₜ — zero spread, and price only moves on genuine public news.

Real markets don't look like this: (1) intraday volatility is too large to be explained by news alone (French and Roll, 1986); (2) positive bid-ask spreads are the norm, not the exception; (3) successive price changes are negatively correlated (as the AGF data's −0.45 shows), not uncorrelated as the frictionless model predicts. The rest of the chapter systematically relaxes the three assumptions (dealer competition, no informational edge, zero trading cost) that produced this too-clean benchmark.

03

The Glosten-Milgrom model, in the book's own notation

Same model as the companion lecture, same mechanics: with probability π the order comes from an informed trader who knows v exactly; with probability 1−π, from a liquidity trader (uninformed, buys or sells with equal probability). The book credits the underlying intuition to Jack Treynor's 1971 essay under the pseudonym "Bagehot": dealers who aren't as well-informed as their best-informed customers will systematically lose to them — adverse selection — and must recoup that loss from everyone else via the spread.

With v binary (v_H or v_L) and θₜ the dealer's belief that v=v_H, the ask and bid at any time t solve the dealer's zero-expected-profit condition:

a_t = μ_(t-1) + [π·θ_(t-1)·(1-θ_(t-1))] / [π·θ_(t-1) + (1-π)/2] · (v_H - v_L)
b_t = μ_(t-1) - [π·θ_(t-1)·(1-θ_(t-1))] / [π·(1-θ_(t-1)) + (1-π)/2] · (v_H - v_L)

For the very first trade of the day (θ₀=1/2), this collapses to the same clean result the companion lecture derives: S₁ = a₁ − b₁ = π(v_H − v_L).

⚙ Algo-trading angle
Context
The book's own numerical walkthrough: v_H=102, v_L=98, θ₀=1/2, π=1/2. First-trade quotes: a₁=101, b₁=99.
Algo-relevant?
Yes — this is the exact tick-by-tick belief update loop a Bayesian market-making algorithm runs.
What's applied
If the first order is a buy, θ updates to 3/4, and μ₁ marks up to 101 — dealer's next quotes become a₂=101.6, b₂=100. If the first order is a sell instead, θ drops to 1/4, μ₁=99, and quotes become a₂=100, b₂=98.4.
Action
The dealer doesn't just widen the spread after a trade — the whole quote ladder shifts in the direction of the trade (up after a buy, down after a sell), exactly matching what the AGF data in §01 shows empirically: sustained buying pressure (trades 25-40) lifts the midprice, sustained selling (trades 1-10) drops it.
Why
Because pₜ − pₜ₋₁ = s(dₜ)·dₜ in this model — price changes are entirely determined by the direction of the triggering order, which is the formal reason order flow, not just news, drives intraday prices.
Worked example — the book's own numbers, both branches
Same starting point (a₁=101, b₁=99, μ₀=100), diverging after one trade
First orderθ₁μ₁New a₂New b₂
Buy0.75101101.6100.0
Sell0.2599100.098.4

What this means: one single trade shifts the dealer's entire belief and both quotes by roughly a full point, in the direction of that trade — this is not noise or slippage, it's the dealer rationally updating on the only information they have. Chasing a moving quote ladder like this, instead of assuming quotes are static between your own fills, is the difference between a market-making algorithm that prices risk correctly and one that gets picked off systematically.

04

Price discovery, simulated — and the liquidity trade-off it implies

Running the same v_H=102/v_L=98 setup for 100 simulated trades, at three levels of π, the book measures pricing error PDₜ = (pₜ − v_H)² over time — how far the transaction price still is from the true value.

Real simulation result from the book: average trades to (near-)full price discovery
πTrades to convergence
0.1Almost imperceptible even after 100 trades
0.5~15 trades on average
0.9~5 trades on average

What this means: the same π that widens the spread (§03 — bad for anyone trading) is the π that speeds up price discovery (good for market informativeness) — a genuine trade-off, not a modeling artifact. This directly poses the policy question insider-trading rules and disclosure requirements are actually answering: how much π should regulators tolerate?

05

A second cause of spread: order-processing costs and market power

Adverse selection isn't the only reason for a spread. Dealers also have real operating costs (γ per share/euro traded) — and if they have any market power (not perfectly competitive), they can charge a markup above cost. The chapter's key distinguishing result: order-processing and market-power costs produce a spread too, but the price impact of a trade is transient — it dissipates as the dealer's temporary compensation is captured, not permanent like the adverse-selection component, which never reverses because it reflects a genuine, lasting revision in the dealer's belief about value.

06

A third cause: inventory risk (Stoll, 1978)

Where this connects: Lecture 1's market-making example used an unexplained "skew" term (skew = k × inventory) to show a bot shifting both quotes based on its position. This section is where that comes from, formally.

A risk-averse dealer with existing inventory zₜ chooses how many shares yₜ to supply, maximizing mean-variance utility U = Eₜ(wₜ₊₁) − (ρ/2)vart(wₜ₊₁), where ρ is risk aversion and σ_ε² is the per-period variance of news about fundamentals. Solving the dealer's first-order condition gives the price at which they're willing to trade:

p_t = μ_t − ρ(z_t − y_t)σ_ε²

What this means: the dealer's quoted price depends directly and linearly on their current inventory zₜ, their risk aversion ρ, and the volatility of the underlying σ_ε² — precisely the "skew = k × inventory" structure used illustratively in Lecture 1, now with each piece of k identified: k = ρσ_ε². A larger inventory, a more risk-averse dealer, or a more volatile stock all independently justify a bigger skew. Unlike adverse selection, this component's price impact is also transient — it reverses once the dealer works their inventory back toward zero, not because their belief about value changed.

07

Three costs, one spread — and how to tell them apart after the fact

The chapter's own summary of what each cost implies for price dynamics after a trade
Cost sourcePrice impact of a tradeWhy
Adverse selectionPermanentReflects a genuine, lasting revision in the dealer's belief about fundamental value
Order-processing costsTransient — reversesCompensation for a real but one-off cost, not new information
Inventory riskTransient — reversesReflects temporary risk-bearing, unwound as the dealer's position returns to target

What this means: this table is directly actionable, not just descriptive — measuring whether a price move after a large trade reverses (and how fast) tells you which cost actually dominates in a given market, which is exactly what Chapter 5's empirical techniques are built to exploit. Real intraday price impact typically has both a permanent and a transient piece mixed together — separating them is an empirical, not just theoretical, exercise.

08

Before moving to Chapter 4

  1. 1

    Exercise 2 from the chapter: a stock worth $10 or $20 with equal probability. Compute bid/ask with no informed trading, then with 1-in-10 traders informed — then find the average trading cost to an uninformed trader and average gain to an informed one.

  2. 2

    Exercise 1: with order-processing costs of k per transaction (not per share), show the spread decreases with transaction size — and think about what that implies is unrealistic about a flat per-share cost assumption.

  3. 3

    Pull real intraday tick data for a stock you trade, and check: does the correlation between successive price changes come out negative, the way it does for AGF (−0.45)? What does the magnitude suggest about the mix of adverse-selection vs. transient costs in that name?

EMH benchmark (frictionless)Glosten-Milgrom modeladverse selectionorder-processing cost inventory riskpermanent vs. transient price impactprice discoverymean-variance preferences
Built directly from the chapter's own text, extracted from the PDF in /references — including its real AGF trade data, worked numerical examples, and simulation results. Not a summary from the chapter title or abstract alone.