First, let me say this: open-source software has largely conquered the world. We’re a long way from when Microsoft called Linux “a cancer”.

Nevertheless, in some areas, source is closely guarded. So when a question came up on our C++ Algotrading Telegram group (email us if you want to join) suggesting there weren’t any open-source projects for algo-trading, I had to do some investigation.

In the process I’ve learned a little about some of the actual stats of open-source: it’s mind-boggling.

TL;DR - I’ll also provide the top OS repos for Quants and Traders in various categories - see below.

It’s ironic that it is Microsoft, especially after their purchase of Github that has become the greatest supporter of open-source. I have no love for Microsoft. I believe their historical anti-competitive practices set back the software industry a decade. Further, I think git (that Github is based on) has serious design issues - leading to the need for sites like ohshitgit.com. But Microsoft have now taken over the open-source narrative.

Microsoft bought Github for $7.5B. I thought at the time “there’s proof Microsoft has more money than they know what to do with”. Now I realize how astute they were. At the same time they’ve some how turned what was a simple vim-like editor - VSCode - into a ferocious developer behemoth. Remarkable.

Github has now cemented its place as the open-source repository venue. There’s little point looking anywhere else for code. For new code only the politically extreme even start anywhere else. Old code is being migrated or mirrored there. Github has won.

Finding the Needles in the Haystack

Unquestionably the average quality in Github is low. There is no restriction on what you can submit. So how can I choose a set of top repos? The answer is the Github feature of “Starring” - you Star the repos you want to remember (presumably because you like them).

Thankfully, Github has an API (and actually a Graph QL API too) and there is an open-source Python library for it - both, of course, hosted on Github. One use is listing - for a project - the set of users who Starred it, and - for a user - the set of projects they’ve Starred. We used this to get our lists.

What was striking, for me, in this process is the sheer number of repos - all significant enough for people to acknowledge with a Star.

From the repos we used as “seeds” we found hundreds of thousands of starred repos.

The Methodology

Using Starring as an indicator of repo popularity, the process is quite straightforward:

  1. Find a few repos popular with algo traders and quants
  2. Use Stars to work out what other repos are popular.
  3. List by combined popularity.
  4. Order the top by relative popularity from the seed repo starrers vs other.

For simplicity we used Sqlite to store the data. Similarly JupyterLab with Python made it straightforward to run the code. Of course we made our code open-source with Popular Gits - on Github.

I had put forward QuantLib on our telegram group. I threw in CCXT because it’s a popular algotrading library. This was in response to a question on how to get a toe in the door as a professional Quant Dev. Contributing to QuantLib and CCXT are great ways to learn these areas. Therefore they were the “seed” projects for this effort. 3300 users have Starred QuantLib and 25000 Starred CCXT. The total number of projects Starred by those users is over 1 million. Over 1000 of them are Starred by 100 or more users.

For the lists below I did a little further curation to get a reasonable result. I took out:

  • repos unrelated to the subjects (like Diem and Bitcoinbook)
  • those without an English translation. There were many in Chinese: Kung Fu, Abu, RiceQuant and QUANTAXIS for example. This is very interesting for me (I lived in China) but not being Chinese literate I can’t make a judgment on these repos. VN.PY is translated so I’ve included that. If anyone would like to be part of a translation effort, please contact me.
  • aggregators. These repos are useful - like EliteQuant - but listing aggregators in an aggregate list seems wrong-headed.

The List

Finally here it is - and some of the results are interesting!

I’ve made a long list. I’ve cut it off fairly arbitrarily - there’s of course many more good projects. These are the ones picked out via our algorithm by Quantlib and CCXT users. Those two are of course at the top of the list!

Project Category Language
CCXT Algo Python
Quantlib Library C++
Crypto Signal TA Python
Hummingbot Algo Python
TA Lib (Python) TA Cython
Cube JS Data Rust
Brain JS ML Javascript
GPU JS GPU Typescript
MLFinLab ML Python
OpenBB Terminal Data Python
Budibase Platform Javascript
Knex Data Javascript
Redash Data Python/Javascript
PouchDB Data Javascript
n8n Platform Typescript
Firecracker Virtualisation Rust
Colly Web Go
Metabase Data Clojure
Grape JS Web Javascript
Popmotion Web Javascript
Docz Documentation Typescript
Backtrader Algo Python
StockSharp Algo C#
Machine Learning for Trading ML Python
Lean Algo C#
Statsmodels TA Python
VN.PY Algo Python
Abseil Library C++
Pybind11 Library C++/Python
Catch2 Testing C++
Spdlog Logging C++
Ray Platform C++/Python
Onnx ML C++/Python
Bokeh Web Python/Typescript
SimdJSON Data C++
Freqtrade Algo Python