A Rust library for quantitative finance.
🎯 I want to hit a stable v0.1.0
by the end of 2023, so any feedback or contributions are strongly welcomed!
Discord | Latest Changes | |
---|---|---|
RustQuantContact@gmail.com | 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). |
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 Position s. |
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>
- John C. Hull - Options, Futures, and Other Derivatives
- Damiano Brigo & Fabio Mercurio - Interest Rate Models - Theory and Practice (With Smile, Inflation and Credit)
- Paul Glasserman - Monte Carlo Methods in Financial Engineering
- Andreas Griewank & Andrea Walther - Evaluating Derivatives - Principles and Techniques of Algorithmic Differentiation
- Steven E. Shreve - Stochastic Calculus for Finance II: Continuous-Time Models
- Espen Gaarder Haug - Option Pricing Formulas
- Antoine Savine - Modern Computational Finance: AAD and Parallel Simulations
- Uwe Naumann - The Art of Differentiating Computer Programs: An Introduction to Algorithmic Differentiation
- Jessica James & Nick Webber - Interest Rate Modelling
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.