feat(portfolio): add CARA, convex, mean-variance & ERC portfolio optimization module
New Rust portfolio_optimization module with PyO3 bindings: - CARA/CRRA utility maximization via projected gradient descent - General-purpose convex objective solver on simplex (ProjectedGradientSolver) - Mean-variance optimization (max Sharpe, target return, min variance) - Equal Risk Contribution (ERC) portfolio allocation - Python bindings: cara_optimal_weights, mean_variance_optimal_weights, min_variance_weights, erc_weights - 6/6 unit tests passing Convergence fix: removed gradient-norm criterion on simplex boundary (projected gradient never vanishes at constrained optimum). Default learning rate increased from 0.005 to 0.1.
This commit is contained in:
@@ -50,6 +50,20 @@ except (ImportError, AttributeError):
|
||||
MFGConfig = None
|
||||
solve_mfg_1d_rust = None
|
||||
|
||||
# Portfolio Optimization (CARA, Mean-Variance, ERC)
|
||||
try:
|
||||
from optimizr._core import (
|
||||
cara_optimal_weights,
|
||||
mean_variance_optimal_weights,
|
||||
min_variance_weights,
|
||||
erc_weights,
|
||||
)
|
||||
except (ImportError, AttributeError):
|
||||
cara_optimal_weights = None
|
||||
mean_variance_optimal_weights = None
|
||||
min_variance_weights = None
|
||||
erc_weights = None
|
||||
|
||||
__version__ = "0.2.0"
|
||||
__all__ = [
|
||||
"HMM",
|
||||
@@ -83,4 +97,9 @@ __all__ = [
|
||||
# Mean Field Games
|
||||
"MFGConfig",
|
||||
"solve_mfg_1d_rust",
|
||||
# Portfolio Optimization
|
||||
"cara_optimal_weights",
|
||||
"mean_variance_optimal_weights",
|
||||
"min_variance_weights",
|
||||
"erc_weights",
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user