Tuesday 11 August 2026

Quant interview

A synthetic forward that is quoted too rich

easy · Put-call parity and static replication

A non-dividend-paying stock trades at $100. Borrowing and lending are both available at a continuously compounded rate of r=5%, there are no transaction costs and no short-sale restrictions. All options below are European with one year to maturity (T=1).

Instrument Strike Price
Call 100 $10.45
Put 100 $5.00
  1. State put-call parity for this setting and prove it by static replication.
  2. These quotes violate parity. Exhibit a portfolio formed at zero net cost today that locks in a riskless profit, and compute that profit as of maturity.
Solution

Parity

C−P=S0−Ke−rT

The proof is a payoff identity plus the law of one price. For every value of ST,

(ST−K)+−(K−ST)+=ST−K

which you check on the two cases ST≥K and ST<K. The left side is the maturity value of long one call, short one put; the right side is the maturity value of one share, short K zero-coupon bonds each worth e−rT today. Two portfolios with identical payoffs in every state must have identical prices, or you short the dearer, buy the cheaper, and pocket the difference with no exposure. The step worth stating out loud is that last one: parity is not algebra, it is the no-arbitrage assumption applied to an algebraic identity.

The violation

S0−Ke−rT=100−100e−0.05=4.8771

C−P=10.45−5.00=5.45

The synthetic forward embedded in the options is rich by 5.45−4.8771=0.5729 in present value, so sell the synthetic and buy the real thing.

The trade

Short one call, long one put, long one share. Today's cash flow is

10.45−5.00−100=−94.55

so borrow $94.55 at r; the net outlay is zero. At maturity the stock-plus-options position is

ST+(K−ST)+−(ST−K)+=ST+(K−ST)=K=100

for every ST — that is the whole point of the parity identity, and it is why the position carries no market risk. Repaying the loan costs 94.55e0.05=99.3977, leaving

100−99.3977=0.6023.

Answer: a riskless $0.60 per unit at maturity, equivalently 0.5729 today, and indeed 0.5729e0.05=0.6023.

Note. The profit is the parity gap, nothing more. A common slip is to also claim the position benefits if the stock rallies; it does not, and the fact that the maturity value is exactly K in every state is what makes the profit riskless rather than merely likely.

Statistics in machine learning

What averaging models can and cannot fix

easy · Variance reduction by averaging, and its limits

Fix an input and a deterministic target value y. Let f^1,…,f^B be predictors of y at that input, each with 𝔼[f^i]=m and Var(f^i)=v, and with Corr(f^i,f^j)=ρ≥0 for every i≠j. Write b=m−y for the common bias and f¯=1B∑i=1Bf^i.

  1. Compute Var(f¯) and 𝔼[(f¯−y)2].
  2. Give both limits as B→∞.
  3. Use the result to say precisely which learners benefit from bagging, and what bagging cannot repair.
Solution

1. Variance of a correlated average

The covariance matrix of the f^i has v on the diagonal and ρv off it, so

Var(∑i=1Bf^i)=Bv+B(B−1)ρv

and dividing by B2,

Var(f¯)=ρv+(1−ρ)vB.

Since 𝔼[f¯]=m, the bias-variance decomposition gives

𝔼[(f¯−y)2]=b2+ρv+(1−ρ)vB.

2. Many members

Var(f¯)⟶ρv,𝔼[(f¯−y)2]⟶b2+ρv

Averaging drives out only the independent slice (1−ρ)v of the variance. Two terms survive any amount of averaging: the squared bias, and the shared variance ρv.

3. Reading it as a design rule

Bagging pays when v is large, ρ is small and b is small — which is exactly the profile of a deep, fully grown decision tree: nearly unbiased, high variance, and decorrelated from its siblings by bootstrap resampling. It does essentially nothing for a high-bias learner, because b2 is untouched: averaging a hundred depth-1 stumps leaves the same systematic error as one.

The formula also explains why a random forest subsamples features at each split rather than only bootstrapping rows. Bootstrapping alone leaves trees strongly correlated, so ρv dominates and the ensemble stops improving; forcing splits to consider different features lowers ρ, which lowers the floor itself. Note the tradeoff that the formula does not show: restricting features usually raises each tree's own v and b a little, so the gain is real but not free.


Two new problems every morning at 8am · every day so far