A Rust library for quantitative finance.
🎯 If you are an experienced quant developer in any language and would like to help out, feel free to contact me!
| Discord | Latest Changes | |
|---|---|---|
| [email protected] | https://discord.gg/tQcM77h8vr | Changelog | 
| Module | Description | 
|---|---|
autodiff | 
Algorithmic adjoint differentiation (AAD) for efficiently computing gradients of scalar output functions  | 
curves | 
Curves and surfaces, such as the yield curve and volatility surface. | 
data | 
Methods for reading and writing data from/to various sources (CSV, JSON, Parquet). Can also download data from Yahoo! Finance. | 
error | 
RustQuant error handling module. | 
instruments | 
Various implementations for instruments like Bonds and Options, and the pricing of them. Others coming in the future (swaps, futures, CDSs, etc). | 
iso | 
A few ISO code implementations. Currently: ISO-4217 (currency codes), ISO-3166 (country codes), ISO-10383 (market identifier codes). | 
math | 
Fast Fourier Transform (FFT), numerical integration (double-exponential quadrature), optimisation/root-finding (gradient descent, Newton-Raphson), and risk-reward metrics. Also some sequence methods such as linspace and cumsum. | 
ml | 
Currently only linear and logistic regression, along with k-nearest neighbours classification are implemented. More to come in the future. | 
macros | 
Currently only plot_vector!() and assert_approx_equal!(). | 
money | 
Implementations for Cashflows, Currencies, and Quotes, and similar types. | 
portfolio | 
Implementation of a portfolio type, which is a collection (HashMap) of Positions. | 
statistics | 
Density, distribution, moment-generating, and characteristic functions, and other distribution related functions for common distributions. | 
stochastics | 
Stochastic process generators for Brownian Motion (standard, arithmetic, fractional, and geometric) and various short-rate models (CIR, OU, Vasicek, Hull-White, etc). Multi-factor processes coming shortly. | 
time | 
Time and date functionality, such as DayCounter, calendars, constants, conventions, schedules, etc. | 
trading | 
Currently only a basic limit order book (LOB). Hopefully adding additional trading tools in the future. | 
See /examples for various uses of RustQuant. You can run them with:
cargo run --example <example>Note
Disclaimer: This is currently a free-time project and not a professional financial software library. Nothing in this library should be taken as financial advice, and I do not recommend you to use it for trading or making financial decisions.