Twin dealers

The commutative square of the imbalance symmetry, running live: one inventory path, two clocks, quotes a constant apart.

imbalanced problem (q, c) balanced problem (½, M(q)c) imbalanced quotes balanced quotes tilt ν ↦ ν − δx m↓+δ, m↑−δ; clock × D(q) solve solve

Both problems below are solved numerically and independently; the square commutes to solver precision (first tile). The two dealers then trade side by side, coupled: they share one embedded jump chain — the same inventory path, trade for trade — while the imbalanced dealer's calendar clock runs slower by exactly D(q) = 2√(q(1−q)). Her quotes sit a constant δ nearer the sellers at every moment; her width equals her twin's at every moment; and the carry each pays per transition is identical — the multiplier M(q) = 1/D(q) is the slowed clock seen from the cost side. That is what one-sided flow does after the skew is granted.

Two mids a fixed distance apart with identical spreads; the trades-per-time ratio settling on D(q); the carry-per-transition ratio pinned at one; and the two occupancy histograms, one per clock, drawing the same shape.

square commutes
max |νq − (ν̄ + δx)|, independent solves
width difference
sup over inventories; the theorem says 0
mid displacement
measured, vs −δ =
clock ratio
trades per unit time, vs D(q) =
carry per transition
imbalanced / balanced; the theorem says 1

Imbalanced dealer — q = , cost c

Balanced twin — q = ½, cost M(q) c

The coupling: at each shared jump the direction is drawn once from the balanced chain's law (the embedded chains coincide), and one exponential draw sets both sojourns, the imbalanced one stretched by 1/D(q). Quotes are the two solved policies evaluated on the shared inventory. Everything on this page is computed in the browser from mm_core.js and twins_core.js; the claim-by-claim battery behind it is verify_all_claims.py in the repository.