#![allow(unused)]
#[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?;
let summary = ticker.risk(Interval::OneDay, TimeRange::OneYear, Some("^GSPC")).await?;
let summary = ticker.risk(Interval::OneDay, TimeRange::OneYear, None).await?;
Ok(())
}
}
#[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(())
}
}