An open API service indexing awesome lists of open source software.

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

Biography

Bonds

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

Commodities

Crypto

Cryptocurrencies

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

Equities

General

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

High Frequency Trading