---
title: "Stress Case Studies"
book: "Markets I: The Ecosystem and Exchange-Traded Markets"
subject: quant
language: en
chapter: 31
exercises: 8
source: https://one-course.com/books/quant/1/en/chapter/31-stress-case-studies
---

# Chapter 31 — Stress Case Studies

At 14:45:28 on 6 May 2010 the most liquid equity future in the world stopped trading for five seconds. In the preceding four and a half minutes it had fallen more than 5%; resting buy orders, above a hundred thousand contracts that morning, were down to about a thousand. When trading resumed the price turned, and within twenty minutes most of the fall was gone, except in three hundred shares and funds where, meanwhile, twenty thousand trades had printed at prices more than 60% from where they had been: a cent, or a hundred thousand dollars. Nothing in the economy changed between 14:32 and 15:00. Every chapter of this book describes a mechanism that works on an ordinary day. This one looks at four days on which mechanisms met their limits, from the official reports, and asks each time the same three questions: what flow arrived, who was supposed to absorb it, and why did they step back?

## 31.1 6 May 2010

**Definition 31.1 (Flash crash and stub quote).**

A *flash crash* is a fall and recovery of prices, of a size normally seen over days, within minutes, without corresponding news. A *stub quote* is a quote at a price far from the market (a bid of a cent, an offer of $100 000), entered by or for a [market maker](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) to satisfy an obligation to quote continuously while not intending to trade.

The joint report of the two US regulators sets out the sequence. The market was already down and nervous. At 14:32 a mutual fund complex began selling 75 000 E-mini contracts, about $4.1 billion, as a hedge, through an algorithm told to sell 9% of the previous minute’s volume, “without regard to price or time”. A comparable programme by the same trader, using algorithms that took price and time into account, had earlier taken more than five hours for its first 75 000 contracts; this one finished in twenty minutes.

High-frequency firms and other intermediaries bought the first contracts, then, their inventory limits reached, sold them on. Between 14:45:13 and 14:45:27 they traded over 27 000 contracts, 49% of the volume, while buying about 200 net: the report’s “hot-potato” effect. The volume this generated told the algorithm to sell faster. By 14:45:28 buy-side depth was under 1 050 contracts, less than 1% of its level at the start of the day. The exchange’s stop-logic functionality then paused trading for five seconds, and in that pause buyers returned.

In the share market the same withdrawal had a different end. [Market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) who pulled their quotes left only their [stub quotes](#def-m1-stress-case-studies-flash) behind; market orders and stop-loss orders converted to market orders executed against them. The exchanges later cancelled the trades that were more than 60% away from the 14:40 prices, a threshold chosen after the fact, which was the last of the day’s uncertainties for anyone who had bought on the way down.

![A toy model of the mechanism, calibrated to nothing: a programme sells 9% of the last minute’s volume; depth shrinks, and intermediaries’ churn raises volume, when the price is below its recent average. With a fixed book the same 75 000 contracts cost 2.2%; with the two feedbacks 9.8%, of which 5.9 points in the last four minutes; a pause that lets buyers re-anchor stops the fall at 7.0%. The model has no recovery. Data: the tutorial’s simulation.](https://one-course.com/images/onecourse/chapters/quant-1/m1-stress-case-studies/fig-59f1fde98888.svg)

***Figure 31.1.** A toy model of the mechanism, calibrated to nothing: a programme sells 9% of the last minute’s volume; depth shrinks, and intermediaries’ churn raises volume, when the price is below its recent average. With a fixed book the same 75 000 contracts cost 2.2%; with the two feedbacks 9.8%, of which 5.9 points in the last four minutes; a pause that lets buyers re-anchor stops the fall at 7.0%. The model has no recovery. Data: the tutorial’s simulation.*

## 31.2 24 August 2015

**Definition 31.2 (Limit up–limit down and market-wide circuit breaker).**

*Limit up–limit down* is the US mechanism, introduced after 2010, that prevents trades in a security outside a band around a moving reference price and pauses trading if the market stays at the band. A *market-wide circuit breaker* halts all equity trading when a broad index falls by set percentages in a day ([Chapter 14](https://one-course.com/books/quant/1/en/chapter/14-exchange-traded-funds#ch-m1-exchange-traded-funds)).

**As of September 2026 — The band rules, as the regulator’s staff describe them.**

The reference price is the mean price of trades over the preceding five minutes; a new one takes effect only if it differs by 1% or more from the last, and stays at least 30 seconds. Bands are 5%, 10% or 20% either side, by tier of security and price, doubled from 09:30 to 09:45 and from 15:35 to 16:00, and multiplied by the leverage ratio for leveraged products. When the best offer reaches the lower band, or the best bid the upper, the security is in a limit state; if that lasts 15 seconds the primary exchange declares a pause of at least five minutes, on all venues.

On Monday 24 August 2015, after falls in Asia, the E-mini reached its overnight limit, 5% down, and was paused from 09:25 to 09:30. The largest index fund opened 5.2% down, was 7.8% down by 09:35, and closed 4.2% down. By 09:35 the largest listing exchange had opened only 38% of its shares in the main index, so that for some minutes the index was computed partly from Friday’s closing prices and the funds’ arbitrageurs had no basket to price ([Proposition 14.7](https://one-course.com/books/quant/1/en/chapter/14-exchange-traded-funds#prop-m1-exchange-traded-funds-stale)). There were 1 278 limit-up-limit-down halts that day: 1 058 in 327 exchange-traded products and 220 in 144 other securities. A fifth of exchange-traded products fell 20% or more at some point, against 5% of ordinary shares, although four fifths of them were never halted.

The mechanism designed after 2010 worked as specified and produced a new failure. A fund whose [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) cannot value its basket has no anchor; a halt stops trading but does not supply the anchor; and a reopening auction in an unanchored fund, with stop-loss orders queued, can reopen it at the band and halt it again. Repeated halts in products whose underlying shares were trading normally were the day’s signature.

![Limit-up-limit-down halts on 24 August 2015. The funds that halted did so three times each on average. Data: the regulator’s research note of December 2015.](https://one-course.com/images/onecourse/chapters/quant-1/m1-stress-case-studies/fig-a95961935ad1.svg)

***Figure 31.2.** Limit-up-limit-down halts on 24 August 2015. The funds that halted did so three times each on average. Data: the regulator’s research note of December 2015.*

## 31.3 5 February 2018 and January 2021

Two episodes already met. On 5 February 2018 ([Example 25.9](https://one-course.com/books/quant/1/en/chapter/25-volatility-as-a-traded-quantity-first-contact#ex-m1-volatility-first-contact-feb2018)) products that promised the inverse, or a multiple, of volatility futures had to buy those futures at the close in proportion to the day’s rise; their buying was the rise, and the largest inverse product lost nearly all of its value in a session. The flow was mechanical, public and concentrated in minutes: the rebalancing arithmetic of [Proposition 14.10](https://one-course.com/books/quant/1/en/chapter/14-exchange-traded-funds#prop-m1-exchange-traded-funds-rebalance) applied to a market too small for it.

In January 2021 ([Example 16.11](https://one-course.com/books/quant/1/en/chapter/16-stock-loan-and-short-selling-in-practice#ex-m1-stock-loan-and-short-selling-gme)) a share with a [short interest](https://one-course.com/books/quant/1/en/chapter/16-stock-loan-and-short-selling-in-practice#def-m1-stock-loan-and-short-selling-si) of 123% of its float rose 2 700% in three weeks. The mechanisms under strain were not on any exchange. Option [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) short the calls bought by individuals hedged by buying shares ([Definition 26.4](https://one-course.com/books/quant/1/en/chapter/26-zero-day-options-weeklies-and-retail-options-flow#def-m1-zero-day-options-and-retail-flow-dealer)); short sellers covered; and the clearing house’s margin model, seeing the volatility and the one-sided positions of retail brokers’ customers, raised those brokers’ requirements several-fold before dawn ([Chapter 5](https://one-course.com/books/quant/1/en/chapter/5-clearing-and-settlement#ch-m1-clearing-and-settlement), [Chapter 20](https://one-course.com/books/quant/1/en/chapter/20-margin#ch-m1-margin)). Some brokers could not or would not fund the call and restricted their customers to closing purchases. The staff report found that covering was a small part of the buying and that the rise was sustained by sentiment; what the episode added to the list of things that can stop a market is a retail broker’s balance sheet.

**Definition 31.3 (Liquidity spiral).**

A *liquidity spiral* is a loop in which falling prices reduce the capacity of intermediaries to hold positions (through losses, [margin calls](https://one-course.com/books/quant/1/en/chapter/6-financing-repo-securities-lending-and-prime-brokerage#def-m1-financing-margincall), risk limits or uncertainty about the validity of their trades), their withdrawal reduces depth, and reduced depth makes the same flow move prices further.

**Definition 31.4 (Clearly erroneous trade).**

A *clearly erroneous trade* is one that an exchange may cancel after the fact because its price was too far from a reference price. On 6 May 2010 the threshold, 60%, was chosen after the event; price bands exist so that such trades do not happen in the first place.

## 31.4 What the four have in common

**Method 31.5 (Reading an incident).**

1. **The flow.** Who had to trade, how much, by what rule, by when? In each case the flow was insensitive to price: a volume-following algorithm, stop-loss orders, a daily rebalance, a [margin call](https://one-course.com/books/quant/1/en/chapter/6-financing-repo-securities-lending-and-prime-brokerage#def-m1-financing-margincall) .
2. **The absorbers.** Who normally takes the other side, and what limits them: inventory, capital, a hedge that must exist, the certainty that trades will stand?
3. **The loop.** Through which variable does the price move feed back into the flow or into the absorbers’ capacity: volume, volatility, margin, a stale valuation?
4. **The circuit.** What stopped it: a pause, a band, an auction, a rule change, new capital? What did the stopping mechanism itself break?
5. **The aftermath.** Which trades stood? Who bore the loss? Which rule changed?

|  | Price-insensitive flow | Why absorbers withdrew | What changed afterwards |
| --- | --- | --- | --- |
| 6 May 2010 | volume-following sell algorithm | inventory limits; fear of broken trades | [stub quotes](#def-m1-stress-case-studies-flash) prohibited (November 2010); price bands |
| 24 Aug 2015 | market and stop orders at the open | no basket price for funds; late openings | one harmonised reopening auction with widening collars (2017) |
| 5 Feb 2018 | daily rebalance of volatility products | futures market too small for the flow | the largest inverse product redeemed by its issuer |
| Jan 2021 | retail call buying; covering | brokers’ clearing margin | shorter [settlement cycle](https://one-course.com/books/quant/1/en/chapter/5-clearing-and-settlement#def-m1-clearing-and-settlement-cycle) ([Chapter 5](https://one-course.com/books/quant/1/en/chapter/5-clearing-and-settlement#ch-m1-clearing-and-settlement)) |

For a trading firm the lessons are operational. Know which of your strategies are absorbers and what makes each one stop; decide in advance whether it stops by widening, by shrinking or by switching off, because in the event there are four minutes. Know which exchange rules decide whether your trades stand. Hold the cash for the [margin call](https://one-course.com/books/quant/1/en/chapter/6-financing-repo-securities-lending-and-prime-brokerage#def-m1-financing-margincall) that arrives with the opportunity ([Problem 20.1](https://one-course.com/books/quant/1/en/chapter/20-margin#pb-m1-margin-1)). And keep a replayable record ([Chapter 28](https://one-course.com/books/quant/1/en/chapter/28-reading-market-data#ch-m1-reading-market-data)): a day that can be run again is a day that can be learned from.

![In the toy model, the initial depth that would have kept the programme’s fall within a given size. With the feedbacks, 16% more depth turns a 9.8% fall into 5%, and 61% more brings it to 2%, close to the fall with no feedback at all: stability is very non-linear in depth, which is why it disappears so abruptly. Data: the tutorial’s simulation.](https://one-course.com/images/onecourse/chapters/quant-1/m1-stress-case-studies/fig-d65ce4d3e170.svg)

***Figure 31.3.** In the toy model, the initial depth that would have kept the programme’s fall within a given size. With the feedbacks, 16% more depth turns a 9.8% fall into 5%, and 61% more brings it to 2%, close to the fall with no feedback at all: stability is very non-linear in depth, which is why it disappears so abruptly. Data: the tutorial’s simulation.*

## 31.5 Tutorial: a liquidity withdrawal

**Goal.** Reproduce the shape of a volume-following sell programme in a book whose depth depends on the fall so far; add a pause; find the depth that would have absorbed the flow. **End state:** the two simulated figures of this chapter.

1. **One minute of the model,** in sixty steps, so that the result does not depend on the step. Sales from last minute’s volume; depth and churn from the fall below a five-minute average price; impact from sales over depth. `def run (p: Params, total: float , minutes: int = 60 , sub: int = 60 ): """Per-minute (price, depth, programme sales, volume). Price starts at 1.""" price, anchor, left, volume, paused = 1.0 , 1.0 , total, p.base_volume, False out = [] for _ in range (minutes): rate, traded = min (left, p.participation * volume) / sub, 0.0 for _ in range (sub): fall = max (0.0 , 1.0 - price / anchor) # how far below the recent average depth = p.depth0 * (p.floor + (1.0 - p.floor) * math.exp(-p.withdrawal * fall)) price *= 1.0 - p.impact * rate / depth anchor += (price - anchor) / (p.memory * sub) traded += p.base_volume * (1.0 + p.churn * fall) / sub + rate left, volume = left - rate * sub, traded if p.pause_at is not None and not paused and 1.0 - price >= p.pause_at: paused, anchor, volume = True , price, p.base_volume # buyers re-anchor at the reopening price out.append((price, depth, rate * sub, volume)) return out` **Listing 31.1.** A sell programme, a withdrawing book and a pause. code/markets-1/31-stress-case-studies/python/withdrawal.py
2. **Switch the feedbacks off** one at a time, then slow the programme to 3% of volume, and see what does the damage.
3. **Bands and pauses** as a state machine over a tape. `def on_tick (self , k: Tick) -> str : """Returns the state after this tick: 'paused', 'limit' or 'normal'.""" if k.t < self .paused_until: return " paused " if k.trade is not None : self ._trades.append((k.t, k.trade)) self ._trades = [(t, p) for t, p in self ._trades if t > k.t - self .window] if self ._trades: mean = sum (p for _, p in self ._trades) / len (self ._trades) if self .reference is None : self .reference, self ._ref_time = mean, k.t elif k.t - self ._ref_time >= self .min_hold and abs (mean / self .reference - 1.0 ) >= self .min_move: self .reference, self ._ref_time = mean, k.t if self .reference is None : return " normal " lo, hi = self .bands(k.t) in_limit = k.ask <= lo or k.bid >= hi if not in_limit: self ._limit_since = None return " normal " if self ._limit_since is None : self ._limit_since = k.t self .events.append((k.t, " limit state " )) if k.t - self ._limit_since >= self .limit_seconds: self .paused_until = k.t + self .pause_seconds self ._limit_since = None self ._trades.clear() self .reference = None # reopening sets a new reference self .events.append((k.t, " pause " )) return " paused " return " limit "` **Listing 31.2.** Reference price, limit state and pause. code/firm/replay/firm_replay.py

**What to change next.** Give the programme a [price limit](https://one-course.com/books/quant/1/en/chapter/12-asian-and-emerging-equity-markets#def-m1-asian-and-emerging-equity-markets-limit) (do not sell more than 1% below the arrival price) and compare its cost and duration. Then add a recovery: buyers who return in proportion to the distance below a slowly moving fair value.

## 31.6 Build: the incident replay harness

**Purpose.** The miniature firm runs every strategy through a library of bad days before it trades, and replays its own incidents afterwards. The harness turns a tape into the timeline a post-mortem needs.

**Interface.** `Tick(t, bid, ask, trade)`; `Luld(band_pct, …)` with `pct(t)`, `bands(t)`, `on_tick(tick)` and a list of `events`; `replay(ticks, luld)` returning the state and bands at each tick; `depth_within(levels, mid, bp)`.

**Rules.** The band rules of [Box 31.1](#dat-m1-stress-case-studies-luld), parameterised: window, minimum move, minimum hold, doubling periods, limit duration, pause length. After a pause the first trade sets a new reference. Inputs come from the feed normaliser of [Section 28.7](https://one-course.com/books/quant/1/en/chapter/28-reading-market-data#bld-m1-reading-market-data-feed), so that a recorded day can be replayed unmodified.

**Acceptance tests.** `code/firm/replay/tests/`: doubling at the open and the close; a reference that moves only by 1% and after 30 seconds; a limit state that becomes a pause after 15 seconds and a reopening; a limit state that clears in time; depth near the mid.

**Stretch.** A scenario library: for each of this chapter’s four days, a synthetic tape with the documented features, and a report of what each of the firm’s strategies would have done.

Sources and further reading

- US Commodity Futures Trading Commission and US Securities and Exchange Commission, *Findings Regarding the Market Events of May 6, 2010* , 30 September 2010.
- US Securities and Exchange Commission, Division of Trading and Markets, *Research Note: Equity Market Volatility on August 24, 2015* , December 2015.
- Bank for International Settlements, “The equity market turbulence of 5 February: the role of exchange-traded volatility products”, *BIS Quarterly Review* , March 2018.
- US Securities and Exchange Commission, *Staff Report on Equity and Options Market Structure Conditions in Early 2021* , 14 October 2021.
- M. Brunnermeier and L. H. Pedersen, “Market liquidity and funding liquidity”, *Review of Financial Studies* 22 (2009).

## 31.7 Exercises

**Exercise 31.1 ★.**

The E-mini programme of 6 May 2010 was 75 000 contracts worth $4.1 billion. Give the implied index level (multiplier $50). Between 14:32 and 14:45 it sold about 35 000 contracts: what share of the programme, and at what average rate per minute?

**Solution of Exercise 31.1.**

$4.1\text{bn}/75\,000 = \$54\,667$ a contract, an index level of $54\,667/50 =
1\,093$. $35\,000/75\,000 = 47\%$ of the programme in 13 minutes, about 2 700 contracts a minute.

**Exercise 31.2 ★.**

A share’s reference price is 40.00 and its band 5%. Give the bands at 11:00 and at 09:40. The best offer falls to 38.00 at 11:00:00 and stays there. When is the pause declared, and until when does it last at least?

**Solution of Exercise 31.2.**

At 11:00 the bands are $40 \times 0.95 = 38.00$ and $40 \times 1.05 = 42.00$; at 09:40 they are doubled, 36.00 and 44.00. An offer at 38.00 at 11:00:00 is a limit state; if it persists the pause is declared at 11:00:15 and lasts until 11:05:15 at the earliest.

**Exercise 31.3 ★.**

From [Figure 31.2](#fig-m1-stress-case-studies-halts): how many halts per halted security, in exchange-traded products and in other securities? What does the difference suggest?

**Solution of Exercise 31.3.**

$1\,058/327 = 3.2$ halts per halted product against $220/144 = 1.5$. The funds reopened into the same conditions that had halted them: the halt did not give their [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) a basket to price, so the reopening auction cleared at the band again.

**Exercise 31.4 ★★.**

An algorithm sells 9% of the previous minute’s volume. Volume is 20 000 contracts a minute in calm conditions. How long does it take to sell 75 000 contracts? If the algorithm’s own selling and the churn it provokes triple the volume, how long? Why is “percentage of volume” not a neutral instruction?

**Solution of Exercise 31.4.**

$75\,000/(0.09 \times 20\,000) = 42$ minutes; at three times the volume, 14 minutes. Volume is not liquidity: contracts passed between intermediaries count as volume and absorb nothing. An instruction keyed to volume speeds up exactly when its own impact provokes churn, which is when it should slow down. A neutral instruction needs a [price limit](https://one-course.com/books/quant/1/en/chapter/12-asian-and-emerging-equity-markets#def-m1-asian-and-emerging-equity-markets-limit), a time limit, or both.

**Exercise 31.5 ★★.**

A [market maker](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) is obliged to quote two-sided at all times. Explain how a [stub quote](#def-m1-stress-case-studies-flash) satisfies the letter of the obligation, what happened to market orders that met [stub quotes](#def-m1-stress-case-studies-flash) on 6 May 2010, and what replaced [stub quotes](#def-m1-stress-case-studies-flash).

**Solution of Exercise 31.5.**

A bid of a cent and an offer of $100 000 are a two-sided quote, so the obligation is met while no trade is intended. When real quotes were pulled, the [stub quotes](#def-m1-stress-case-studies-flash) became the best prices in the book and market orders, among them stop-loss orders that had become market orders, executed against them; these were a large part of the trades later cancelled. In November 2010 the regulator approved rules requiring [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker)’ quotes to stay within a set percentage of the [national best bid and offer](https://one-course.com/books/quant/1/en/chapter/9-us-equity-market-structure#def-m1-us-equity-market-structure-nbbo), which prohibits [stub quotes](#def-m1-stress-case-studies-flash) in effect.

**Exercise 31.6 ★★.**

On 24 August 2015 an index fund traded 20% below the value of its holdings while the holdings’ own markets functioned. Using [Proposition 14.5](https://one-course.com/books/quant/1/en/chapter/14-exchange-traded-funds#prop-m1-exchange-traded-funds-band), say which term of the arbitrage band had become very large, and why a five-minute pause did not shrink it.

**Solution of Exercise 31.6.**

The band is the cost of trading the basket plus the uncertainty on its value. With many constituents not yet open, or open with wide and thin quotes, the hedge could not be priced or executed: the cost-of-hedging term was tens of per cent wide for those minutes. A pause in the fund does nothing to open the constituents; only time did.

**Exercise 31.7 ★★★.**

*Coding.* With `run` and `trough` reproduce the three falls of [Figure 31.1](#fig-m1-stress-case-studies-paths). Then switch off only the churn, and only the withdrawal, and run the full model at a participation of 3%. Why does each feedback need the other to be dangerous?

**Solution of Exercise 31.7.**

The default parameters give a trough of 9.8%; both feedbacks set to zero, 2.2%; a pause at 0.05, 7.0%. Churn alone: 2.2%, exactly as with no feedback, because with a fixed book the cost of 75 000 contracts does not depend on how fast they are sold. Withdrawal alone: 4.0%. The full model at 3% participation: 2.6%. Withdrawal responds to the speed of the fall; churn sets the speed of the selling. Withdrawal without churn meets a programme slow enough for depth to come back; churn without withdrawal accelerates a programme in a book that does not care. Together they form the loop.

**Exercise 31.8 ★★★.**

*Find the flaw.* A risk report: “Our market-making strategy is safe in a crash: it is flat at the end of every day, its worst day in five years of backtest is $-0.4\%$ of capital, and it widens its quotes automatically when volatility rises.” Name three things the chapter’s four days did that this report cannot see.

**Solution of Exercise 31.8.**

(i) *Intraday inventory.* Flat at the close says nothing about 14:45; the loss of a crash is taken and, with luck, recovered within the day, and the risk is being stopped out, or having the winning leg cancelled, in between. (ii) *Broken trades and halts.* The backtest assumes every fill stands and every hedge can be executed; on these days purchases were cancelled while the hedges sold against them stood, and hedges were halted. (iii) *No such day in the sample.* Five calm years contain no withdrawal of the other [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker), no stale or missing data, no [margin call](https://one-course.com/books/quant/1/en/chapter/6-financing-repo-securities-lending-and-prime-brokerage#def-m1-financing-margincall). Widening “when volatility rises” reacts to a measured volatility that lags by minutes an event that lasts minutes.

## 31.8 Problem: Five Seconds

**Problem 31.1.**

Weekend problem — how much depth would have been enough?

Use the chapter’s toy model with its default parameters: initial buy-side depth 100 000 contracts, calm volume 20 000 a minute, a programme of 75 000 contracts selling 9% of the previous minute’s volume, impact of 3% for selling a quantity equal to the current depth. With $f$ the fall of the price below its average over the last five minutes or so, depth is multiplied by $0.1 + 0.9\exp(-150 f)$ and calm volume by $1 + 100 f$.

**Part I — The first minute.**

1. Give the programme’s sales in the first minute.
2. Give the price change they cause if depth stays at its initial level.
3. When the price is 1% below its recent average, give the depth and the volume.
4. How small can depth become, and at what recent fall is it within a tenth of that floor?
5. At a recent fall of 1%, how much does the programme sell in a minute and what does that minute cost?

**Part II — The whole path.**

6. The simulation gives falls of 2.2% with a fixed book and 9.8% with the feedbacks. How many times more costly is the second?
7. Value the difference on 75 000 contracts at $54 667 each, taking the average sale at half the trough.
8. With a pause at $-5\%$ after which buyers measure the fall from the reopening price, the trough is 7.0%. What did the pause save?
9. In the model, why does the pause work? Relate it to what the official report says happened in the five seconds.

**Part III — The depth that was missing.**

10. From [Figure 31.3](#fig-m1-stress-case-studies-depth) , give the initial depth that keeps the fall within 2%, and within 5%.
11. Express each as a multiple of the actual 100 000.
12. Why is the relation so non-linear?
13. The programme could instead have been given a participation rate of 3%. Without running the model, what would change, and what would it cost the seller?
14. Which party was best placed to prevent the event at the least cost?

**Part IV — Judgement.**

15. Intermediaries traded 27 000 contracts in fourteen seconds and bought 200 net. Were they providing liquidity?
16. Should the 20 000 trades at absurd prices have been cancelled? Give the argument on each side.
17. Bands and pauses now exist. Name one thing they fixed and one they did not, using 24 August 2015.
18. What should a volume-following execution algorithm always have?
19. State the *named result* : the initial depth that would have absorbed the programme with a fall of no more than 2%.
20. In one sentence: what is liquidity, on the day it matters?

**Solution of Problem 31.1.**

**1.** $0.09 \times 20\,000 = 1\,800$ contracts. **2.** $3\% \times 1\,800/100\,000 = 0.054\%$. **3.** Depth $100\,000 \times (0.1 + 0.9\,e^{-1.5}) = 30\,100$ contracts; volume $20\,000 \times 2 = 40\,000$ a minute. **4.** The floor is 10 000 contracts. $0.9\,e^{-150 f} = 0.01$ gives $f =
\ln 90/150 = 3.0\%$. **5.** $0.09 \times 40\,000 = 3\,600$ contracts, costing $3\% \times 3\,600/30\,100 =
0.36\%$ in the minute, 6.7 times the first minute, which deepens the recent fall. **6.** $9.8/2.2 = 4.5$ times. **7.** $75\,000 \times 54\,667 \times (9.8\% - 2.2\%)/2 = \$156$ million. **8.** $75\,000 \times 54\,667 \times (9.8\% - 7.0\%)/2 = \$57$ million, by the same convention. **9.** After the pause buyers measure the fall from the reopening price, so depth returns to its calm level and the volume the programme follows falls back; the remaining contracts are then sold into a full book. The report describes the same thing: in the five seconds sell-side pressure eased, buy-side interest returned, and the price stabilised when trading resumed. **10.** 161 200 contracts for 2%; 116 200 for 5%. **11.** 1.61 and 1.16 times. **12.** With no feedback the fall is about $3\% \times 75\,000/\text{depth}$, which is 2.25% at 100 000: the book was nearly deep enough. The feedbacks switch on only when the fall outruns the five-minute average; a little more depth keeps the early fall slow, depth then never withdraws, and the loop never starts. Below that threshold the system is in another regime. **13.** Sales of 600 a minute at first; the programme takes about two hours; the price never gets far below its recent average, so neither feedback engages: the simulation gives 2.6%. The cost to the seller is time, that is, two hours of exposure to the market risk the hedge was meant to remove. **14.** The seller, or their broker: a [price limit](https://one-course.com/books/quant/1/en/chapter/12-asian-and-emerging-equity-markets#def-m1-asian-and-emerging-equity-markets-limit) or a slower rate costs almost nothing to set. Every other remedy (more capital at [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker), exchange pauses) is more expensive and less certain. **15.** Not in net terms. They provided immediacy to each seller for a few seconds and passed the position on; the market’s capacity to hold the 75 000 contracts did not increase. Volume measured their activity, not absorption. **16.** For: the prices carried no information, and the sellers were largely individuals whose stop orders behaved in a way they had not understood. Against: those who bought on the way down and hedged elsewhere were left with one leg, which teaches liquidity providers to withdraw next time; and a threshold chosen afterwards is a lottery. The second argument is why a threshold fixed in advance is better than one chosen afterwards. **17.** Fixed: trades at absurd prices, which the bands forbid. Not fixed: the absence of an anchor. Funds were halted repeatedly and reopened at the band, because a halt does not make the basket priceable. **18.** A [price limit](https://one-course.com/books/quant/1/en/chapter/12-asian-and-emerging-equity-markets#def-m1-asian-and-emerging-equity-markets-limit), a maximum rate in contracts and not only in percentage of volume, and a rule that pauses it and calls a human when the price has moved more than a set amount since it started. **19.** **The depth that was missing:** in this model, 161 200 contracts, 61% more than the 100 000 there were, would have held the fall to 2%. **20.** Liquidity is the quantity that someone is still willing to buy after the price has already fallen fast, and it is smaller, by an order of magnitude, than the quantity displayed beforehand.

## 31.9 Interview questions

**Interview question 31.1 ★ trader, researcher, developer.**

What happened on 6 May 2010?

**Solution of Interview question 31.1.**

A large hedger sold 75 000 E-mini futures through an algorithm that followed volume with no price or time limit, in a market already stressed. Intermediaries absorbed the first sales, reached their limits and traded among themselves, which raised volume and hence the selling rate. Depth in the future fell to about 1% of normal; a five-second exchange pause turned it. In shares and funds [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) withdrew, leaving [stub quotes](#def-m1-stress-case-studies-flash), and 20 000 trades at prices 60% or more away were cancelled.

*What the interviewer is looking for: the mechanism (flow, withdrawal, feedback through volume), not just “an algorithm did it”; the split between futures and shares.*

**Interview question 31.2 ★ trader, developer.**

How does [limit up–limit down](#def-m1-stress-case-studies-luld) work?

**Solution of Interview question 31.2.**

Bands of 5%, 10% or 20% around the mean trade price of the last five minutes, doubled near the open and the close; no trade outside them. If the best offer sits at the lower band, or the bid at the upper, for 15 seconds, the primary exchange pauses the security for at least five minutes on all venues and reopens it with an auction. The reference moves only when the mean has moved 1%, and at most every 30 seconds.

*What the interviewer is looking for: bands on quotes versus pauses; the moving reference; the reopening auction as the weak point.*

**Interview question 31.3 ★★ trader, researcher.**

Why did [exchange-traded funds](https://one-course.com/books/quant/1/en/chapter/14-exchange-traded-funds#def-m1-exchange-traded-funds-etf) trade far below the value of their holdings on 24 August 2015?

**Solution of Interview question 31.3.**

Their price is held to their value by arbitrageurs who must price and trade the basket. At the open many constituents had not opened or had no reliable quotes, futures had been limit down, and the reference values published for the funds were stale. With no hedge, [market makers](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker) quoted wide or not at all; market and stop orders met an empty book; halts followed, and reopenings into the same vacuum halted again.

*What the interviewer is looking for: the arbitrage band widening, not “panic”; why the halt did not help.*

**Interview question 31.4 ★★ researcher, mle.**

Your backtest covers five calm years. How do you assess the strategy’s behaviour in a crash?

**Solution of Interview question 31.4.**

Not from the backtest’s own distribution. Replay the strategy through recorded or reconstructed stress days, with the things a backtest assumes away switched off: fills that are later broken, hedges that are halted, data that is stale or missing, latency and queue position that degrade, margin that rises. Look at the worst intraday inventory and the capital needed at that instant, not the daily result. Decide the stop rule in advance and test the rule.

*What the interviewer is looking for: scenario replay with broken assumptions; intraday and not end-of-day risk; humility about the sample.*

**Interview question 31.5 ★★ trader, developer.**

Your market-making system sees the price fall 3% in two minutes on rising volume. What should it do, and who decides?

**Solution of Interview question 31.5.**

By rule decided in advance, not by improvisation: reduce size and widen as inventory and short-horizon volatility rise; stop adding to inventory at its limit; check data integrity (stale feeds, crossed markets, a hedge venue that is halted) and stop quoting what cannot be hedged or priced. A kill switch belongs to the trader and to risk independently. Switching off entirely is legitimate but has a cost, including obligations if the firm is a registered [market maker](https://one-course.com/books/quant/1/en/chapter/1-what-a-trading-firm-does#def-m1-what-a-trading-firm-does-market-maker), so it should be a designed state and not a panic.

*What the interviewer is looking for: pre-defined states; the hedge and data checks; who holds the switch; awareness of [quoting obligations](https://one-course.com/books/quant/1/en/chapter/24-options-market-structure#def-m1-options-market-structure-mm).*

**Interview question 31.6 ★★★ researcher, trader, bank.**

What do market crashes driven by market structure have in common, and what would you look for to anticipate the next one?

**Solution of Interview question 31.6.**

A flow that does not respond to price (volume-following, stops, daily rebalances, [margin calls](https://one-course.com/books/quant/1/en/chapter/6-financing-repo-securities-lending-and-prime-brokerage#def-m1-financing-margincall)); intermediaries with a hard limit (inventory, capital, a hedge that must exist, doubt that trades will stand); and a loop from the price move back to the flow or the limit. To anticipate: look for large mechanical flows relative to the market they must trade in (leveraged products’ rebalance against futures volume, [dealer gamma](https://one-course.com/books/quant/1/en/chapter/26-zero-day-options-weeklies-and-retail-options-flow#def-m1-zero-day-options-and-retail-flow-dealer), crowded shorts against float), for concentration of liquidity provision in a few firms with similar limits, and for places where the circuit breaker itself removes the anchor.

*What the interviewer is looking for: a general structure, then concrete measurable candidates.*
