Skip to content
18

Tracking Error Constraints

PortfolioOptimisers.set_tracking_error_constraints! Function
julia
set_tracking_error_constraints!(args...; kwargs...)

Add tracking error constraints to the JuMP optimisation model.

The fall-through method does nothing. Concrete methods dispatch on the tracking algorithm type:

  • L1Norm: Enforces ‖net_X - wb * k‖₁ ≤ err * T via NormOneCone.

  • L2Norm / SquaredL2Norm: Enforces a scaled L2 norm via SecondOrderCone.

  • LpNorm: Enforces a scaled Lp norm via power cone.

  • LInfNorm: Enforces ‖net_X - wb * k‖_∞ ≤ err * scale via NormInfinityCone.

  • IndependentVariableTracking: Substitutes w - wb for w and applies the chosen risk constraint.

  • DependentVariableTracking: Constrains the absolute difference between portfolio risk and benchmark risk.

The collection method iterates over all tracking errors in tres.

Mathematical definition

tteXwbkpcp1,tteerrk.

Where:

  • tte: Auxiliary tracking error scalar variable.

  • X: Asset returns matrix (T×N).

  • w: Portfolio weights vector N×1.

  • b: Benchmark return vector.

  • k: Budget scaling / homogenisation variable.

  • p: Norm order.

  • cp: Norm-specific scaling factor (T, Td, etc.).

  • err: Tracking error tolerance.

Arguments

  • model::JuMP.Model: The JuMP optimisation model.

  • i::Integer: Constraint index for generating unique variable and constraint names.

  • pr::AbstractPriorResult: Prior result providing the return matrix X.

  • tr: Tracking error specification.

  • opt: Optimisation estimator (required for risk-based tracking variants).

  • pl: Optional phylogeny constraints.

  • fees: Optional fees structure.

Returns

  • nothing.

Related

source