/awesome-quant

A curated list of insanely awesome libraries, packages and resources for Quants (Quantitative Finance)

awesome-quant

Awesome

A curated list of insanely awesome libraries, packages and resources for Quants (Quantitative Finance)

Languages

Python

Numerical Libraries & Data Structures

  • numpy - NumPy is the fundamental package for scientific computing with Python.
  • scipy - SciPy (pronounced “Sigh Pie”) is a Python-based ecosystem of open-source software for mathematics, science, and engineering.
  • pandas - pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.
  • quantdsl - Domain specific language for quantitative analytics in finance and trading.
  • statistics - Builtin Python library for all basic statistical calculations.
  • sympy - SymPy is a Python library for symbolic mathematics.
  • pymc3 - Probabilistic Programming in Python: Bayesian Modeling and Probabilistic Machine Learning with Theano.

Financial Instruments and Pricing

  • PyQL - QuantLib's Python port.
  • pyfin - Basic options pricing in Python. [ARCHIVED]
  • vollib - vollib is a python library for calculating option prices, implied volatility and greeks.
  • QuantPy - A framework for quantitative finance In python.
  • Finance-Python - Python tools for Finance.
  • ffn - A financial function library for Python.
  • pynance - PyNance is open-source software for retrieving, analysing and visualizing data from stock and derivatives markets.
  • tia - Toolkit for integration and analysis.
  • hasura/base-python-dash - Hasura quickstart to deploy Dash framework. Written on top of Flask, Plotly.js, and React.js, Dash is ideal for building data visualization apps with highly custom user interfaces in pure Python.
  • hasura/base-python-bokeh - Hasura quickstart to visualize data with bokeh library.
  • pysabr - SABR model Python implementation.
  • FinancePy - A Python Finance Library that focuses on the pricing and risk-management of Financial Derivatives, including fixed-income, equity, FX and credit derivatives.
  • FinancePy-Examples - Examples of how to use FinancePy
  • gs-quant - Python toolkit for quantitative finance

Indicators

  • pandas_talib - A Python Pandas implementation of technical analysis indicators.
  • finta - Common financial technical analysis indicators implemented in Pandas.
  • Tulipy - Financial Technical Analysis Indicator Library (Python bindings for tulipindicators)

Trading & Backtesting

  • TA-Lib - perform technical analysis of financial market data.
  • trade - trade is a Python framework for the development of financial applications.
  • zipline - Pythonic algorithmic trading library.
  • QuantSoftware Toolkit - Python-based open source software framework designed to support portfolio construction and management.
  • quantitative - Quantitative finance, and backtesting library.
  • analyzer - Python framework for real-time financial and backtesting trading strategies.
  • bt - Flexible Backtesting for Python.
  • backtrader - Python Backtesting library for trading strategies.
  • pythalesians - Python library to backtest trading strategies, plot charts, seamlessly download market data, analyse market patterns etc.
  • pybacktest - Vectorized backtesting framework in Python / pandas, designed to make your backtesting easier.
  • pyalgotrade - Python Algorithmic Trading Library.
  • tradingWithPython - A collection of functions and classes for Quantitative trading.
  • Pandas TA - Pandas TA is an easy to use Python 3 Pandas Extension with 115+ Indicators. Easily build Custom Strategies.
  • ta - Technical Analysis Library using Pandas (Python)
  • algobroker - This is an execution engine for algo trading.
  • pysentosa - Python API for sentosa trading system.
  • finmarketpy - Python library for backtesting trading strategies and analyzing financial markets.
  • binary-martingale - Computer program to automatically trade binary options martingale style.
  • fooltrader - the project using big-data technology to provide an uniform way to analyze the whole market.
  • zvt - the project using sql,pandas to provide an uniform and extendable way to record data,computing factors,select securites, backtesting,realtime trading and it could show all of them in clearly charts in realtime.
  • pylivetrader - zipline-compatible live trading library.
  • pipeline-live - zipline's pipeline capability with IEX for live trading.
  • zipline-extensions - Zipline extensions and adapters for QuantRocket.
  • moonshot - Vectorized backtester and trading engine for QuantRocket based on Pandas.
  • PyPortfolioOpt - Financial portfolio optimisation in python, including classical efficient frontier and advanced methods.
  • riskparity.py - fast and scalable design of risk parity portfolios with TensorFlow 2.0
  • mlfinlab - Implementations regarding "Advances in Financial Machine Learning" by Marcos Lopez de Prado. (Feature Engineering, Financial Data Structures, Meta-Labeling)
  • pyqstrat - A fast, extensible, transparent python library for backtesting quantitative strategies.
  • NowTrade - Python library for backtesting technical/mechanical strategies in the stock and currency markets.
  • pinkfish - A backtester and spreadsheet library for security analysis.
  • aat - Async Algorithmic Trading Engine
  • Backtesting.py - Backtest trading strategies in Python
  • catalyst - An Algorithmic Trading Library for Crypto-Assets in Python
  • quantstats - Portfolio analytics for quants, written in Python
  • qtpylib - QTPyLib, Pythonic Algorithmic Trading http://qtpylib.io
  • Quantdom - Python-based framework for backtesting trading strategies & analyzing financial markets [GUI :neckbeard:]
  • freqtrade - Free, open source crypto trading bot
  • algorithmic-trading-with-python - Free pandas and scikit-learn resources for trading simulation, backtesting, and machine learning on financial data.
  • DeepDow - Portfolio optimization with deep learning

Risk Analysis

  • pyfolio - Portfolio and risk analytics in Python.
  • empyrical - Common financial risk and performance metrics.
  • fecon235 - Computational tools for financial economics include: Gaussian Mixture model of leptokurtotic risk, adaptive Boltzmann portfolios.
  • finance - Financial Risk Calculations. Optimized for ease of use through class construction and operator overload.
  • qfrm - Quantitative Financial Risk Management: awesome OOP tools for measuring, managing and visualizing risk of financial instruments and portfolios.
  • visualize-wealth - Portfolio construction and quantitative analysis.
  • VisualPortfolio - This tool is used to visualize the perfomance of a portfolio.

Factor Analysis

  • alphalens - Performance analysis of predictive alpha factors.
  • Spectre - GPU-accelerated Factors analysis library and Backtester

Time Series

  • ARCH - ARCH models in Python.
  • statsmodels - Python module that allows users to explore data, estimate statistical models, and perform statistical tests.
  • dynts - Python package for timeseries analysis and manipulation.
  • PyFlux - Python library for timeseries modelling and inference (frequentist and Bayesian) on models.
  • tsfresh - Automatic extraction of relevant features from time series.
  • hasura/quandl-metabase - Hasura quickstart to visualize Quandl's timeseries datasets with Metabase.

Calendars

Data Sources

  • findatapy - Python library to download market data via Bloomberg, Quandl, Yahoo etc.
  • googlefinance - Python module to get real-time stock data from Google Finance API.
  • yahoo-finance - Python module to get stock data from Yahoo! Finance.
  • pandas-datareader - Python module to get data from various sources (Google Finance, Yahoo Finance, FRED, OECD, Fama/French, World Bank, Eurostat...) into Pandas datastructures such as DataFrame, Panel with a caching mechanism.
  • pandas-finance - High level API for access to and analysis of financial data.
  • pyhoofinance - Rapidly queries Yahoo Finance for multiple tickers and returns typed data for analysis.
  • yfinanceapi - Finance API for Python.
  • yql-finance - yql-finance is simple and fast. API returns stock closing prices for current period of time and current stock ticker (i.e. APPL, GOOGL).
  • ystockquote - Retrieve stock quote data from Yahoo Finance.
  • wallstreet - Real time stock and option data.
  • stock_extractor - General Purpose Stock Extractors from Online Resources.
  • Stockex - Python wrapper for Yahoo! Finance API.
  • finsymbols - Obtains stock symbols and relating information for SP500, AMEX, NYSE, and NASDAQ.
  • FRB - Python Client for FRED® API.
  • inquisitor - Python Interface to Econdb.com API.
  • yfi - Yahoo! YQL library.
  • chinesestockapi - Python API to get Chinese stock price.
  • exchange - Get current exchange rate.
  • ticks - Simple command line tool to get stock ticker data.
  • pybbg - Python interface to Bloomberg COM APIs.
  • ccy - Python module for currencies.
  • tushare - A utility for crawling historical and Real-time Quotes data of China stocks.
  • jsm - Get the japanese stock market data.
  • cn_stock_src - Utility for retrieving basic China stock data from different sources.
  • coinmarketcap - Python API for coinmarketcap.
  • after-hours - Obtain pre market and after hours stock prices for a given symbol.
  • bronto-python - Bronto API Integration for Python.
  • pytdx - Python Interface for retrieving chinese stock realtime quote data from TongDaXin Nodes.
  • pdblp - A simple interface to integrate pandas and the Bloomberg Open API.
  • tiingo - Python interface for daily composite prices/OHLC/Volume + Real-time News Feeds, powered by the Tiingo Data Platform.
  • iexfinance - Python Interface for retrieving real-time and historical prices and equities data from The Investor's Exchange.
  • pyEX - Python interface to IEX with emphasis on pandas, support for streaming data, premium data, points data (economic, rates, commodities), and technical indicators.
  • alpaca-trade-api - Python interface for retrieving real-time and historical prices from Alpaca API as well as trade execution.
  • metatrader5 - API Connector to MetaTrader 5 Terminal
  • akshare - AkShare is an elegant and simple financial data interface library for Python, built for human beings! https://akshare.readthedocs.io
  • yahooquery - Python interface for retrieving data through unofficial Yahoo Finance API.
  • investpy - Financial Data Extraction from Investing.com with Python! https://investpy.readthedocs.io/
  • yliveticker - Live stream of market data from Yahoo Finance websocket.
  • bbgbridge - Easy to use Bloomberg Desktop API wrapper for Python.

Excel Integration

  • xlwings - Make Excel fly with Python.
  • openpyxl - Read/Write Excel 2007 xlsx/xlsm files.
  • xlrd - Library for developers to extract data from Microsoft Excel spreadsheet files.
  • xlsxwriter - Write files in the Excel 2007+ XLSX file format.
  • xlwt - Library to create spreadsheet files compatible with MS Excel 97/2000/XP/2003 XLS files, on any platform.
  • DataNitro - DataNitro also offers full-featured Python-Excel integration, including UDFs. Trial downloads are available, but users must purchase a license.
  • xlloop - XLLoop is an open source framework for implementing Excel user-defined functions (UDFs) on a centralised server (a function server).
  • expy - The ExPy add-in allows easy use of Python directly from within an Microsoft Excel spreadsheet, both to execute arbitrary code and to define new Excel functions.
  • pyxll - PyXLL is an Excel add-in that enables you to extend Excel using nothing but Python code.

Visualization

  • D-Tale - Visualizer for pandas dataframes and xarray datasets.

R

Numerical Libraries & Data Structures

  • xts - eXtensible Time Series: Provide for uniform handling of R's different time-based data classes by extending zoo, maximizing native format information preservation and allowing for user level customization and extension, while simplifying cross-class interoperability.
  • data.table - Extension of data.frame: Fast aggregation of large data (e.g. 100GB in RAM), fast ordered joins, fast add/modify/delete of columns by group using no copies at all, list columns and a fast file reader (fread). Offers a natural and flexible syntax, for faster development.
  • sparseEigen - Sparse pricipal component analysis.
  • TSdbi - Provides a common interface to time series databases.
  • tseries - Time Series Analysis and Computational Finance.
  • zoo - S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations).
  • tis - Functions and S3 classes for time indexes and time indexed series, which are compatible with FAME frequencies.
  • tfplot - Utilities for simple manipulation and quick plotting of time series data.
  • tframe - A kernel of functions for programming time series methods in a way that is relatively independently of the representation of time.

Data Sources

  • IBrokers - Provides native R access to Interactive Brokers Trader Workstation API.
  • Rblpapi - An R Interface to 'Bloomberg' is provided via the 'Blp API'.
  • Quandl - Get Financial Data Directly Into R.
  • Rbitcoin - Unified markets API interface (bitstamp, kraken, btce, bitmarket).
  • GetTDData - Downloads and aggregates data for Brazilian government issued bonds directly from the website of Tesouro Direto.
  • GetHFData - Downloads and aggregates high frequency trading data for Brazilian instruments directly from Bovespa ftp site.

Financial Instruments and Pricing

  • RQuantLib - RQuantLib connects GNU R with QuantLib.
  • quantmod - Quantitative Financial Modelling Framework.
  • Rmetrics - The premier open source software solution for teaching and training quantitative finance.
  • portfolio - Analysing equity portfolios.
  • portfolioSim - Framework for simulating equity portfolio strategies.
  • sparseIndexTracking - Portfolio design to track an index.
  • covFactorModel - Covariance matrix estimation via factor models.
  • riskParityPortfolio - Blazingly fast design of risk parity portfolios.
  • sde - Simulation and Inference for Stochastic Differential Equations.
  • YieldCurve - Modelling and estimation of the yield curve.
  • SmithWilsonYieldCurve - Constructs a yield curve by the Smith-Wilson method from a table of LIBOR and SWAP rates.
  • ycinterextra - Yield curve or zero-coupon prices interpolation and extrapolation.
  • AmericanCallOpt - This package includes pricing function for selected American call options with underlying assets that generate payouts.
  • VarSwapPrice - Pricing a variance swap on an equity index.
  • RND - Risk Neutral Density Extraction Package.
  • LSMonteCarlo - American options pricing with Least Squares Monte Carlo method.
  • OptHedging - Estimation of value and hedging strategy of call and put options.
  • tvm - Time Value of Money Functions.
  • OptionPricing - Option Pricing with Efficient Simulation Algorithms.
  • credule - Credit Default Swap Functions.
  • derivmkts - Functions and R Code to Accompany Derivatives Markets.
  • FinCal - Package for time value of money calculation, time series analysis and computational finance.
  • r-quant - R code for quantitative analysis in finance.
  • options.studies - options trading studies functions for use with options.data package and shiny.

Trading

  • TA-Lib - perform technical analysis of financial market data.
  • backtest - Exploring Portfolio-Based Conjectures About Financial Instruments.
  • pa - Performance Attribution for Equity Portfolios.
  • TTR - Technical Trading Rules.
  • QuantTools - Enhanced Quantitative Trading Modelling.

Risk Analysis

Time Series

  • tseries - Time Series Analysis and Computational Finance.
  • zoo - S3 Infrastructure for Regular and Irregular Time Series (Z's Ordered Observations).
  • xts - eXtensible Time Series.
  • fGarch - Rmetrics - Autoregressive Conditional Heteroskedastic Modelling.
  • timeSeries - Rmetrics - Financial Time Series Objects.
  • rugarch - Univariate GARCH Models.
  • rmgarch - Multivariate GARCH Models.
  • tidypredict - Run predictions inside the database https://tidypredict.netlify.com/.
  • tidyquant - Bringing financial analysis to the tidyverse.
  • timetk - A toolkit for working with time series in R.
  • tibbletime - Built on top of the tidyverse, tibbletime is an extension that allows for the creation of time aware tibbles through the setting of a time index.

Calendars

  • timeDate - Chronological and Calendar Objects
  • bizdays - Business days calculations and utilities

Matlab

FrameWorks

  • QUANTAXIS - Integrated Quantitative Toolbox with Matlab.

Julia

  • QuantLib.jl - Quantlib implementation in pure Julia.
  • FinancialMarkets.jl - Describe and model financial markets objects using Julia.
  • Ito.jl - A Julia package for quantitative finance.
  • TALib.jl - A Julia wrapper for TA-Lib.
  • Miletus.jl - A financial contract definition, modeling language, and valuation framework.
  • Temporal.jl - Flexible and efficient time series class & methods.
  • Indicators.jl - Financial market technical analysis & indicators on top of Temporal.
  • Strategems.jl - Quantitative systematic trading strategy development and backtesting.
  • TimeSeries.jl - Time series toolkit for Julia.
  • MarketTechnicals.jl - Technical analysis of financial time series on top of TimeSeries.
  • MarketData.jl - Time series market data.
  • TimeFrames.jl - A Julia library that defines TimeFrame (essentially for resampling TimeSeries).

Java

  • Strata - Modern open-source analytics and market risk library designed and written in Java.
  • JQuantLib - JQuantLib is a free, open-source, comprehensive framework for quantitative finance, written in 100% Java.
  • finmath.net - Java library with algorithms and methodologies related to mathematical finance.
  • quantcomponents - Free Java components for Quantitative Finance and Algorithmic Trading.
  • DRIP - Fixed Income, Asset Allocation, Transaction Cost Analysis, XVA Metrics Libraries.

JavaScript

Data Visualization

Haskell

  • quantfin - quant finance in pure haskell.
  • hqfl - Haskell Quantitative Finance Library.

Scala

  • QuantScale - Scala Quantitative Finance Library.
  • Scala Quant Scala library for working with stock data from IFTTT recipes or Google Finance.

Ruby

  • Jiji - Open Source Forex algorithmic trading framework using OANDA REST API.

Elixir/Erlang

  • Tai - Open Source composable, real time, market data and trade execution toolkit.
  • Workbench - From Idea to Execution - Manage your trading operation across a globally distributed cluster

Golang

  • Kelp - Kelp is an open-source Golang algorithmic cryptocurrency trading bot that runs on centralized exchanges and Stellar DEX (command-line usage and desktop GUI).

Frameworks

CSharp

  • QuantConnect - Lean Engine is an open-source fully managed C# algorithmic trading engine built for desktop and cloud usage.

Reproducing Works

  • Derman Papers - Notebooks that replicate original quantitative finance papers from Emanuel Derman.
  • volatility-trading - A complete set of volatility estimators based on Euan Sinclair's Volatility Trading.
  • quant - Quantitative Finance and Algorithmic Trading exhaust; mostly ipython notebooks based on Quantopian, Zipline, or Pandas.
  • fecon235 - Open source project for software tools in financial economics. Many jupyter notebook to verify theoretical ideas and practical methods interactively.
  • Quantitative-Notebooks - Educational notebooks on quantitative finance, algorithmic trading, financial modelling and investment strategy