Bid-ask bounce and price changes
Separate transaction noise from midpoint movement, derive adjacent-change covariance and test when spread inversion fails.
35 minutes · intermediate · Original Poker4Quant lessonWhat you will learn
Derive spread-induced adjacent-change covariance from a shared trade sign, reconcile its exact triple law and construct a persistence-based failure of spread identification.
Prerequisites: Quotes, spreads and reference prices · Repeated bets and dependence · Transition kernels and two-step laws · Covariance through conditioning and sign reversal
Separate a transaction from the value being tracked
A sequence of transaction prices is a sequence of executed sides as well as a sequence of valuations. A buyer crossing the spread can print above the midpoint; a seller crossing immediately afterward can print below it. A chart can therefore zigzag even when the midpoint never changes. This observation matters when someone reads a short-horizon reversal as a prediction about fundamental value. We will construct the observation mechanism, derive its adjacent-change covariance and then deliberately break the assumption that makes a spread recoverable from that covariance. The task is measurement, not a trading recommendation.
Assume one fictional asset quoted in chips, one venue, unit-sized trades, a constant half-spread h and no fees, price improvement, hidden orders or impact. Let q_t be +1 for a buyer-initiated trade at the ask and −1 for a seller-initiated trade at the bid. Define midpoint m_t=100+g t, with known deterministic drift g. The transaction is P_t=m_t+h q_t. We study chip changes D_t=P_t−P_(t−1), not percentage or logarithmic returns. Initially the signs are independent and fair. All probabilities describe a specified population experiment, not frequencies estimated from a short observed tape. The latent midpoint is supplied by our model; transaction prices alone do not reveal it.
Derive the shared-sign covariance
Subtract two consecutive prices to obtain D_t=g+h(q_t−q_(t−1)). Each fair sign has mean zero and variance one, so E[D_t]=g. After centering, X_t=D_t−g=h(q_t−q_(t−1)). Independence gives Var(D_t)=h²(1+1)=2h². Spread-induced variation persists even though the midpoint change has no uncertainty. Doubling the spread multiplies this variance by four, rather than two. Adding a constant to every price changes neither the changes nor their covariance. A constant drift changes the mean of changes, but disappears when they are centered.
Adjacent changes share a sign with opposite coefficients: X_t=h(q_t−q_(t−1)) and X_(t+1)=h(q_(t+1)−q_t). Expand their product into h²[q_t q_(t+1)−q_t²−q_(t−1)q_(t+1)+q_(t−1)q_t]. Under independent fair signs, the three cross-sign expectations vanish and E[q_t²]=1. Thus C=Cov(D_t,D_(t+1))=−h². The negative term comes from the same middle trade entering one change positively and the next negatively. It does not require traders to forecast a reversal. In this restrictive model the lag-one correlation is −1/2 when h is positive; when h=0 the covariance is zero but the correlation is undefined because both variances vanish.
Audit the result with all eight sign triples
Set h=2 and g=1. The quotes have full spread four, and midpoint levels at times zero, one and two are 100, 101 and 102. Eight equally likely triples q_0 q_1 q_2 describe the experiment. The resulting pairs (D_1,D_2) are: --- gives (1,1); --+ gives (1,5); -+- gives (5,−3); -++ gives (5,1); +-- gives (−3,1); +-+ gives (−3,5); ++- gives (1,−3); +++ gives (1,1). Repeated numerical pairs remain distinct sign paths and retain their separate probabilities.
The first changes sum to eight, so their mean is one; the second changes have the same mean. Center both columns by subtracting one. Only -+- and +-+ have a nonzero product, each equal to −16. Their total contribution is −32/8=−4. The first centered column has four zero entries, two +4 entries and two −4 entries, giving variance 64/8=8. These match −h² and 2h². Independently, the uncentered products sum to −24, so E[D_1 D_2]=−3. Subtract E[D_1]E[D_2]=1 to recover covariance −4. Confusing the raw product mean with covariance would infer the wrong spread whenever drift is nonzero.
Invert the measurement, then change sign persistence
If the independent-sign model is justified and its population covariance C is known, the full spread is S=2h=2√(−C). Our example gives S=2√4=4 chips. The Federal Reserve research section linked below uses a related proxy with logarithmic prices; our derivation is explicitly in chip-price units. Do not attach a percent sign to the answer. A positive estimated covariance has no real-valued inverse under this formula. Taking its absolute value silently changes the model, while reporting zero silently substitutes a reporting convention for a model-consistent solution.
Now retain fair marginal signs but let the next sign stay the same with probability p. Start in the fair stationary distribution and use the same symmetric transition rule at every step. Write rho=2p−1. Conditioning on the current sign gives E[q_(t+1)|q_t]=rho q_t, hence E[q_t q_(t+1)]=rho and E[q_(t−1)q_(t+1)]=rho². The previous expansion becomes C=h²(2rho−1−rho²)=−h²(1−rho)². Similarly Var(D)=2h²(1−rho). At p=3/4, rho=1/2; with h=2, covariance is −1 and variance four. The independent-sign inverse now returns two chips although the true full spread is still four. Fair buy/sell totals are insufficient: temporal dependence changes identification.
Use boundaries to expose what the tape cannot identify
At p=1, every realized path keeps its initial sign forever. The marginal sign is still fair across experiments, but no path crosses between bid and ask. Changes equal g exactly, so both variance and covariance vanish even with a wide spread. At p=0, signs alternate, producing covariance −4h² and an independent-sign inverse twice the true spread. These are population counterexamples, not unlucky samples. They establish that the same covariance can accompany different actual spreads when sign persistence is unspecified. Neither a negative covariance nor a balanced sign histogram certifies the independent-sign assumption.
In the workshop transfer one of four transition tickets between stay and switch, change h and move g independently. Each triple receives probability one half times its two transition probabilities. Select every positive-probability path whose drift-removed changes have opposite nonzero signs, then audit the mean, variance, covariance and independent-sign implied spread. Zero-weight paths remain visible so support changes are inspectable. Restore p=1/2 to test the original identity. Real observations can also include changing spreads, midpoint news, dependence between signs and value, price discreteness and sparse sampling. A finite-sample covariance adds estimation uncertainty. Our exact eight-path law establishes a mechanism and its failure witness; it establishes neither an empirical spread estimate nor an exploitable return.
Worked example
With h=2, g=1 and independent fair signs, recover covariance and spread from all eight triples; then set stay probability to 3/4.
- At times 0,1,2, midpoints are 100,101,102; P_t=m_t+2q_t.
- Changes are 1+2(q1−q0) and 1+2(q2−q1), each with mean one.
- Only alternating triples have nonzero centered products: each −16 with probability 1/8. Covariance=−32/8=−4.
- The centered first-column squares sum to 64, giving variance eight. Raw product expectation is −3, and −3−1=−4.
- Independent-sign inverse: 2√4=4, equal to the actual full spread.
- At p=3/4, each alternating triple has mass (1/2)(1/4)²=1/32; covariance=−32/32=−1. Variance is four. Inferred spread two differs from actual four.
The observation mechanism creates reversal; changing sign dependence breaks the covariance-to-spread identification.
Hands-on: Construct a bounce law
Transfer sign-transition tickets, select drift-removed reversal paths and audit covariance and spread identification.
Construct a bounce law
One venue, no fees or impact. Midpoint at time t is 100+g×t; trade price is midpoint+h×sign. First sign is fair. Four transition tickets split between stay and switch. Select all positive-mass paths with opposite nonzero drift-removed changes. Draft is visit-only; no game or check credit.
Half-spread h=2; stay tickets 2/4; switch tickets 2/4; drift g=1. Actual full spread 4 chips.
Select centered reversals
Each card lists sign path, probability out of 32, trade prices and the two uncentered changes. Repeated price outcomes keep separate weights. Remove g before judging reversal.
Construct a centered reversal witness.
Common mistakes
- Equating a trade-price reversal with a midpoint forecast.
- Using raw adjacent products without subtracting both means.
- Replacing a negative radicand by its absolute value.
- Treating balanced sign totals as proof of temporal independence.
- Calling zero-variance correlation zero.
Keep these ideas
- A trade print combines midpoint and executed side.
- Adjacent price changes share the middle sign with opposite coefficients.
- The independent-sign model gives C=−h² and S=2√(−C).
- Persistent signs preserve fair marginals while changing covariance and inferred spread.
Further reading
- Federal Reserve FEDS 2008-40: section D.1.2, Estimated Bid-Ask Spread as Transaction Cost ↗
Read section D.1.2 including displayed factor-two covariance formula, log-price definition and bid-ask-bounce intuition. The source uses logarithmic bond prices; our chip-price triple law, drift centering, Markov-sign counterexample and questions are original. No empirical estimate, current regulation, quote or video review claimed. Checked 2026-10-25.