Convex
variance w'Σw · expected return -μ'w · proportional cost c'|Δw| · quadratic impact · box caps · budget 1'w = 1 · leverage ||w||_1 <= L · risk cone ||Σ^½w|| <= s
Convex problem: any local optimum is global, KKT certifies it, duals are trustworthy. One non-convex term poisons all three guarantees.
convex set: for any x, y in S and 0 <= t <= 1,
t*x + (1-t)*y is also in S
(the segment between members stays inside)
convex function: f(t*x + (1-t)*y) <= t*f(x) + (1-t)*f(y)
(the chord never dips below the curve)
convex problem: minimize convex f over a convex feasible set
chord test: draw any chord; it must stay on or above the curve 2nd-order (1D): f''(x) >= 0 everywhere 2nd-order (nD): Hessian PSD everywhere portfolio risk: f(w) = w'Σw, Hessian 2Σ, PSD -> convex, always note: convex does NOT require smooth (|x| is convex)
convex + convex -> convex (nonnegative scalar) * convex -> convex max(convex, convex) -> convex convex composed with affine (A*w+b) -> convex intersection of convex sets -> convex set WARNING: convex - convex, convex * convex, min(convex, convex) preserve NOTHING.
variance w'Σw · expected return -μ'w · proportional cost c'|Δw| · quadratic impact · box caps · budget 1'w = 1 · leverage ||w||_1 <= L · risk cone ||Σ^½w|| <= s
fixed ticket fee per traded name · cardinality (“at most K names”) · minimum position size (w=0 or w >= 2%) · round lots · maximize variance · w'Σw >= s (wrong-side quadratic)
all terms convex: linear only -> LP + quadratic objective -> QP + norm / cone constraints -> SOCP guarantee: global optimum, meaningful duals any non-convex term: integer modeling -> MIQP / MILP (exact but slow) otherwise -> relaxation or heuristic guarantee: none; duals not trustworthy shadow prices
1. Find objective + constraints. 2. Walk term by term: convex? 3. All convex -> solution global, duals = sensitivities. 4. Any failure -> expect "mixed-integer", "relaxation", or "heuristic" in the paper; distrust reported duals.
Use this page with Lesson 0011, Reference 0002 (why Σ is PSD), and Reference 0004 (KKT). Code-side twin: CVXPY DCP rules.