Basic Prerequisites: 05 · Failure Modes & Practice and 03 · Transaction-Cost Models.


1. Intuition & Practical Objective

The four extensions below are what separate a textbook rebalance from an institutional trading program:

  1. The aim portfolio (multi-period). You do not trade to the current target; you trade toward a long-horizon aim that averages over where you expect the target to go - and you only close a fraction of the gap. With quadratic impact the fraction is a matrix (cross-asset coupling); with proportional costs the policy is closed-form (Gârleanu & Pedersen 2013).
  2. Fixed costs. Paying a charge whenever you touch a name (custody, funding, minimum ticket, tax lot) makes the cost function non-convex. The standard trick is a convex relaxation that trades the whole position in a name or nothing - the bang-bang pattern you actually see at well-run desks.
  3. Non-convex (square-root) impact. The empirical law is concave, so it must be convexified by successive convex approximation (SCA) - majorize it by a tangent quadratic at each iteration, which is exactly how production optimizers handle it.
  4. Cross-impact. Real cost matrices have off-diagonal entries: selling eight correlated names is one market-wide trade. The additive per-name model understates cost, and this is the mechanism behind “we can’t be the only ones doing this.”

The one-sentence essence. “The static, one-period, additive, convex problem is a tractable idealization; the advanced extensions are the four honest corrections to it - a multi-period aim, fixed charges, concave impact, and a cost matrix with off-diagonals.”


2. Mathematical Ground Truth & Derivations

2.1 The aim portfolio and the matrix partial adjustment

Minimize tracking error plus quadratic impact over one step:

Setting the gradient to zero, , gives the aim/target update in closed form:

Three properties:

  • is not a scalar. Because is not diagonal, a signal in one name moves the weights of all names. Only in the special case and diagonal does reduce to a scalar fraction .
  • The eigenvalues of are . Cheap, low-risk directions are traded almost fully; expensive, high-risk directions are barely touched. The matrix anisotropically discounts the trade by exactly where the cost lives.
  • Gârleanu–Pedersen (2013) generalise this to many periods with proportional cost and predictable returns, obtaining : trade a constant fraction of the gap to the aim every period, never the whole thing.

2.2 Fixed costs and the convex relaxation

A fixed charge for touching name (plus a linear part ) gives

which is discontinuous at zero and therefore non-convex. Lobo–Fazel–Boyd (2007) relax by a variable with , so the cost becomes - a linear program inside the QP, solvable exactly, whose solution is bang-bang in : either you trade name fully (up to the position limit ) or you do not touch it at all. That is the mathematical origin of the “we rebalance a handful of names and leave the rest alone” behaviour in §3(B).

2.3 Concave impact and successive convex approximation

The empirical cost is concave, so its KKT points are not guaranteed global. The standard remedy: at iterate , majorize by the tangent quadratic (a valid convex upper bound),

and iterate. Each subproblem is a QP; the sequence converges to a local optimum, and the majorant is tight at the iterate - the same SCA machinery used for regularisation in robust optimisation.

2.4 Cross-impact and the additivity failure

Replace the diagonal by a full matrix (a common one-factor impact model) so that trading any name moves the price of every correlated name. Then

i.e. the cost depends on the factor-level net trade , not on the per-name trades. Selling eight names of the same factor is one large trade, not eight small ones - the diagonal model understates it. A SOCP reformulation (introduce and constrain ) keeps the problem tractable at the cost of a second-order cone per factor.


3. Computational Implementation - the matrix aim and the sparse rebalance

(A) build the aim/target update matrix , show it is non-diagonal, and verify the closed form against direct numerical optimisation. (B) with a large alpha revision, sweep the cost penalty and watch the rebalance shut down - the no-trade region in weight space. numpy + scipy.

Two verified readings:

  • (A) The trade is a matrix, and the matrix is where the cost lives. The diagonal of ranges from (asset 2, the most expensive to trade, ) to (asset 5, the cheapest, ) - the fraction of each gap you close varies by a factor of across assets purely because of liquidity. The off-diagonal mass is large: a buy in asset 1 of one unit induces buys in assets 2–6 through the covariance structure, because managing risk requires moving correlated names together. The closed form agrees with direct numerical optimisation to , confirming the derivation.
  • (B) The no-trade region shuts the whole rebalance down. Even a bp/yr alpha revision on asset 2 - an enormous signal - produces zero trade once the per-unit cost penalty reaches (monthly). Note the sharp discontinuity: the trade does not decay smoothly to zero, it stops (). That is the piecewise character of the path, and it is exactly the bang-bang behaviour the fixed-cost relaxation predicts. A practitioner who expects “a little less trading” is surprised by a switch.

4. Failure Modes & First-Principles Breakdowns

  1. Ignoring cross-impact. The additive model understates cost whenever trades share a factor. Calibrate the off-diagonal entries of (or the factor form ) from realized executions, or you will systematically over-trade multi-name baskets.
  2. Solving concave impact as if it were convex. A naive QP on the surface can converge to a poor local point. Use SCA with the tangent majorant of §2.3 and check that the majorant is tight at the solution.
  3. Treating the aim as a target. has eigenvalues in : you never close the gap in one step, by design. A desk that reports “we are 35% away from target” may be perfectly on policy, not behind - the gap is a feature of the aim.
  4. Choosing carelessly in the fixed-cost relaxation. The big- constants in must be valid position limits; too small and the relaxation becomes infeasible, too large and the LP loses numerical meaning. Set from the position caps of §02.
  5. Confusing the portfolio problem with the execution problem. This model decides what to trade and roughly how much; it does not decide the intraday schedule. Handing the resulting to a naive market-order execution destroys the very impact estimates the model assumed (Almgren–Chriss).

5. References

  • Gârleanu, N. & Pedersen, L. H. (2013), Dynamic Trading with Predictable Returns and Transaction Costs, Journal of Finance 68(6):2309–2340
  • Lobo, Fazel & Boyd (2007), Portfolio Optimization with Linear and Fixed Transaction Costs, Annals of OR 152:341–365
  • Boyd, Busseti, Diamond, Kahn, Koh, Nystrup & Speth (2017), Multi-Period Trading via Convex Optimization, FnT in Optimization 3(1):1–72
  • Almgren & Chriss (2000/01), Journal of Risk 3(2):5–39
  • Hasbrouck (2007), Empirical Market Microstructure
  • Avellaneda & Stoikov (2008), High-Frequency Trading in a Limit Order Book, Quantitative Finance 8(3):217–224

6. Connected Graph Bridges