Awesome
<div align="center"> <img src="static/images/awesome-systematic-trading.jpeg" height=200 alt=""/> <h1>Awesome Systematic Trading</h1> </div> <div align=center><img src="https://awesome.re/badge.svg" /></div>We are collecting a list of resources papers, softwares, books, articles for finding, developing, and running systematic trading (quantitative trading) strategies.
<!-- omit in toc -->What will you find here?
- 97 libraries and packages for research and live trading
- 696 strategies described by institutionals and academics
- 55 books for beginners and professionals
- 23 videos and interviews
- And also some blogs and courses
- Libraries and packages
- Strategies
- Books
- Videos
- Blogs
- Courses
How can I help?
You can help by submitting an issue with suggestions and by sharing on Twitter:
Libraries and packages
List of 97 libraries and packages implementing trading bots, backtesters, indicators, pricers, etc. Each library is categorized by its programming language and ordered by descending populatrity (number of stars).
Backtesting and Live Trading
General - Event Driven Frameworks
Repository | Description | Stars | Made with |
---|---|---|---|
vnpy | Python-based open source quantitative trading system development framework, officially released in January 2015, has grown step by step into a full-featured quantitative trading platform | ||
zipline | Zipline is a Pythonic algorithmic trading library. It is an event-driven system for backtesting. | ||
backtrader | Event driven Python Backtesting library for trading strategies | ||
QUANTAXIS | QUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权/港股/虚拟货币 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案 | ||
QuantConnect | Lean Algorithmic Trading Engine by QuantConnect (Python, C#) | ||
Rqalpha | A extendable, replaceable Python algorithmic backtest && trading framework supporting multiple securities | ||
finmarketpy | Python library for backtesting trading strategies & analyzing financial markets (formerly pythalesians) | ||
backtesting.py | Backtesting.py is a Python framework for inferring viability of trading strategies on historical (past) data. Improved upon the vision of Backtrader, and by all means surpassingly comparable to other accessible alternatives, Backtesting.py is lightweight, fast, user-friendly, intuitive, interactive, intelligent and, hopefully, future-proof. | ||
zvt | Modular quant framework | ||
WonderTrader | WonderTrader——量化研发交易一站式框架 | ||
nautilus_trader | A high-performance algorithmic trading platform and event-driven backtester | ||
PandoraTrader | High-frequency quantitative trading platform based on c++ development, supporting multiple trading APIs and cross-platform | ||
HFTBacktest | Highly precise backtest on HFT data in Python+Numba | ||
aat | An asynchronous, event-driven framework for writing algorithmic trading strategies in python with optional acceleration in C++. It is designed to be modular and extensible, with support for a wide variety of instruments and strategies, live trading across (and between) multiple exchanges. | ||
sdoosa-algo-trade-python | This project is mainly for newbies into algo trading who are interested in learning to code their own trading algo using python interpreter. | ||
lumibot | A very simple yet useful backtesting and sample based live trading framework (a bit slow to run...) | ||
quanttrader | Backtest and live trading in Python. Event based. Similar to backtesting.py. | ||
gobacktest | A Go implementation of event-driven backtesting framework | ||
FlashFunk | High Performance Runtime in Rust |
General - Vector Based Frameworks
Repository | Description | Stars | Made with |
---|---|---|---|
vectorbt | vectorbt takes a novel approach to backtesting: it operates entirely on pandas and NumPy objects, and is accelerated by Numba to analyze any data at speed and scale. This allows for testing of many thousands of strategies in seconds. | ||
pysystemtrade | Systematic Trading in python from book Systematic Trading by Rob Carver | ||
bt | Flexible backtesting for Python based on Algo and Strategy Tree |
Cryptocurrencies
Repository | Description | Stars | Made with |
---|---|---|---|
Freqtrade | Freqtrade is a free and open source crypto trading bot written in Python. It is designed to support all major exchanges and be controlled via Telegram. It contains backtesting, plotting and money management tools as well as strategy optimization by machine learning. | ||
Jesse | Jesse is an advanced crypto trading framework which aims to simplify researching and defining trading strategies. | ||
OctoBot | Cryptocurrency trading bot for TA, arbitrage and social trading with an advanced web interface | ||
Kelp | Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges | ||
openlimits | A Rust high performance cryptocurrency trading API with support for multiple exchanges and language wrappers. | ||
bTrader | Triangle arbitrage trading bot for Binance | ||
crypto-crawler-rs | Crawl orderbook and trade messages from crypto exchanges | ||
Hummingbot | A client for crypto market making | ||
cryptotrader-core | Simple to use Crypto Exchange REST API client in rust. |
Trading bots
Trading bots and alpha models. Some of them are old and not maintained.
Repository | Description | Stars | Made with |
---|---|---|---|
Blackbird | Blackbird Bitcoin Arbitrage: a long/short market-neutral strategy | ||
bitcoin-arbitrage | Bitcoin arbitrage - opportunity detector | ||
ThetaGang | ThetaGang is an IBKR bot for collecting money | ||
czsc | 缠中说禅技术分析工具;缠论;股票;期货;Quant;量化交易 | ||
R2 Bitcoin Arbitrager | R2 Bitcoin Arbitrager is an automatic arbitrage trading system powered by Node.js + TypeScript | ||
analyzingalpha | Implementation of simple strategies | ||
PyTrendFollow | PyTrendFollow - systematic futures trading using trend following |
Analytics
Indicators
Libraries of indicators to predict future price movements.
Repository | Description | Stars | Made with |
---|---|---|---|
ta-lib | Perform technical analysis of financial market data | ||
go-tart | A Go implementation of the [ta-lib]((https://github.com/mrjbq7/ta-lib) with streaming update support | ||
pandas-ta | Pandas Technical Analysis (Pandas TA) is an easy to use library that leverages the Pandas package with more than 130 Indicators and Utility functions and more than 60 TA Lib Candlestick Patterns | ||
finta | Common financial technical indicators implemented in Pandas | ||
ta-rust | Technical analysis library for Rust language |
Metrics computation
Librairies of financial metrics.
Repository | Description | Stars | Made with |
---|---|---|---|
quantstats | Portfolio analytics for quants, written in Python | ||
ffn | A financial function library for Python |
Optimization
Repository | Description | Stars | Made with |
---|---|---|---|
PyPortfolioOpt | Financial portfolio optimizations in python, including classical efficient frontier, Black-Litterman, Hierarchical Risk Parity | ||
Riskfolio-Lib | Portfolio Optimization and Quantitative Strategic Asset Allocation in Python | ||
empyrial | Empyrial is a Python-based open-source quantitative investment library dedicated to financial institutions and retail investors, officially released in March 2021 | ||
Deepdow | Python package connecting portfolio optimization and deep learning. Its goal is to facilitate research of networks that perform weight allocation in one forward pass. | ||
spectre | Portfolio Optimization and Quantitative Strategic Asset Allocation in Python |
Pricing
Repository | Description | Stars | Made with |
---|---|---|---|
tf-quant-finance | High-performance TensorFlow library for quantitative finance from Google | ||
FinancePy | A Python Finance Library that focuses on the pricing and risk-management of Financial Derivatives, including fixed-income, equity, FX and credit derivatives | ||
PyQL | Python wrapper of the famous pricing library QuantLib |
Risk
Repository | Description | Stars | Made with |
---|---|---|---|
pyfolio | Portfolio and risk analytics in Python |
Broker APIs
Repository | Description | Stars | Made with |
---|---|---|---|
ccxt | A JavaScript / Python / PHP cryptocurrency trading API with support for more than 100 bitcoin/altcoin exchanges | ||
Ib_insync | Python sync/async framework for Interactive Brokers. | ||
Coinnect | Coinnect is a Rust library aiming to provide a complete access to main crypto currencies exchanges via REST API. | ||
PENDAX | Javascript SDK for Trading, Data, and Websockets for FTX, FTXUS, OKX, Bybit, & More. |
Data Sources
General
Repository | Description | Stars | Made with |
---|---|---|---|
OpenBB Terminal | Investment Research for Everyone, Anywhere. | ||
TuShare | TuShare is a utility for crawling historical data of China stocks | ||
yfinance | yfinance offers a threaded and Pythonic way to download market data from Yahoo!Ⓡ finance. | ||
AkShare | AKShare is an elegant and simple financial data interface library for Python, built for human beings! | ||
pandas-datareader | Up to date remote data access for pandas, works for multiple versions of pandas. | ||
Quandl | Get millions of financial and economic dataset from hundreds of publishers via a single free API. | ||
findatapy | findatapy creates an easy to use Python API to download market data from many sources including Quandl, Bloomberg, Yahoo, Google etc. using a unified high level interface. | ||
Investpy | Financial Data Extraction from Investing.com with Python | ||
Fundamental Analysis Data | Fully-fledged Fundamental Analysis package capable of collecting 20 years of Company Profiles, Financial Statements, Ratios and Stock Data of 20.000+ companies. | ||
Wallstreet | Wallstreet: Real time Stock and Option tools |
Cryptocurrencies
Repository | Description | Stars | Made with |
---|---|---|---|
Cryptofeed | Cryptocurrency Exchange Websocket Data Feed Handler with Asyncio | ||
Gekko-Datasets | Gekko trading bot dataset dumps. Download and use history files in SQLite format. | ||
CryptoInscriber | A live crypto currency historical trade data blotter. Download live historical trade data from any crypto exchange. | ||
Crypto Lake | High frequency order book & trade data for crypto |
Data Science
Repository | Description | Stars | Made with |
---|---|---|---|
TensorFlow | Fundamental algorithms for scientific computing in Python | ||
Pytorch | Tensors and Dynamic neural networks in Python with strong GPU acceleration | ||
Keras | The most user friendly Deep Learning for humans in Python | ||
Scikit-learn | Machine learning in Python | ||
Pandas | Flexible and powerful data analysis / manipulation library for Python, providing labeled data structures similar to R data.frame objects, statistical functions, and much more | ||
Numpy | The fundamental package for scientific computing with Python | ||
Scipy | Fundamental algorithms for scientific computing in Python | ||
PyMC | Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Aesara | ||
Cvxpy | A Python-embedded modeling language for convex optimization problems. |
Databases
Repository | Description | Stars | Made with |
---|---|---|---|
Marketstore | DataFrame Server for Financial Timeseries Data | ||
Tectonicdb | Tectonicdb is a fast, highly compressed standalone database and streaming protocol for order book ticks. | ||
ArcticDB (Man Group) | High performance datastore for time series and tick data |
Graph Computation
Repository | Description | Stars | Made with |
---|---|---|---|
Ray | An open source framework that provides a simple, universal API for building distributed applications. | ||
Dask | Parallel computing with task scheduling in Python with a Pandas like API | ||
Incremental (JaneStreet) | Incremental is a library that gives you a way of building complex computations that can update efficiently in response to their inputs changing, inspired by the work of Umut Acar et. al. on self-adjusting computations. Incremental can be useful in a number of applications | ||
Man MDF | Data-flow programming toolkit for Python | ||
GraphKit | A lightweight Python module for creating and running ordered graphs of computations. | ||
Tributary | Streaming reactive and dataflow graphs in Python |
Machine Learning
Repository | Description | Stars | Made with |
---|---|---|---|
QLib (Microsoft) | Qlib is an AI-oriented quantitative investment platform, which aims to realize the potential, empower the research, and create the value of AI technologies in quantitative investment. With Qlib, you can easily try your ideas to create better Quant investment strategies. An increasing number of SOTA Quant research works/papers are released in Qlib. | ||
FinRL | FinRL is the first open-source framework to demonstrate the great potential of applying deep reinforcement learning in quantitative finance. | ||
MlFinLab (Hudson & Thames) | MlFinLab helps portfolio managers and traders who want to leverage the power of machine learning by providing reproducible, interpretable, and easy to use tools. | ||
TradingGym | Trading and Backtesting environment for training reinforcement learning agent or simple rule base algo. | ||
Stock Trading Bot using Deep Q-Learning | Stock Trading Bot using Deep Q-Learning |
TimeSeries Analysis
Repository | Description | Stars | Made with |
---|---|---|---|
Facebook Prophet | Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth. | ||
statsmodels | Python module that allows users to explore data, estimate statistical models, and perform statistical tests. | ||
tsfresh | Automatic extraction of relevant features from time series. | ||
pmdarima | A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function. |
Visualization
Repository | Description | Stars | Made with |
---|---|---|---|
D-Tale (Man Group) | D-Tale is the combination of a Flask back-end and a React front-end to bring you an easy way to view & analyze Pandas data structures. | ||
mplfinance | Financial Markets Data Visualization using Matplotlib | ||
btplotting | btplotting provides plotting for backtests, optimization results and live data from backtrader. |
Strategies
List of 696 academic papers describing original systematic trading strategies. Each strategy is categorized by its asset class and ordered by descending Sharpe ratio.
👉 Strategies are now hosted here.
Previous list of strategies:
Bonds, commodities, currencies, equities
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
Time Series Momentum Effect | 0.576 | 20.5% | Monthly | QuantConnect | Paper |
Short Term Reversal with Futures | -0.05 | 12.3% | Weekly | QuantConnect | Paper |
Bonds, commodities, equities, REITs
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
Asset Class Trend-Following | 0.502 | 10.4% | Monthly | QuantConnect | Paper |
Momentum Asset Allocation Strategy | 0.321 | 11% | Monthly | QuantConnect | Paper |
Bonds, equities
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
Paired Switching | 0.691 | 9.5% | Quarterly | QuantConnect | Paper |
FED Model | 0.369 | 14.3% | Monthly | QuantConnect | Paper |
Bonds, equities, REITs
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
Value and Momentum Factors across Asset Classes | 0.155 | 9.8% | Monthly | QuantConnect | Paper |
Commodities
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
Skewness Effect in Commodities | 0.482 | 17.7% | Monthly | QuantConnect | Paper |
Return Asymmetry Effect in Commodity Futures | 0.239 | 13.4% | Monthly | QuantConnect | Paper |
Momentum Effect in Commodities | 0.14 | 20.3% | Monthly | QuantConnect | Paper |
Term Structure Effect in Commodities | 0.128 | 23.1% | Monthly | QuantConnect | Paper |
Trading WTI/BRENT Spread | -0.199 | 11.6% | Daily | QuantConnect | Paper |
Cryptos
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
Overnight Seasonality in Bitcoin | 0.892 | 20.8% | Intraday | QuantConnect | Paper |
Rebalancing Premium in Cryptocurrencies | 0.698 | 27.5% | Daily | QuantConnect | Paper |
Currencies
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
FX Carry Trade | 0.254 | 7.8% | Monthly | QuantConnect | Paper |
Dollar Carry Trade | 0.113 | 5.8% | Monthly | QuantConnect | Paper |
Currency Momentum Factor | -0.01 | 6.7% | Monthly | QuantConnect | Paper |
Currency Value Factor – PPP Strategy | -0.103 | 5% | Quarterly | QuantConnect | Paper |
Equities
Title | Sharpe Ratio | Volatility | Rebalancing | Implementation | Source |
---|---|---|---|---|---|
Asset Growth Effect | 0.835 | 10.2% | Yearly | QuantConnect | Paper |
Short Term Reversal Effect in Stocks | 0.816 | 21.4% | Weekly | QuantConnect | Paper |
Reversal During Earnings-Announcements | 0.785 | 25.7% | Daily | QuantConnect | Paper |
Size Factor – Small Capitalization Stocks Premium | 0.747 | 11.1% | Yearly | QuantConnect | Paper |
Low Volatility Factor Effect in Stocks | 0.717 | 11.5% | Monthly | QuantConnect | Paper |
How to Use Lexical Density of Company Filings | 0.688 | 10.4% | Monthly | QuantConnect | Paper |
Volatility Risk Premium Effect | 0.637 | 13.2% | Monthly | QuantConnect | Paper |
Pairs Trading with Stocks | 0.634 | 8.5% | Daily | QuantConnect | Paper |
Crude Oil Predicts Equity Returns | 0.599 | 11.5% | Monthly | QuantConnect | Paper |
Betting Against Beta Factor in Stocks | 0.594 | 18.9% | Monthly | QuantConnect | Paper |
Trend-following Effect in Stocks | 0.569 | 15.2% | Daily | QuantConnect | Paper |
ESG Factor Momentum Strategy | 0.559 | 21.8% | Monthly | QuantConnect | Paper |
Value (Book-to-Market) Factor | 0.526 | 11.9% | Monthly | QuantConnect | Paper |
Soccer Clubs’ Stocks Arbitrage | 0.515 | 14.2% | Daily | QuantConnect | Paper |
Synthetic Lending Rates Predict Subsequent Market Return | 0.494 | 13.7% | Daily | QuantConnect | Paper |
Option-Expiration Week Effect | 0.452 | 5% | Weekly | QuantConnect | Paper |
Dispersion Trading | 0.432 | 8.1% | Monthly | QuantConnect | Paper |
Momentum in Mutual Fund Returns | 0.414 | 13.6% | Quarterly | QuantConnect | Paper |
Sector Momentum – Rotational System | 0.401 | 14.1% | Monthly | QuantConnect | Paper |
Combining Smart Factors Momentum and Market Portfolio | 0.388 | 8.2% | Monthly | QuantConnect | Paper |
Momentum and Reversal Combined with Volatility Effect in Stocks | 0.375 | 17% | Monthly | QuantConnect | Paper |
Market Sentiment and an Overnight Anomaly | 0.369 | 3.6% | Daily | QuantConnect | Paper |
January Barometer | 0.365 | 7.4% | Monthly | QuantConnect | Paper |
R&D Expenditures and Stock Returns | 0.354 | 8.1% | Yearly | QuantConnect | Paper |
Value Factor – CAPE Effect within Countries | 0.351 | 20.2% | Yearly | QuantConnect | Paper |
12 Month Cycle in Cross-Section of Stocks Returns | 0.34 | 43.7% | Monthly | QuantConnect | Paper |
Turn of the Month in Equity Indexes | 0.305 | 7.2% | Daily | QuantConnect | Paper |
Payday Anomaly | 0.269 | 3.8% | Daily | QuantConnect | Paper |
Pairs Trading with Country ETFs | 0.257 | 5.7% | Daily | QuantConnect | Paper |
Residual Momentum Factor | 0.24 | 9.7% | Monthly | QuantConnect | Paper |
Earnings Announcement Premium | 0.192 | 3.7% | Monthly | QuantConnect | Paper |
ROA Effect within Stocks | 0.155 | 8.7% | Monthly | QuantConnect | Paper |
52-Weeks High Effect in Stocks | 0.153 | 19% | Monthly | QuantConnect | Paper |
Combining Fundamental FSCORE and Equity Short-Term Reversals | 0.153 | 17.6% | Monthly | QuantConnect | Paper |
Betting Against Beta Factor in International Equities | 0.142 | 9.1% | Monthly | QuantConnect | Paper |
Consistent Momentum Strategy | 0.128 | 28.8% | 6 Months | QuantConnect | Paper |
Short Interest Effect – Long-Short Version | 0.079 | 6.6% | Monthly | QuantConnect | Paper |
Momentum Factor Combined with Asset Growth Effect | 0.058 | 25.1% | Monthly | QuantConnect | Paper |
Momentum Factor Effect in Stocks | -0.008 | 21.8% | Monthly | QuantConnect | Paper |
Momentum Factor and Style Rotation Effect | -0.056 | 10% | Monthly | QuantConnect | Paper |
Earnings Announcements Combined with Stock Repurchases | -0.16 | 0.1% | Daily | QuantConnect | Paper |
Earnings Quality Factor | -0.18 | 28.7% | Yearly | QuantConnect | Paper |
Accrual Anomaly | -0.272 | 13.7% | Yearly | QuantConnect | Paper |
ESG, Price Momentum and Stochastic Optimization | N/A | N/A | Monthly | Paper | |
The Positive Similarity of Company Filings and Stock Returns | N/A | N/A | Monthly | Paper |
Books
A comprehensive list of 55 books for quantitative traders.
Beginner
Biography
Title | Reviews | Rating |
---|---|---|
My Life as a Quant: Reflections on Physics and Finance - Emanuel Derman | ||
How I Became a Quant: Insights from 25 of Wall Street’s Elite: - Barry Schachter |