Markets and trading · Edition No. 33 · 27 Sep 2026

skfolio/skfolio

Portfolio optimisation written as scikit-learn estimators, with walk-forward and combinatorial purged cross-validation built in.

← Markets and tradingRead the whole edition →
12

skfolio/skfolio

💎 hidden gem

2,439 stars · BSD-3-Clause, read from /blob/main/LICENSE on 2026-09-27; plain, copyright 2023-2026 The skfolio developers · v1.4.2 (2026-09-27), read from /releases/latest · Track this in Scout

Portfolio optimisation written as scikit-learn estimators, with walk-forward and combinatorial purged cross-validation built in.

▶Repo detailsthe review · specs · pros & cons · install

What it is

skfolio implements portfolio optimisation as scikit-learn estimators, so every optimiser, risk model and return model uses the same familiar fit and predict pattern and drops straight into scikit-learn pipelines and parameter searches. It covers simple allocation, convex optimisation, risk budgeting and clustering methods, with transaction costs, fees and weight constraints available throughout.

What it is good for. Anyone doing quantitative research on allocation who is currently hand-writing optimisation problems for each strategy and hand-writing their own testing splits. The second half is the important one. It ships walk-forward and combinatorial purged cross-validation, which are the methods that stop information from the future leaking into a test of the past. That leak is the most common way a backtest looks wonderful and then loses money, and having it as library code rather than as something you remember to do is the real value here. None of this is advice, and a good backtest is not evidence about the future.

Stars2,439
LicenceBSD-3-Clause, read from /blob/main/LICENSE on 2026-09-27; plain, copyright 2023-2026 The skfolio developers
Latestv1.4.2 (2026-09-27), read from /releases/latest
Good
  • The scikit-learn pattern is real rather than cosmetic, so parameter searches and nested testing work without any adapter code.
  • Time-aware cross-validation is built in, which addresses the most common methodological mistake in this field directly.
  • BSD-3-Clause with no conditions, a real documentation site, packages on both PyPI and conda-forge, and a company offering paid support behind it. Version 1.4.2 was released on the morning this edition was written.
Watch for
  • It is a library with nothing to open. No screen, no command line, and you supply your own price data, because it ships no data feed at all.
  • The version churn is severe. It went from 0.20.x to 1.4.x in roughly five months, with four releases inside eight days in April 2026. Do not assume the way you call it will survive an upgrade, despite the 1.x number.
  • Some advertised constraints need a solver that is not installed with it. Cardinality and threshold constraints require a mixed-integer solver, and two of the three documented options are commercial products you pay for. The dependency set is also several hundred megabytes in practice, and no memory figure is published.
Similar repositories
Install
python3 -m venv venv
source venv/bin/activate        # on Windows: venv\Scripts\activate
pip install -U skfolio
Screenshots
skfolio/skfolio: GitHub preview card

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.