---
title: "Fair Value"
book: "Market Making and High-Frequency Trading"
subject: quant
language: en
chapter: 2
exercises: 8
source: https://one-course.com/books/quant/11/en/chapter/2-fair-value
---

# Chapter 2 — Fair Value

The same stock quotes on a dozen venues, its index future trades in Chicago and the exchange-traded fund that holds it trades in New Jersey. The market maker’s price is none of these quotes but its own estimate, revised on every message from any of them. In this chapter’s simulated market, where a follower instrument trades on two venues and a leader moves first, the best estimate built from the follower’s own book forecasts its mid five seconds ahead 2.4% better than the mid does. Adding the leader’s price improves the forecast by 3.5% when the leader moves half a second first, and by 12.8% when it moves two seconds first. Small percentages, applied to every quote of every day, are what this chapter is about.

## 2.1 Mid, weighted mid and microprice

**Definition 2.1 (Fair price).**

A market maker’s *fair price* $\hat P_t$ is its estimate, at time $t$, of the efficient price $P^\ast_t$ of an instrument from the information it has at $t$: the books of the venues where the instrument trades, the prices of related instruments, and its own recent fills. Quotes are set around it; the gap between a fill’s price and the fair price at the fill is the fill’s expected profit.

The name is chosen against two neighbours. The *fair value* of a future (One Quant Book 1, chapter 21) is a no-arbitrage price from spot, financing and dividends; the *theoretical value* of an option (One Quant Book 5, chapter 26) comes from a volatility surface. A [fair price](#def-hf-fair-value-fair) can use either as an input, but it is a statistical estimate, revised on every message, and its quality is measured by how well it forecasts.

Three estimators use one venue’s top of book. The mid $m_t=\tfrac12(b_t+a_t)$ ignores the queue sizes $Q^b_t$ and $Q^a_t$. The weighted mid

$$
w_t=\frac{a_t\,Q^b_t+b_t\,Q^a_t}{Q^b_t+Q^a_t}
$$

moves towards the ask when the bid queue is the larger, because a large bid queue is less likely to be exhausted first. The microprice (One Quant Book 7, chapter 8) replaces the fixed formula with a table learned from data: the mid plus the average change of the mid over a horizon, by bucket of the queue imbalance $I_t=Q^b_t/(Q^b_t+Q^a_t)$. Stoikov showed that the microprice so estimated forecasts short-term prices better than the mid or the weighted mid.

**Example 2.2 (Three estimates of one book).**

A book shows 300 shares bid at 99 ticks and 100 offered at 100. The mid is 99.5; the imbalance is 0.75 and the weighted mid 99.75. This chapter’s microprice table, fitted on the first simulated hour with five buckets and a five-second horizon, adds $-0.087$, $-0.007$, $0.022$, $0.091$ and $0.220$ ticks to the mid for imbalances in $[0,0.2)$, $[0.2,0.4)$, …, $[0.8,1]$. Here it adds 0.091 and gives 99.59: the data say the weighted mid overstates what the imbalance predicts.

## 2.2 Fair price across venues

When one instrument trades on several venues, each venue’s book is a noisy, differently delayed view of one efficient price. A venue whose quote has not changed for a second tells less than one that changed a millisecond ago; a venue with a thin book is noisier than the primary market.

**Definition 2.3 (Consolidated fair price).**

A *consolidated fair price* is a [fair price](#def-hf-fair-value-fair) that combines the books of every venue on which an instrument trades, each weighted by how much its prices tell about the efficient price, in view of its liquidity and of how recently it changed.

A [consolidated fair price](#def-hf-fair-value-consolidated) is not the national best bid and offer (One Quant Book 1, chapter 9), which is a regulatory construct of protected quotes. The market maker cares about information, not protection: a venue that rarely trades may carry a stale best price and deserve almost no weight.

The simplest calibration is a regression: the future mid of the instrument, minus its current mid, on the gaps between each source and the mid. On the chapter’s market (a follower B quoted on two venues, B and C) the weights fitted on the first hour are 0.73 on B’s own microprice and 0.32 on C’s; they sum to about one, as they should for two measurements of one price, and the second venue earns a third of the weight.

## 2.3 Fair price across instruments

**Definition 2.4 (Cross-instrument fair price).**

A *cross-instrument fair price* is a [fair price](#def-hf-fair-value-fair) that also uses the prices of related instruments, translated into the instrument’s own units (by a hedge ratio, a conversion ratio, a currency or a fair-value basis), so that a move of a related instrument that leads is reflected before the instrument’s own book shows it.

An exchange-traded fund’s market maker watches the index future; a receipt’s market maker watches the home listing and the currency (chapter 14); an options market maker watches the underlying. The related instrument must be put in the right units first. For the future of an index and a fund on that index, the translation is the fair-value basis of One Quant Book 1, chapter 21; in the chapter’s market the two share one efficient price, so no translation is needed.

With the leader’s mid added to the regression, the weights become 0.74 on B’s microprice, 0.22 on C’s and 0.18 on the leader’s; when the leader moves two seconds before B, the leader’s weight rises to 0.27, B’s own to 0.89, and C’s falls to $-0.09$. The regression is using the lead that chapter 8 will estimate and trade.

## 2.4 Filtering: the fair price as a state

Regressions weigh sources by their average information. A filter weighs each observation when it arrives, by how long it has been since the last one.

**Definition 2.5 (Fair-price filter).**

A *fair-price filter* treats the efficient price as a hidden state, a random walk with variance $q$ per second, and every source’s price as an observation of it with noise variance $r_j$. On an observation $y$ from source $j$ at time $t$, the previous update having been at $t'$, it propagates and updates:

$$
\Sigma\leftarrow\Sigma+q\,(t-t'),\qquad K=\frac{\Sigma}{\Sigma+r_j},\qquad \hat P_t\leftarrow\hat P_t+K\,(y-\hat P_t),\qquad \Sigma\leftarrow(1-K)\,\Sigma .
$$

It is the local-level Kalman filter of One Quant Book 4, chapter 19, run on irregular times; a quiet period raises $\Sigma$ and hence the weight of the next observation, which is exactly the behaviour a stale venue calls for ([Listing 2.1](#lst-hf-fair-value-filter)).

**Proposition 2.6 (Steady state under regular observations).**

If one source is observed every $\Delta$ seconds, the posterior variance converges to

$$
\bar\Sigma=\tfrac12\Bigl(-q\Delta+\sqrt{q^2\Delta^2+4q\Delta r}\Bigr),\qquad \bar K=\frac{\bar\Sigma+q\Delta}{\bar\Sigma+q\Delta+r}.
$$

**Proof.** A fixed point of $\Sigma\mapsto (\Sigma+q\Delta)r/(\Sigma+q\Delta+r)$ satisfies $\Sigma^2+q\Delta\Sigma-q\Delta r=0$; its positive root is $\bar\Sigma$. The map is increasing and concave with slope below one at the fixed point, so the iteration converges from any positive start. ∎

With $q=0.05$ square ticks a second, $r=0.1$ and ten observations a second, $\bar\Sigma=0.02$ and $\bar K=0.2$: each new mid moves the [fair price](#def-hf-fair-value-fair) by a fifth of its surprise. The chapter’s filter uses $q=0.047$, the variance rate of the efficient price over the first hour, and for each source the variance of its gap to the mid five seconds later, 0.104, 0.123 and 0.134 for B, C and the leader.

![The chapter’s fair price for instrument B: B’s own book on its main venue, its book on a second venue, and a leading instrument translated into B’s units, combined by weights that reflect what each tells about B’s efficient price.](https://one-course.com/images/onecourse/chapters/quant-11/hf-fair-value/fig-5bca5dc21a53.svg)

***Figure 2.1.** The chapter’s [fair price](#def-hf-fair-value-fair) for instrument B: B’s own book on its main venue, its book on a second venue, and a leading instrument translated into B’s units, combined by weights that reflect what each tells about B’s efficient price.*

## 2.5 Evaluating a fair price

A [fair price](#def-hf-fair-value-fair) is judged by what it forecasts. In a simulation the efficient price is known and the error can be measured against it; in a live market only future prices are observed, and the natural target is the mid some seconds later. Both targets are used below, on a grid of 0.1 seconds over the second simulated hour, with every parameter fitted on the first hour.

|  | RMSE (ticks), lead 0.5 s | change against the mid (%) |
| --- | --- | --- |
| estimator of B’s [fair price](#def-hf-fair-value-fair) | efficient price | mid in 5 s | lead 0.5 s | lead 2 s |
| mid | 0.962 | 0.549 | 0.0 | 0.0 |
| weighted mid | 0.963 | 0.542 | $-1.3$ | $+0.1$ |
| microprice | 0.957 | 0.536 | $-2.4$ | $-1.7$ |
| consolidated, regression | 0.947 | 0.542 | $-1.2$ | $-3.0$ |
| consolidated, filter | 0.961 | 0.559 | $+1.8$ | $-0.3$ |
| cross-instrument, regression | 0.930 | 0.529 | $-3.5$ | $-12.8$ |
| cross-instrument, filter | 0.941 | 0.544 | $-0.8$ | $-8.7$ |

The last two columns are changes of the error against the mid five seconds ahead, averaged over three simulated markets. Three lessons stand out. The book of the instrument itself says little: in this market every estimator built from it is within 2.5% of the mid. The leader says more, and more the further ahead it is ([Figure 2.2](#fig-hf-fair-value-lags)); at a two-second lead the [cross-instrument fair price](#def-hf-fair-value-cross) removes an eighth of the error. And the filter, whose variances were set by a rule of thumb, does worse than the regression, which was fitted to the very target it is scored on: calibrate a [fair price](#def-hf-fair-value-fair) to what it will be used to forecast.

![Change of the error of each fair price, against the mid’s, as a forecast of B’s mid five seconds later, by how many seconds the leader A moves before B (log scale); mean of three simulated hours each. Data: hf_fairvalue.by_lag.](https://one-course.com/images/onecourse/chapters/quant-11/hf-fair-value/fig-f38261518c4c.svg)

***Figure 2.2.** Change of the error of each [fair price](#def-hf-fair-value-fair), against the mid’s, as a forecast of B’s mid five seconds later, by how many seconds the leader A moves before B (log scale); mean of three simulated hours each. Data: `hf_fairvalue.by_lag`.*

[Figure 2.3](#fig-hf-fair-value-window) shows why. After the largest ten-second move of the second hour, B’s efficient price climbs five ticks, its mid follows a tick at a time over several seconds, and the [cross-instrument fair price](#def-hf-fair-value-cross) moves ahead of the mid as soon as the leader’s book has moved. In [Figure 2.2](#fig-hf-fair-value-lags), with three markets per point, the curves are noisy (the half-second lead happens to show less than the quarter-second one); the trend is not.

![Instrument B around the largest ten-second move of its efficient price in the second simulated hour (lead of A over B two seconds): B’s efficient price, its mid and its cross-instrument fair price on a 0.1-second grid. Data: hf_fairvalue.window.](https://one-course.com/images/onecourse/chapters/quant-11/hf-fair-value/fig-b49031bca1da.svg)

***Figure 2.3.** Instrument B around the largest ten-second move of its efficient price in the second simulated hour (lead of A over B two seconds): B’s efficient price, its mid and its [cross-instrument fair price](#def-hf-fair-value-cross) on a 0.1-second grid. Data: `hf_fairvalue.window`.*

**Remark 2.7 (How good is good).**

A 3% lower error sounds like nothing. A market maker earns a fraction of the spread on every fill and loses the adverse selection that its [fair price](#def-hf-fair-value-fair) failed to foresee (chapter 1); chapter 6 shows the fills that move against it are concentrated in the moments when its [fair price](#def-hf-fair-value-fair) was most wrong. The value of a [fair price](#def-hf-fair-value-fair) is measured in adverse selection saved, per fill, times all the fills of a year.

## 2.6 Tutorial: three markets, seven fair prices

**Goal.** Build the chapter’s [fair prices](#def-hf-fair-value-fair) for a follower instrument quoted on two venues with a leader, fit them on one hour and score them on the next. **End state:** the table above and Figures [2.2](#fig-hf-fair-value-lags) and [2.3](#fig-hf-fair-value-window).

1. **Markets.** `hf_fairvalue.markets(lag)` simulates A, and B and C whose efficient price is A’s `lag` seconds later, each with its own order flow.
2. **The filter.** `firm.fairprice.FairFilter` is [Definition 2.5](#def-hf-fair-value-filter) in code; its C++20 and Rust twins reproduce the same numbers on a shared fixture of 3 000 observations. `class FairFilter : """Local-level Kalman filter over irregular observations from several sources.""" def __init__(self , q: float , r, x0: float | None = None , p0: float = 1e6 ): self .q, self .r = float (q), [float (v) for v in r] self .x = math.nan if x0 is None else float (x0) self .p, self .t = float (p0), None def update (self , t: float , src: int , y: float ) -> float : if self .t is None : self .t = t if math.isnan(self .x): self .x = y self .p = self .r[src] return self .x self .p += self .q * (t - self .t) self .t = t k = self .p / (self .p + self .r[src]) self .x += k * (y - self .x) self .p = (1.0 - k) * self .p return self .x def predict (self , t: float ) -> tuple [float , float ]: return self .x, self .p + self .q * (t - self .t)` **Listing 2.1.** The fair-price filter: propagate for the elapsed time, then update. code/firm/fairprice/firm_fairprice.py
3. **The regressions.** The future mid minus the mid on the gaps between each source and the mid, fitted on the first hour. `def _design (lv: dict , kind: str ) -> np.ndarray: base = lv[" mid " ] cols = {" consolidated " : [lv[" micro " ] - base, lv[" c_micro " ] - base], " cross " : [lv[" micro " ] - base, lv[" c_micro " ] - base, lv[" a_mid " ] - base]}[kind] return np.column_stack(cols) @functools .cache def weights (lag: float = LAG, seed: int = 31 ) -> dict : """Least-squares weights of the regression fair prices, fitted on the first hour: future mid minus mid on the gaps between each source and the mid.""" _, lv, _, fut = _levels(lag, seed, True ) return {k: np.linalg.lstsq(_design(lv, k), fut - lv[" mid " ], rcond=None )[0 ] for k in (" consolidated " , " cross " )}` **Listing 2.2.** Regression fair prices: design and weights. code/hft/02-fair-value/python/hf_fairvalue.py
4. **Score.** `table(lag)` averages the errors over three seeds; `fig_fairvalue.py` writes the figures’ data.

**What to change next.** Make venue C thin and slow and watch its weight fall; let the leader’s lead vary through the day and refit the weights every ten minutes.

## 2.7 Build: the fair-price engine

**Purpose.** Streaming [fair prices](#def-hf-fair-value-fair) for every Quoter of the book, with a core fast enough for the hot path.

**Interface.** `weighted_mid`, `imbalance`, `fit_micro(imb, spread, dmid, n)`, `micro(…, g)`; `FairFilter(q, r).update(t, src, y) -> estimate`, `predict(t)`; `run_filter`; `rmse`.

**Rules.** Parameters are fitted on data before the period they are used on. Sources are translated into the instrument’s units before they enter. The first observation initialises the state. The C++20 (`cpp/firm_fairprice.hpp`) and Rust (`rust/`) filters perform the same operations in the same order.

**Acceptance tests.** `code/firm/fairprice/tests/`: the weighted mid and the microprice by hand; one Kalman step by hand; the fixture reproduced by the Python reference and, in `cpp/` and `rust/`, by the twins, to $10^{-9}$ ticks.

**Stretch.** Staleness-dependent noise $r_j(t-t_j)$; a two-state filter with the leader’s lead as a state; online refitting of the weights.

Sources and further reading

- S. Stoikov, “The micro-price: a high-frequency estimator of future prices”, *Quantitative Finance* 18(12), 2018.
- One Quant Book 4, chapter 19 (the Kalman filter) and One Quant Book 7, chapter 8 (the microprice and the order-book features).

## 2.8 Exercises

**Exercise 2.1 ★.**

A book shows 300 shares bid at 99 and 100 offered at 100. Compute the weighted mid.

**Solution of Exercise 2.1.**

$(100\times300+99\times100)/400=99.75$.

**Exercise 2.2 ★.**

With the chapter’s microprice table, what is the microprice of a one-tick book 99/100 whose imbalance is 0.9?

**Solution of Exercise 2.2.**

Bucket $\min(\lfloor0.9\times5\rfloor,4)=4$ adds 0.220: $99.5+0.220=99.72$.

**Exercise 2.3 ★.**

The filter holds $\hat P=100$ with $\Sigma=0.02$; $q=0.05$, $r=0.1$. A mid of 101 arrives 0.4 seconds after the last update. Give the gain and the new [fair price](#def-hf-fair-value-fair).

**Solution of Exercise 2.3.**

$\Sigma=0.02+0.05\times0.4=0.04$, $K=0.04/0.14=0.286$; $\hat P=100+0.286\times1=100.29$.

**Exercise 2.4 ★★.**

Using [Proposition 2.6](#prop-hf-fair-value-steady), compute $\bar\Sigma$ and $\bar K$ for $q=0.05$, $r=0.1$ and ten observations a second, and say what happens to $\bar K$ when the source slows to one observation a second.

**Solution of Exercise 2.4.**

$q\Delta=0.005$: $\bar\Sigma=\tfrac12(-0.005+\sqrt{0.000025+0.002})=0.02$, $\bar K=0.025/0.125=0.2$. At one observation a second, $q\Delta=0.05$, $\bar\Sigma=0.05$ and $\bar K=0.1/0.2=0.5$: rarer observations each count for more.

**Exercise 2.5 ★★.**

Why can a filter with variances set by rule of thumb forecast worse than the plain mid, while a regression fitted on the same history does not?

**Solution of Exercise 2.5.**

The filter assumes the sources’ errors are independent white noise around the current efficient price. The mids of this market lag the efficient price for seconds, so their errors are autocorrelated and shared; the filter weighs them wrongly and adds its own smoothing lag. The regression learns the weights that best forecast the target it is judged on, whatever the error structure.

**Exercise 2.6 ★★.**

From [Figure 2.2](#fig-hf-fair-value-lags), read the improvement of the cross-instrument regression at a one-second lead.

**Solution of Exercise 2.6.**

About $-7.5\%$ (the point at a one-second lead reads $-7.54$).

**Exercise 2.7 ★★★.**

*Coding.* Compute `table(1.0)` and give the change of the error of the cross-instrument filter against the mid, five seconds ahead.

**Solution of Exercise 2.7.**

$-3.23\%$ for the filter, against $-7.54\%$ for the regression at the same lead.

**Exercise 2.8 ★★★.**

*Find the flaw.* “Our new microprice table cuts the forecast error by 9% on today’s data, on which we fitted it.”

**Solution of Exercise 2.8.**

In-sample: a table fitted on a day always fits that day better than the mid. Fit it on one period and score it on the next, as the chapter does (first hour, second hour), and report the out-of-sample change.

## 2.9 Problem: Whose Price Is It

**Problem 2.1.**

Weekend problem — whose price is it

An exchange-traded fund trades on two venues and follows its index future. You must give its market maker one number, updated on every message.

**Part I — One book.**

1. Define the [fair price](#def-hf-fair-value-fair) and distinguish it from a future’s fair value.
2. Write the weighted mid and explain its direction.
3. How is a microprice table fitted, and why only on one-tick books?
4. Give the chapter’s table and the microprice of a 99/100 book at imbalance 0.75.
5. By how much does the microprice improve on the mid as a five-second forecast?

**Part II — Many venues, many instruments.**

6. Define a [consolidated fair price](#def-hf-fair-value-consolidated) and say why it is not the national best bid and offer.
7. Give the regression weights on B’s and C’s microprices and interpret their sum.
8. Define a [cross-instrument fair price](#def-hf-fair-value-cross) and say what must happen to the leader’s price before it enters.
9. Give the three weights with the leader at a half-second and at a two-second lead.

**Part III — The filter.**

10. Write the [fair-price filter](#def-hf-fair-value-filter) ’s propagate and update steps.
11. Prove [Proposition 2.6](#prop-hf-fair-value-steady) .
12. Why does a stale source get more weight on its next observation?
13. Give the chapter’s $q$ and $r$ and how each was estimated.
14. Why did the filter forecast worse than the regression?

**Part IV — The verdict.**

15. State the *named result* : the five-second forecast error of the mid, the microprice and the [cross-instrument fair price](#def-hf-fair-value-cross) at a half-second lead, and the share of the cross-instrument improvement that the leader brings.
16. How does the improvement change with the lead?
17. Why are three simulated hours too few to trust the shape of [Figure 2.2](#fig-hf-fair-value-lags) point by point?
18. What does [Figure 2.3](#fig-hf-fair-value-window) show?
19. How is a [fair price](#def-hf-fair-value-fair) ’s quality turned into money?
20. In one sentence: what makes a [fair price](#def-hf-fair-value-fair) better than the mid?

**Solution of Problem 2.1.**

1. An estimate of the efficient price from everything observed, updated on every message; a future’s fair value is a no-arbitrage price from spot, financing and dividends.
2. $w=(aQ^b+bQ^a)/(Q^b+Q^a)$ : the larger bid queue is less likely to be exhausted first, so the next move is more likely up.
3. Average change of the mid over the horizon by imbalance bucket, on one-tick books, where the imbalance is informative and the mid is well defined.
4. $-0.087,-0.007,0.022,0.091,0.220$ ; $99.5+0.091=99.59$ .
5. 2.4% lower error at a half-second lead (0.536 against 0.549 ticks).
6. Combines every venue’s book by information; the NBBO is a regulatory construct of protected quotes, blind to staleness and depth.
7. 0.73 and 0.32; they sum to about one because both measure one price.
8. Uses related instruments’ prices after translating them into the instrument’s units (hedge ratio, conversion, currency, basis).
9. 0.74, 0.22, 0.18 at a half-second lead; 0.89, $-0.09$ , 0.27 at two seconds.
10. $\Sigma\leftarrow\Sigma+q(t-t')$ , $K=\Sigma/(\Sigma+r_j)$ , $\hat P\leftarrow\hat P+K(y-\hat P)$ , $\Sigma\leftarrow(1-K)\Sigma$ .
11. See [Proposition 2.6](#prop-hf-fair-value-steady) .
12. Its variance $\Sigma$ has grown with the time since the last update, so the gain is larger.
13. $q=0.047$ square ticks a second from the first hour’s efficient-price variance; $r=0.104$ , 0.123, 0.134 from each source’s gap to the mid five seconds later.
14. Its noise model (independent white errors) is wrong for mids that lag; the regression is fitted to the target.
15. Mid 0.549, microprice 0.536, cross-instrument 0.529 ticks; the leader brings 65% of the improvement over the mid (the [consolidated fair price](#def-hf-fair-value-consolidated) without it is at 0.542).
16. It grows with the lead: $-3.5\%$ at half a second, $-7.5\%$ at one, $-12.8\%$ at two.
17. Each point averages three hours whose errors are autocorrelated; the differences between neighbouring leads are of the size of the noise.
18. The mid follows the efficient price a tick at a time over seconds; the [cross-instrument fair price](#def-hf-fair-value-cross) moves as soon as the leader has.
19. By the adverse selection it saves per fill, times the fills of a year.
20. It uses information the mid does not contain: the queues, other venues, and above all the instruments that move first.

## 2.10 Interview questions

**Interview question 2.1 ★ trader.**

The bid queue is ten times the ask queue. Where is the [fair price](#def-hf-fair-value-fair), and why?

**Solution of Interview question 2.1.**

Close to the ask: the bid queue is far less likely to be exhausted first, so the next mid change is more likely up; how close is an empirical question, answered by a microprice table.

*What the interviewer is looking for: direction and that the size of the adjustment must be estimated.*

**Interview question 2.2 ★★ researcher.**

How would you evaluate a fair-price model when the efficient price is never observed?

**Solution of Interview question 2.2.**

Score it as a forecast of observable future prices (the mid or the next trade some seconds later), out of sample, against the mid as a baseline; check markouts of the fills it would have generated.

*What the interviewer is looking for: a forecasting target, out-of-sample evaluation, and a baseline.*

**Interview question 2.3 ★★ researcher.**

Derive the steady-state Kalman gain of a random walk observed with noise every $\Delta$ seconds.

**Solution of Interview question 2.3.**

Fixed point of $\Sigma\mapsto(\Sigma+q\Delta)r/(\Sigma+q\Delta+r)$: $\Sigma^2+q\Delta\Sigma-q\Delta r=0$, $\bar\Sigma=\tfrac12(-q\Delta+\sqrt{q^2\Delta^2+4q\Delta r})$, $\bar K=(\bar\Sigma+q\Delta)/(\bar\Sigma+q\Delta+r)$.

*What the interviewer is looking for: the Riccati fixed point done cleanly.*

**Interview question 2.4 ★★ developer.**

A fair-price service consumes feeds from eight venues. What must each update carry, and what do you do when one feed goes silent?

**Solution of Interview question 2.4.**

Venue, instrument, exchange and receive timestamps, sequence number, prices and sizes. A silent feed’s observations age: its weight must fall (a filter does it through the elapsed time), and a gap in sequence numbers must mark its book invalid until recovered.

*What the interviewer is looking for: timestamps, sequence numbers, staleness handling.*

**Interview question 2.5 ★★ trader.**

Your fund’s [fair price](#def-hf-fair-value-fair) uses the index future. The future’s market closes early today. What changes?

**Solution of Interview question 2.5.**

The leader’s source disappears: its weight must go to zero at the close, the quotes widen because the [fair price](#def-hf-fair-value-fair) becomes less precise, and the fund is priced from its own books and whatever proxies remain open.

*What the interviewer is looking for: source availability, wider quotes when information drops.*

**Interview question 2.6 ★★★ researcher.**

Two venues’ mids measure one price with independent noises of variance $r_1$ and $r_2$. What weights minimise the variance of the combination, and when is ignoring the second venue optimal?

**Solution of Interview question 2.6.**

Minimise $w^2r_1+(1-w)^2r_2$: $w_1=r_2/(r_1+r_2)$, variance $r_1r_2/(r_1+r_2)$. Ignoring the second venue is optimal only if its noise is infinite; with correlated noises the optimal weight can be zero or negative.

*What the interviewer is looking for: inverse-variance weights and the correlated case.*
