The Challenge

Factor-neutral constraints in small universes can make risk-variance optimization intractable.

Solutions

1. Soft Constraints

Penalize factor exposure rather than hard constraints:

\[\min_w \quad w^T \Sigma w - \lambda w^T \mu + \gamma \lvert w^T f \rvert\]

where $f$ is the factor loading vector.

2. Hierarchical Optimization

First neutralize, then optimize within neutral space.

3. Relaxed Neutrality

Allow small factor exposures with penalties.

Key Insight

Perfect neutrality often not worth the turnover cost. A small factor exposure (e.g., 0.1 beta) with lower turnover typically outperforms perfect neutrality with high turnover.

Implementation Note

For constrained optimization with 50-100 futures, consider using CVXPY or scipy.optimize with SLSQP method.