awesome-quant
A curated list of insanely awesome libraries, packages and resources for Quants (Quantitative Finance)
Languages
- Python
- R
- Matlab
- Julia
- Java
- JavaScript
- Haskell
- Scala
- Ruby
- Elixir/Erlang
- Golang
- CSharp
- Frameworks - frameworks that support different languages
- Reproducing Works - repositories that reproduce books and papers results or implement examples
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
]
- freqtrade - Free, open source crypto trading bot
- algorithmic-trading-with-python - Free
pandas
andscikit-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
- trading_calendars - Stock Exchange Trading Calendars.
- bizdays - Business days calculations and utilities.
- pandas_market_calendars - Exchange calendars to use with pandas for trading applications.
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.
- mplfinance - matplotlib utilities for the visualization, and visual analysis, of financial data.
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.
- fAsianOptions - EBM and Asian Option Valuation.
- fAssets - Analysing and Modelling Financial Assets.
- fBasics - Markets and Basic Statistics.
- fBonds - Bonds and Interest Rate Models.
- fExoticOptions - Exotic Option Valuation.
- fOptions - Pricing and Evaluating Basic Options.
- fPortfolio - Portfolio Selection and Optimization.
- 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
- PerformanceAnalytics - Econometric tools for performance and 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
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
- QUANTAXIS_Webkit an awesome visualization center based on quantaxis.
Haskell
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
- QuantLib - The QuantLib project is aimed at providing a comprehensive software framework for quantitative finance.
- JQuantLib - Java port.
- RQuantLib - R port.
- QuantLibAddin - Excel support.
- QuantLibXL - Excel support.
- QLNet - .Net port.
- PyQL - Python port.
- QuantLib.jl - Julia port.
- TA-Lib - perform technical analysis of financial market data.
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