Markets and trading · Edition No. 13 · 7 Sep 2026

pmorissette/ffn

GroupStats: hand it a DataFrame of many equity curves and get one table of performance statistics for all of them.

← Markets and tradingRead the whole edition →
11

pmorissette/ffn

💎 hidden gem

2.6k stars · MIT · v1.2.1 (2026-09-07)

GroupStats: hand it a DataFrame of many equity curves and get one table of performance statistics for all of them.

Repo detailsthe review · specs · pros & cons · install

What it is

A small finance toolkit. Its useful trick is called GroupStats. You hand it a table where each column is one strategy's results, and it gives you back one table of statistics for all of them at once.

Why it matters

Optuna (Ed. 7 #12) produces hundreds of trials. quantstats (Ed. 4 #11) makes a beautiful report for exactly one of them. The step in between is missing: look at all of them side by side and pick the three worth a proper check. This is the tool for the moment when you have too many candidates. That is the normal, permanent state of a strategy search, and eleven editions of ScalpingMate advice never addressed it.

Stars2.6k
LicenceMIT
Latestv1.2.1 (2026-09-07)checked 7 Sep 2026
Written inPython
RunsLocally, on your own machine
Setup effort
2 / 5
Payoff
3 / 5
Good
  • MIT licence, so unlike backtesting.py it can sit behind a paid feature.
  • One call compares any number of strategies, which changes what you are willing to test.
  • Very few extra dependencies on top of pandas. Nothing new to maintain.
Watch for
  • It overlaps with quantstats. The difference is many versus one. If you only ever look at a single strategy, you do not need this.
  • The statistics only describe. It will happily rank four hundred overfitted results for you. arch (Ed. 6 #11) is still the tool that says whether the winner was luck.
  • Small team, a few releases a year.
Install
source venv/bin/activate
pip install ffn
Screenshots
pmorissette/ffn: 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.