Crate finalytics

Source
Expand description

§Finalytics

Welcome to finalytics, financial analytics in Rust!

finalytics is a Rust library designed for retrieving financial data and performing security analysis and portfolio optimization.

§Installation

Add the following to your Cargo.toml file:

[dependencies]
finalytics = "*"

Or run the following command:

cargo install finalytics

§Models

These are the main Interfaces for accessing the finalytics library methods

§Ticker - Retrieve and analyze ticker data
§Tickers - Retrieve and analyze multiple tickers
§Portfolio - Optimize a portfolio of tickers

§Example

use finalytics::prelude::*;
use std::error::Error;

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
        // Instantiate a Multiple Ticker Object
        let ticker_symbols = Vec::from(["NVDA", "GOOG", "AAPL", "MSFT","BTC-USD"]);

        let tickers = TickersBuilder::new()
            .tickers(ticker_symbols)
            .start_date("2023-01-01")
            .end_date("2024-12-31")
            .interval(Interval::OneDay)
            .benchmark_symbol("^GSPC")
            .confidence_level(0.95)
            .risk_free_rate(0.02)
            .build();

       // Generate a Single Ticker Report
        let ticker = tickers.clone().get_ticker("AAPL").await?;
        ticker.report(Some(ReportType::Performance)).await?.show()?;
        ticker.report(Some(ReportType::Financials)).await?.show()?;
        ticker.report(Some(ReportType::Options)).await?.show()?;

        // Generate a Multiple Ticker Report
        tickers.report(Some(ReportType::Performance)).await?.show()?;

        // Perform a Portfolio Optimization
        let portfolio = tickers.optimize(Some(ObjectiveFunction::MaxSharpe), None).await?;

        // Generate a Portfolio Report
        portfolio.report(Some(ReportType::Performance)).await?.show()?;

        Ok(())
    }

Modules§

analytics
charts
data
models
prelude
reports
utils