awesome-systematic-trading
A curated list of awesome libraries, packages, strategies, books, blogs, tutorials for systematic trading.
https://github.com/paperswithbacktest/awesome-systematic-trading
Last synced: about 13 hours ago
JSON representation
Analytics
Indicators
- 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
- ta-lib - Perform technical analysis of financial market data
- kand - Technical analysis library written in Rust with Python and WASM bindings, exposing both batch and incremental streaming updates
- wickra - Streaming-first technical-analysis library with a Rust core and native Python/Node/WASM bindings plus a C ABI (C, C++, C#/.NET, Go, Java, R); 514 O(1)-per-tick indicators across 24 families, bit-exact batch and streaming
Metrics computation
- quantstats - Portfolio analytics for quants, written in Python
- ffn - A financial function library for Python
Optimization
- 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
- 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
- empyrial - Empyrial is a Python-based open-source quantitative investment library dedicated to financial institutions and retail investors, officially released in March 2021
- skfolio - Portfolio optimization built on top of scikit-learn. It provides a unified interface and sklearn compatible tools to build, tune and cross-validate portfolio models.
- cvxportfolio - Portfolio optimization and back-testing from the Stanford convex optimization group, implementing the multi-period framework of Boyd et al.
Pricing
- 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
- pyfolio - Portfolio and risk analytics in Python
Backtesting and Live Trading
Cryptocurrencies
- 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
- 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.
- Kelp - Kelp is a free and open-source trading bot for the Stellar DEX and 100+ centralized exchanges
- basana - Python async and event driven framework for algorithmic trading, with a focus on crypto currencies
General - Event Driven Frameworks
- 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
- 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
- QUANTAXIS - QUANTAXIS 支持任务调度 分布式部署的 股票/期货/期权/港股/虚拟货币 数据/回测/模拟/交易/可视化/多账户 纯本地量化解决方案
- PyBroker - Algorithmic trading in Python with machine learning: rule based and model driven strategies, walkforward analysis and bootstrapped significance tests on the results
- Hikyuu - C++/Python quantitative research framework built around reusable strategy components, with its own bar and indicator engine
- barter-rs - Open source Rust framework for building event driven live trading and backtesting systems, running strategies on a near identical engine on both sides
- Investing Algorithm Framework - Framework for developing, backtesting and deploying automated trading algorithms and trading bots
- qf-lib - Modular event driven backtester with data vendor and broker integrations, portfolio construction tools and automated PDF reporting
- trade-frame - C++17 library and sample applications for automated trading of equities, futures, currencies, ETFs and options on IQFeed and Interactive Brokers data
- QuantFabric - Linux/C++ mid and high frequency trading system for the Chinese futures, stock and bond exchanges
- PineForge - Transpiles PineScript v6 strategies to C++ and runs deterministic offline backtests on user-provided OHLCV data.
General - Vector Based Frameworks
- 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.
- bt - Flexible backtesting for Python based on Algo and Strategy Tree
- QTradeX - A powerful and flexible Python framework for designing, backtesting, optimizing, and deploying algotrading bots
- ml-quant-trading - PyTorch research stack for ML multi-factor trading with 213 factors, bias correction, portfolio optimization, vectorized backtesting, and public validation reports
- pysystemtrade - Systematic Trading in python from book Systematic Trading by Rob Carver
Beginner
- How to Day Trade for a Living: A Beginner’s Guide to Trading Tools and Tactics, Money Management, Discipline and Trading Psychology - Andrew Aziz -
- Introduction To Algo Trading: How Retail Traders Can Successfully Compete With Professional Traders - Kevin J Davey -
- The Little Book of Common Sense Investing: The Only Way to Guarantee Your Fair Share of Stock Market Returns - John C. Bogle -
- A Beginner’s Guide to the Stock Market: Everything You Need to Start Making Money Today - Matthew R. Kratter -
- Day Trading QuickStart Guide: The Simplified Beginner’s Guide to Winning Trade Plans, Conquering the Markets, and Becoming a Successful Day Trader - Troy Noonan -
- Algorithmic Trading and DMA: An introduction to direct access trading strategies - Barry Johnson -
- Investing QuickStart Guide: The Simplified Beginner’s Guide to Successfully Navigating the Stock Market, Growing Your Wealth & Creating a Secure Financial Future - Ted D. Snow -
Biography
Bonds
-
Statistical and Economic Benefits of Whitening Residuals in Bond Yields
-
0.90 -
Dynamic Risk-Aware Yield Search: A Useful Tool for Fixed Income Investors
-
0.89 -
Out-performing corporate bonds indices with factor investing
-
0.85 -
Priced risk in corporate bonds
-
0.72 -
Sitting Bucks: Stale Pricing in Fixed Income Funds
-
0.64 -
Frontier and Emerging Government Bond Markets
-
0.62 -
Regime-based portfolio optimisation: A Hidden Markov Model approach for fixed income portfolios
-
0.62 -
Price Effects of Sovereign Debt Auctions in the Euro-zone: The Role of the Crisis
-
0.51 -
Are Bond Returns Predictable with Real-Time Macro Data?
-
0.49 -
Trading the Term Premium
-
0.45 -
Banks’ exposure to interest rate risk, their earnings from term transformation, and the dynamics of the term structure
-
0.44 -
Predictable End-of-Month Treasury Returns
-
0.43
Broker APIs
- 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.
- pmxt - Unified prediction market trading API across Polymarket, Kalshi and other venues, in the spirit of ccxt
Coding
- Python for Finance: Mastering Data-Driven Finance - Yves Hilpisch -
- Python for Algorithmic Trading: From Idea to Cloud Deployment - Yves Hilpisch -
- Learn Algorithmic Trading: Build and deploy algorithmic trading systems and strategies using Python and advanced data analysis - Sebastien Donadio -
- Algorithmic Trading with Python: Quantitative Methods and Strategy Development - Chris Conlan -
- Trading Evolved: Anyone can Build Killer Trading Strategies in Python - Andreas F. Clenow -
Commodities
Crypto
- Bitcoin Billionaires: A True Story of Genius, Betrayal, and Redemption - Ben Mezrich -
- The Bitcoin Standard: The Decentralized Alternative to Central Banking - Saifedean Ammous -
- Why Buy Bitcoin: Investing Today in the Money of Tomorrow - Andy Edstrom -
- Mastering Bitcoin: Programming the Open Blockchain - Andreas M. Antonopoulos -
Cryptocurrencies
-
How to Design a Simple Multi-Timeframe Trend Strategy on Bitcoin
-
3.39 -
‘Know When to Hodl ‘Em, Know When to Fodl ‘Em’: An Investigation of Factor Based Investing in the Cryptocurrency Space
-
1.53 -
Seasonality, Trend-following, and Mean reversion in Bitcoin
-
1.11 -
Do Risk Preferences Drive Momentum in Cryptocurrencies?
-
0.68 -
The Blockchain Risk Parity Line: Moving From The Efficient Frontier To The Final Frontier Of Investments
-
0.58 -
Price Overreactions in the Cryptocurrency Market
-
0.53 -
Proof-of-What? Detecting original consensus algorithms in cryptocurrencies with a four-factor model
-
0.52 -
Cryptocurrency as money: A trading strategy solution
-
0.47
Currencies
Databases
- 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
- DuckDB - In-process analytical SQL database that queries Parquet and Arrow files directly, a common backend for research datasets
- PyStore - Fast datastore for Pandas time series data, built on Dask and Parquet
Data Science
- 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.
- JAX - Composable transformations of Python+NumPy programs: automatic differentiation, vectorization and JIT compilation to GPU/TPU
Data Sources
Cryptocurrencies
- 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
General
- 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
- Wallstreet - Wallstreet: Real time Stock and Option tools
- OpenBB Terminal - Investment Research for Everyone, Anywhere.
- 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.
- Fincept Terminal - Fincept Terminal is a comprehensive CLI tool that provides financial insights, market analysis, and a host of other financial services such as technical analysis, fundamental analysis, sentiment analysis, quantitative analysis, and economic data services.
- FinanceDatabase - Database of 300,000+ symbols covering equities, ETFs, funds, indices, currencies, cryptocurrencies and money markets
- FinanceToolkit - 200+ financial metrics, ratios, technical indicators and risk measures computed from Financial Modeling Prep and Yahoo Finance data
- edgartools - SEC EDGAR filings in Python: XBRL fundamentals, 13F institutional holdings, insider transactions (Forms 3/4/5) and 8-K events
- pwb-toolbox - Loader for the 32 Papers With Backtest datasets on Hugging Face: daily prices back to 1962 for stocks, ETFs, indices, currencies and commodities, sovereign yield curves, quarterly fundamentals, FRED-MD macro series, and 5.7 billion rows of 1-minute US equity bars. Cards and schemas are open to read, downloads are gated.
Derivatives
-
Media Tone Goes Viral: Global Evidence from the Currency Market
-
1.06 -
Robust Portfolio Optimization with Value-At-Risk Adjusted Sharpe Ratios
-
0.92 -
When Factor Timing Makes Sense
-
0.74 -
Rational Decision-Making Under Uncertainty: Observed Betting Patterns on a Biased Coin
-
0.60 -
Can Financial Innovation Succeed by Catering to Behavioral Preferences? Evidence from a Callable Options Market
-
0.55 -
A Theory of Model Sophistication and Operational Risk
-
0.50 -
Tail-Risk Protection Trading Strategies
-
0.49 -
Is Media Tone just a Tone? Time-Series and Cross-Sectional Evidence from the Currency Market
-
0.35 -
The Temporal Pattern of Trading Rule Returns and Central Bank Intervention: Intervention Does Not Generate Technical Trading Rule Profits
-
0.33 -
Arbitrage in the Foreign Exchange Market: Turning on the Microscope
-
0.32
Equities
-
A Study Of Differences In Returns Between Large And Small Companies In Europe
-
1.89 -
The Investment CAPM
-
1.80 -
Important Characteristics, Weaknesses and Errors in German Equity Data from Thomson
-
1.68 -
The Role of Beta and Size in the Cross-Section of European Stock Returns
-
1.63 -
Systematic Abnormal Return Variation and Global Market Inefficiencies
-
1.57 -
Value and Size Effect: Now You See It, Now You Don’t
-
1.52 -
Properties of the Most Diversified Portfolio
-
1.50 -
Understanding Momentum and Reversal?
-
1.36 -
Fact, Fiction, and the Size Effect
-
1.33 -
The cross-section of returns in frontier equity markets: Integrated or segmented pricing?
-
1.32 -
Analytical Solution for Kelly’s Criterion for Multiple Outcomes
-
1.31 -
End-To-End Large Portfolio Optimization For Variance Minimization With Neural Networks Through Covariance Cleaning
-
1.28
General
- Building Winning Algorithmic Trading Systems: A Trader’s Journey From Data Mining to Monte Carlo Simulation to Live Trading (Wiley Trading) - Kevin J Davey -
- Option Volatility and Pricing: Advanced Trading Strategies and Techniques, 2nd Edition - Sheldon Natenberg -
- The Art and Science of Technical Analysis: Market Structure, Price Action, and Trading Strategies - Adam Grimes -
- The Intelligent Investor: The Definitive Book on Value Investing - Benjamin Graham, Jason Zweig -
- Trading and Exchanges: Market Microstructure for Practitioners - Larry Harris -
- The New Trading for a Living: Psychology, Discipline, Trading Tools and Systems, Risk Control, Trade Management (Wiley Trading) - Alexander Elder -
- Professional Automated Trading: Theory and Practice - Eugene A. Durenard -
- How I Invest My Money: Finance experts reveal how they save, spend, and invest - Joshua Brown, Brian Portnoy -
- Trading Systems 2nd edition: A new approach to system development and portfolio optimisation - Emilio Tomasini, Urban Jaekle -
- Naked Forex: High-Probability Techniques for Trading Without Indicators - Alex Nekritin -
- The Four Pillars of Investing: Lessons for Building a Winning Portfolio - William J. Bernstein -
- Systematic Trading: A unique new method for designing trading and investing systems - Robert Carver -
- Leveraged Trading: A professional approach to trading FX, stocks on margin, CFDs, spread bets and futures for all traders - Robert Carver -
- Trading Systems: A New Approach to System Development and Portfolio Optimisation - Emilio Tomasini, Urban Jaekle -
- Quantitative Technical Analysis: An integrated approach to trading system development and trading management - Dr Howard B Bandy -
- Advances in Active Portfolio Management: New Developments in Quantitative Investing - Richard Grinold, Ronald Kahn -
- Algorithmic Trading and Quantitative Strategies (Chapman and Hall/CRC Financial Mathematics Series) - Raja Velu, Maxence Hardy, Daniel Nehren -
- Quantitative Trading: Algorithms, Analytics, Data, Models, Optimization - Xin Guo, Tze Leung Lai, Howard Shek, Samuel Po-Shing Wong -
- Quantitative Momentum: A Practitioner’s Guide to Building a Momentum-Based Stock Selection System (Wiley Finance) - Wesley R. Gray, Jack R. Vogel -
- Quantitative Equity Portfolio Management: An Active Approach to Portfolio Construction and Management (McGraw-Hill Library of Investment and Finance) - Ludwig B Chincarini, Daehwan Kim -
- Algorithmic Trading: Winning Strategies and Their Rationale - Ernest P. Chan -
- Machine Trading: Deploying Computer Algorithms to Conquer the Markets - Ernest P. Chan -
- Active Portfolio Management: A Quantitative Approach for Producing Superior Returns and Controlling Risk - Richard Grinold, Ronald Kahn -
Graph Computation
- 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
- csp (Point72) - High performance reactive stream processing library written in C++ and Python, where the same graph runs in backtest and in real time