finance-query 3.0.0

A Rust library for querying financial data
Documentation
// @generated by `cargo soothfast docs gen-tests`
// source: docs/library/risk.md
#![allow(unused)]

// line 23: compile-only (no_run)
#[cfg(feature = "risk")]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_23() {
    use finance_query::{Interval, Ticker, TimeRange};

    #[tokio::main]
    async fn main() -> Result<(), Box<dyn std::error::Error>> {
        let ticker = Ticker::new("AAPL").await?;

        // Risk summary over the past year vs S&P 500 as benchmark
        let summary = ticker.risk(Interval::OneDay, TimeRange::OneYear, Some("^GSPC")).await?;

        // Without a benchmark (beta will be None)
        let summary = ticker.risk(Interval::OneDay, TimeRange::OneYear, None).await?;
        Ok(())
    }
}

// line 67: compile-only (no_run)
#[cfg(feature = "risk")]
#[rustfmt::skip]
#[allow(dead_code)]
fn doc_block_line_67() {
    use finance_query::{Interval, Ticker, TimeRange};

    #[tokio::main]
    async fn main() -> Result<(), Box<dyn std::error::Error>> {
        let ticker = Ticker::new("NVDA").await?;
        let risk = ticker.risk(Interval::OneDay, TimeRange::TwoYears, Some("^GSPC")).await?;

        println!("=== Risk Report: NVDA (2Y daily) ===");
        println!("VaR 95%:       {:.2}%", risk.var_95 * 100.0);
        println!("VaR 99%:       {:.2}%", risk.var_99 * 100.0);
        println!("Param VaR 95%: {:.2}%", risk.parametric_var_95 * 100.0);
        println!("Max Drawdown:  {:.2}%", risk.max_drawdown * 100.0);

        if let Some(periods) = risk.max_drawdown_recovery_periods {
            println!("Recovery:      {} trading days", periods);
        } else {
            println!("Recovery:      no full recovery in window");
        }

        if let Some(sharpe) = risk.sharpe {
            println!("Sharpe:        {:.2}", sharpe);
        }
        if let Some(sortino) = risk.sortino {
            println!("Sortino:       {:.2}", sortino);
        }
        if let Some(calmar) = risk.calmar {
            println!("Calmar:        {:.2}", calmar);
        }
        if let Some(beta) = risk.beta {
            println!("Beta (vs SPX): {:.2}", beta);
        }
        Ok(())
    }
}