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.