Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/avhz/RustQuant
Rust library for quantitative finance.
https://github.com/avhz/RustQuant
finance machine-learning math mathematics option-pricing quantitative-finance quantlib regression rust rust-lang statistics stochastic-processes trading
Last synced: about 1 month ago
JSON representation
Rust library for quantitative finance.
- Host: GitHub
- URL: https://github.com/avhz/RustQuant
- Owner: avhz
- License: apache-2.0
- Created: 2022-08-31T10:03:24.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-10-30T22:18:02.000Z (about 1 month ago)
- Last Synced: 2024-11-04T17:46:17.499Z (about 1 month ago)
- Topics: finance, machine-learning, math, mathematics, option-pricing, quantitative-finance, quantlib, regression, rust, rust-lang, statistics, stochastic-processes, trading
- Language: Rust
- Homepage: https://avhz.github.io
- Size: 50.5 MB
- Stars: 1,125
- Watchers: 28
- Forks: 129
- Open Issues: 30
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE-APACHE.md
Awesome Lists containing this project
- awesome-rust - avhz/RustQuant
- awesome-rust - avhz/RustQuant - A quantitative finance library. ![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/avhz/RustQuant/build.yml) (Libraries / Finance)
- fucking-awesome-rust - avhz/RustQuant - A quantitative finance library. ![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/avhz/RustQuant/build.yml) (Libraries / Finance)
README
![](./images/logo.png)
A Rust library for quantitative finance.
:dart: If you are an experienced quant developer in any language and would like to help out, feel free to contact me!
| Email | Discord | Latest Changes |
|:----------------------------:|:-------------------------------:|:---------------------------:|
| | | [Changelog](./CHANGELOG.md) |## Modules
| Module | Description |
|--------|-------------|
| [`autodiff`](https://docs.rs/RustQuant/latest/RustQuant/autodiff/index.html) | Algorithmic adjoint differentiation (AAD) for efficiently computing gradients of scalar output functions $f: \mathbb{R}^n \rightarrow \mathbb{R}$. |
| [`cashflows`](https://docs.rs/RustQuant/latest/RustQuant/cashflows/index.html) | Implementations for `Cashflows` and `Quotes`, and similar types. |
| [`data`](https://docs.rs/RustQuant/latest/RustQuant/data/index.html) | Data types that can be used for pricing and similar tasks (curves, term-structures, surfaces, etc). Methods for reading and writing data from/to various sources (CSV, JSON, Parquet). Can also download data from Yahoo! Finance. |
| [`error`](https://docs.rs/RustQuant/latest/RustQuant/error/index.html) | RustQuant error handling module. |
| [`instruments`](https://docs.rs/RustQuant/latest/RustQuant/instruments/index.html) | Implementations for financial instruments like `Bonds`, `Options`, and `Money`, including their pricing. Future additions will include swaps, futures, CDSs, etc. |
| [`iso`](https://docs.rs/RustQuant/latest/RustQuant/iso/index.html) | A few ISO code implementations: [ISO-4217](https://www.iso.org/iso-4217-currency-codes.html) (currency codes), [ISO-3166](https://www.iso.org/iso-3166-country-codes.html) (country codes), [ISO-10383](https://www.iso20022.org/market-identifier-codes) (market identifier codes). |
| [`math`](https://docs.rs/RustQuant/latest/RustQuant/math/index.html) | Statistical distributions and their related functions (PDF, CDF, CF, etc), 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`](https://docs.rs/RustQuant/latest/RustQuant/ml/index.html) | Currently only linear and logistic regression, along with k-nearest neighbours classification are implemented. More to come in the future. |
| [`macros`](https://docs.rs/RustQuant/latest/RustQuant/macros/index.html) | Currently only `plot_vector!()` and `assert_approx_equal!()`. |
| [`models`](https://docs.rs/RustQuant/latest/RustQuant/models/index.html) | Various models commonly used in quantitative finance, such as the various forms of Brownian Motion, short rate models, curve models, etc. |
| [`portfolio`](https://docs.rs/RustQuant/latest/RustQuant/portfolio/index.html) | Implementation of a portfolio type, which is a collection (`HashMap`) of `Position`s. |
| [`stochastics`](https://docs.rs/RustQuant/latest/RustQuant/stochastics/index.html) | Stochastic process generators for Brownian Motion (standard, arithmetic, fractional, and geometric) and various short-rate models (CIR, OU, Vasicek, Hull-White, etc). |
| [`time`](https://docs.rs/RustQuant/latest/RustQuant/time/index.html) | Time and date functionality, such as `DayCounter`, calendars, constants, conventions, schedules, etc. |
| [`trading`](https://docs.rs/RustQuant/latest/RustQuant/trading/index.html) | Currently only a basic limit order book (LOB). Hopefully adding additional trading tools in the future. |## Examples
See [/examples](./examples) for various uses of RustQuant. You can run them with:
```bash
cargo run --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.
[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Favhz%2FRustQuant.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Favhz%2FRustQuant?ref=badge_large)