How rohitkhadka314/cvxmarkowitz works
cvxmarkowitz is a CVXPY-based Markowitz portfolio optimization library. A caller configures a portfolio builder and optional constraints, builds a parameterized problem, supplies market/model data, then solves for an objective value and portfolio weights. The main design separates portfolio objectives, risk and constraint models, and the builder/problem lifecycle. README and sampled source establish this workflow; several portfolio and model modules are present in the tree but their detailed wiring was not sampled, so uncertain connections are omitted.
Main entry points: builder.py Builder · soft_risk.py Soft risk · min_var.py Minimum variance · max_sharpe.py Maximum Sharpe
Components 15
Portfolio objectives
- Minimum variance
src/cvxmarkowitz/portfolios/min_var.py - Maximum Sharpe
src/cvxmarkowitz/portfolios/max_sharpe.py - Soft risk
src/cvxmarkowitz/portfolios/soft_risk.py
Problem construction
- Builder
src/cvxmarkowitz/builder.py - Built problem
src/cvxmarkowitz/builder.py
Risk and constraints
- Sample covariance
src/cvxmarkowitz/risk/sample/sample.py - Factor risk
src/cvxmarkowitz/risk/factor/factor.py - CVaR risk
src/cvxmarkowitz/risk/cvar/cvar.py - Variable bounds
src/cvxmarkowitz/models/bounds.py - Expected returns
src/cvxmarkowitz/models/expected_returns.py - Holding costs
src/cvxmarkowitz/models/holding_costs.py - Trading costs
src/cvxmarkowitz/models/trading_costs.py
Solve and result
- CVXPY solver
- Portfolio solution
Other components
- Library caller
Connections 18
- Library caller → Minimum variance: configures
- Library caller → Maximum Sharpe: configures
- Library caller → Soft risk: configures
- Minimum variance → Builder: inherits
- Maximum Sharpe → Builder: inherits
- Soft risk → Builder: inherits
- Builder → Sample covariance: selects by default
- Builder → Factor risk: selects with factors
- Builder → Variable bounds: registers
- Builder → Built problem: builds
- Built problem → Sample covariance: updates model data
- Built problem → Factor risk: updates model data
- Built problem → Variable bounds: updates model data
- Soft risk → Expected returns: estimates returns
- Soft risk → Builder: extends construction
- Library caller → Built problem: supplies data
- Built problem → CVXPY solver: solves problem
- CVXPY solver → Portfolio solution: returns solution