awesome-quant
A curated list of insanely awesome libraries, packages and resources for Quants (Quantitative Finance)
Languages
- Python
- R
- Julia
- Java
- Haskell
- Scala
- 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
Financial Instruments
- 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
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
Risk Analysis
- pyfolio - Portfolio and risk analytics in Python
- qrisk - Common financial risk and performance metrics
- 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
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
Calendars
- tradingcalendar - Stock Exchange Trading Calendar
- bizdays - Business days calculations and utilities
Data Sources
- 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-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 Inquirim.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
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.
Financial Instruments
- 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
- stockPortfolio - Build stock models and analyze stock portfolios
- financial - Time value of money, cash flows and other financial functions.
- 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
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
Risk Analysis
- PerformanceAnalytics - Econometric tools for performance and risk analysis
Time Series
Calendars
- RQuantLib
- timeDate - Chronological and Calendar Objects
- bizdays - Business days calculations and utilities
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
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
Haskell
Scala
- QuantScale - Scala Quantitative Finance Library
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
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.