We are collecting a list of resources papers, softwares, books, articles for finding, developing, and running systematic trading (quantitative trading) strategies.
What will you find here?
- 97 libraries and packages for research and live trading
- 40+ strategies described by institutionals and academics
- 55 books for beginners and professionals
- 23 videos and interviews
- And also some blogs and courses
📈 Interested in trading strategies implemented in Python?
Visit our comprehensive collection at paperswithbacktest.com for exclusive content!
Click here to see the full table of content
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 |
