SPO3 is a research codebase for portfolio optimization with learning-based return prediction and decision-focused losses (including SPO+).
- Install dependencies in your Python environment.
- Prepare data using scripts in
scripts/. - Run training and evaluation:
python run.py --config <path_to_config.yaml>models/: portfolio optimization models (e.g., Markowitz, CVaR).losses/: decision-focused loss implementations.predictors/: return prediction modules.utils/: training, tuning, backtesting, and data utilities.configs/: experiment configuration files.scripts/: data download and preprocessing helpers.
- Use
batch_run.pyorbatch_run_baseline.pyfor batch experiments. - Example data download instructions are in
scripts/download_example.md.