/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
  • 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

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_talib - A Python Pandas implementation of technical analysis indicators
  • 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
  • pylivetrader - zipline-compatible live trading library
  • pipeline-live - zipline's pipeline capability with IEX for live trading

Risk Analysis

  • pyfolio - Portfolio and risk analytics in Python
  • qrisk - 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

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 https://developer.yahoo.com/yql/console/ python API. 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.
  • IEX - Python Interface for retrieving real-time and historical prices and equities data from The Investor's Exchange.
  • alpaca-trade-api - Python interface for retrieving real-time and historical prices from Alpaca API as well as trade execution.

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.

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.
  • its - Irregular time series.
  • 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
  • stockPortfolio - Build stock models and analyze stock portfolios
  • financial - Time value of money, cash flows and other financial functions.
  • sparseIndexTracking - Portfolio design to track an index
  • covFactorModel - Covariance matrix estimation via factor models
  • sde - Simulation and Inference for Stochastic Differential Equations
  • termstrc - Zero-coupon Yield Curve Estimation
  • 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
  • opefimor - Option Pricing and Estimation of Financial Models in R
  • maRketSim - Market simulator for R
  • 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
  • binary_options - predicting stock direction for binary option trading
  • 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 http://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

  • JQuantLib - JQuantLib is a free, open-source, comprehensive framework for quantitative finance, written in 100% Java.
  • finmat.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.

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.