| Crates.io | cutup |
| lib.rs | cutup |
| version | 0.1.4 |
| created_at | 2025-02-09 03:59:15.372799+00 |
| updated_at | 2025-04-07 05:26:32.066987+00 |
| description | A flexible and efficient allocation library for Rust, capable of distributing assets, resources, and other divisible entities. |
| homepage | https://github.com/thinkjrs/cutup |
| repository | https://github.com/thinkjrs/cutup |
| max_upload_size | |
| id | 1548637 |
| size | 26,858 |
Cutup is a Rust library for portfolio allocation strategies, providing implementations for various allocation methods.
It's designed to be efficient and easy to use.
Here are some of the allocation methods included in this library:
This library leverages nalgebra for efficient matrix operations and is designed for performance and extensibility.
Add cutup to your Cargo.toml:
[dependencies]
cutup = "0.1.4"
use nalgebra::DMatrix;
use cutup::PortfolioAllocator;
fn main() {
let prices = DMatrix::from_row_slice(
4,
4,
&[
125.0, 1500.0, 210.0, 600.0,
123.0, 1520.0, 215.0, 620.0,
130.0, 1510.0, 220.0, 610.0,
128.0, 1530.0, 225.0, 630.0,
],
);
let allocator = PortfolioAllocator::new(prices);
let mvo_weights = allocator.mvo_allocation();
let ew_weights = allocator.ew_allocation();
let hrp_weights = allocator.hrp_allocation();
println!("MVO Weights: {:?}", mvo_weights);
println!("EW Weights: {:?}", ew_weights);
println!("HRP Weights: {:?}", hrp_weights);
// or do it all in one go
let weights = run_portfolio_allocation(prices);
println!("Portfolio Weights: {:?}", weights);
}
This project is licensed under the MIT License.