LICENSE.txt
MANIFEST.in
README.md
pyproject.toml
src/optimalportfolios/__init__.py
src/optimalportfolios/config.py
src/optimalportfolios/conftest.py
src/optimalportfolios/local_path.py
src/optimalportfolios/settings.yaml
src/optimalportfolios.egg-info/PKG-INFO
src/optimalportfolios.egg-info/SOURCES.txt
src/optimalportfolios.egg-info/dependency_links.txt
src/optimalportfolios.egg-info/requires.txt
src/optimalportfolios.egg-info/top_level.txt
src/optimalportfolios/alphas/README.md
src/optimalportfolios/alphas/__init__.py
src/optimalportfolios/alphas/alpha_data.py
src/optimalportfolios/alphas/backtest_alphas.py
src/optimalportfolios/alphas/signal_diagnostics.py
src/optimalportfolios/alphas/profile/__init__.py
src/optimalportfolios/alphas/profile/core.py
src/optimalportfolios/alphas/profile/signal_profilers.py
src/optimalportfolios/alphas/profile/tests/__init__.py
src/optimalportfolios/alphas/profile/tests/core_test.py
src/optimalportfolios/alphas/profile/tests/signal_profilers_test.py
src/optimalportfolios/alphas/signals/__init__.py
src/optimalportfolios/alphas/signals/carry.py
src/optimalportfolios/alphas/signals/classic_momentum.py
src/optimalportfolios/alphas/signals/low_beta.py
src/optimalportfolios/alphas/signals/managers_alpha.py
src/optimalportfolios/alphas/signals/momentum.py
src/optimalportfolios/alphas/signals/residual_momentum.py
src/optimalportfolios/alphas/signals/residual_reversal.py
src/optimalportfolios/alphas/signals/rolling_ewma_mean.py
src/optimalportfolios/alphas/signals/utils.py
src/optimalportfolios/alphas/signals/tests/__init__.py
src/optimalportfolios/alphas/signals/tests/align_rolling_clusters_test.py
src/optimalportfolios/alphas/signals/tests/classic_momentum_test.py
src/optimalportfolios/alphas/signals/tests/managers_alpha_test.py
src/optimalportfolios/alphas/signals/tests/mixed_cadence_grouping_test.py
src/optimalportfolios/alphas/signals/tests/per_cadence_spans_test.py
src/optimalportfolios/alphas/signals/tests/residual_reversal_test.py
src/optimalportfolios/alphas/tests/__init__.py
src/optimalportfolios/alphas/tests/alpha_data_test.py
src/optimalportfolios/alphas/tests/backtest_alphas_test.py
src/optimalportfolios/alphas/tests/cluster_scoring_test.py
src/optimalportfolios/alphas/tests/signal_comparison_test.py
src/optimalportfolios/alphas/tests/signal_diagnostics_test.py
src/optimalportfolios/covar_estimation/README.md
src/optimalportfolios/covar_estimation/__init__.py
src/optimalportfolios/covar_estimation/covar_estimator.py
src/optimalportfolios/covar_estimation/covar_reporting.py
src/optimalportfolios/covar_estimation/ewma_covar_estimator.py
src/optimalportfolios/covar_estimation/factor_covar_estimator.py
src/optimalportfolios/covar_estimation/risk_labelling.py
src/optimalportfolios/covar_estimation/risk_model_adapter.py
src/optimalportfolios/covar_estimation/utils.py
src/optimalportfolios/covar_estimation/tests/__init__.py
src/optimalportfolios/covar_estimation/tests/cluster_smoothing_test.py
src/optimalportfolios/covar_estimation/tests/covar_properties_test.py
src/optimalportfolios/covar_estimation/tests/covar_reporting_test.py
src/optimalportfolios/covar_estimation/tests/derived_signs_test.py
src/optimalportfolios/covar_estimation/tests/ewma_covar_estimator_test.py
src/optimalportfolios/covar_estimation/tests/factor_estimator_api_test.py
src/optimalportfolios/covar_estimation/tests/factor_estimator_guards_test.py
src/optimalportfolios/covar_estimation/tests/risk_labelling_guard_test.py
src/optimalportfolios/covar_estimation/tests/risk_model_adapter_test.py
src/optimalportfolios/optimization/__init__.py
src/optimalportfolios/optimization/config.py
src/optimalportfolios/optimization/constraints.py
src/optimalportfolios/optimization/covar_factorization.py
src/optimalportfolios/optimization/portfolio_result.py
src/optimalportfolios/optimization/solver_diagnostics.py
src/optimalportfolios/optimization/wrapper_rolling_portfolios.py
src/optimalportfolios/optimization/general/__init__.py
src/optimalportfolios/optimization/general/carra_mixture.py
src/optimalportfolios/optimization/general/max_diversification.py
src/optimalportfolios/optimization/general/max_sharpe.py
src/optimalportfolios/optimization/general/minimum_tracking_error.py
src/optimalportfolios/optimization/general/quadratic.py
src/optimalportfolios/optimization/risk_allocation/__init__.py
src/optimalportfolios/optimization/risk_allocation/group_risk_budgeting.py
src/optimalportfolios/optimization/risk_allocation/hierarchical_risk_parity.py
src/optimalportfolios/optimization/risk_allocation/risk_budgeting.py
src/optimalportfolios/optimization/risk_allocation/risk_budgeting_solver.py
src/optimalportfolios/optimization/saa/__init__.py
src/optimalportfolios/optimization/saa/max_return_target_vol.py
src/optimalportfolios/optimization/saa/min_variance_target_return.py
src/optimalportfolios/optimization/taa/__init__.py
src/optimalportfolios/optimization/taa/maximise_alpha_over_tre.py
src/optimalportfolios/optimization/taa/maximise_alpha_with_target_yield.py
src/optimalportfolios/optimization/tests/__init__.py
src/optimalportfolios/optimization/tests/benchmark_beta_parity_test.py
src/optimalportfolios/optimization/tests/closed_form_optima_test.py
src/optimalportfolios/optimization/tests/constraints_branches_test.py
src/optimalportfolios/optimization/tests/constraints_test.py
src/optimalportfolios/optimization/tests/covar_factorization_guards_test.py
src/optimalportfolios/optimization/tests/covar_factorization_test.py
src/optimalportfolios/optimization/tests/frozen_overshoot_relaxation_test.py
src/optimalportfolios/optimization/tests/input_contract_test.py
src/optimalportfolios/optimization/tests/max_sharpe_paths_test.py
src/optimalportfolios/optimization/tests/maximise_alpha_over_tre_hardening_test.py
src/optimalportfolios/optimization/tests/maximise_alpha_with_target_yield_test.py
src/optimalportfolios/optimization/tests/minimum_tracking_error_guards_test.py
src/optimalportfolios/optimization/tests/minimum_tracking_error_test.py
src/optimalportfolios/optimization/tests/optimiser_config_branches_test.py
src/optimalportfolios/optimization/tests/portfolio_result_delegation_test.py
src/optimalportfolios/optimization/tests/portfolio_result_reporting_test.py
src/optimalportfolios/optimization/tests/rebalancing_constraints_test.py
src/optimalportfolios/optimization/tests/risk_allocation_test.py
src/optimalportfolios/optimization/tests/risk_budgeting_solver_guards_test.py
src/optimalportfolios/optimization/tests/risk_budgeting_solver_test.py
src/optimalportfolios/optimization/tests/risk_budgeting_wrapper_test.py
src/optimalportfolios/optimization/tests/rolling_dispatcher_test.py
src/optimalportfolios/optimization/tests/rolling_solvers_test.py
src/optimalportfolios/optimization/tests/rolling_wrapper_inputs_test.py
src/optimalportfolios/optimization/tests/run_diagnostics_test.py
src/optimalportfolios/optimization/tests/saa_utility_solvers_test.py
src/optimalportfolios/optimization/tests/scipy_solvers_test.py
src/optimalportfolios/optimization/tests/solver_diagnostics_test.py
src/optimalportfolios/optimization/tests/solver_error_fallback_test.py
src/optimalportfolios/optimization/tests/specialised_constraints_test.py
src/optimalportfolios/reports/__init__.py
src/optimalportfolios/reports/config.py
src/optimalportfolios/reports/marginal_backtest.py
src/optimalportfolios/reports/portfolio_result_plots.py
src/optimalportfolios/reports/portfolio_result_pybloqs.py
src/optimalportfolios/tests/__init__.py
src/optimalportfolios/tests/backend_selection_test.py
src/optimalportfolios/tests/concat_sort_convention_test.py
src/optimalportfolios/tests/data_masks.py
src/optimalportfolios/tests/docstring_convention_test.py
src/optimalportfolios/tests/doctest_test.py
src/optimalportfolios/tests/local_path_test.py
src/optimalportfolios/tests/paper_claims_test.py
src/optimalportfolios/tests/public_api_test.py
src/optimalportfolios/tests/readme_test.py
src/optimalportfolios/tests/root_import_cycle_test.py
src/optimalportfolios/tests/test_module_layout_test.py
src/optimalportfolios/tests/version_metadata_test.py
src/optimalportfolios/tests/data/__init__.py
src/optimalportfolios/tests/data/multiasset.py
src/optimalportfolios/tests/data/multiasset_returns.csv
src/optimalportfolios/universe/__init__.py
src/optimalportfolios/universe/universe_data.py
src/optimalportfolios/universe/universe_transforms.py
src/optimalportfolios/universe/tests/__init__.py
src/optimalportfolios/universe/tests/universe_container_test.py
src/optimalportfolios/utils/__init__.py
src/optimalportfolios/utils/filter_nans.py
src/optimalportfolios/utils/gaussian_mixture.py
src/optimalportfolios/utils/portfolio_funcs.py
src/optimalportfolios/utils/weights_drift.py
src/optimalportfolios/utils/tests/__init__.py
src/optimalportfolios/utils/tests/gaussian_mixture_em_test.py
src/optimalportfolios/utils/tests/gaussian_mixture_test.py
src/optimalportfolios/utils/tests/portfolio_funcs_properties_test.py
src/optimalportfolios/utils/tests/weights_drift_test.py