47 lines
1.3 KiB
Rust
47 lines
1.3 KiB
Rust
//! Risk Analyzer for Financial Portfolio Analysis
|
|
//!
|
|
//! This crate provides comprehensive risk analysis tools including:
|
|
//! - Value at Risk (`VaR`) calculation using Historical, Parametric, and Monte Carlo methods
|
|
//! - Conditional `VaR` (CVaR/Expected Shortfall)
|
|
//! - Monte Carlo simulation for risk scenarios
|
|
//! - Stress testing against historical crisis scenarios
|
|
//! - Portfolio risk metrics (volatility, Sharpe, Sortino, etc.)
|
|
|
|
mod analyzer;
|
|
mod error;
|
|
mod metrics;
|
|
mod monte_carlo;
|
|
mod stress_test;
|
|
mod var;
|
|
|
|
pub use analyzer::RiskAnalyzer;
|
|
pub use error::{Result, RiskAnalyzerError};
|
|
pub use risk_analyzer_shared::{
|
|
MonteCarloResult, RiskAnalysisRequest, RiskAnalysisResult, RiskAnalyzerStatus, RiskAsset,
|
|
RiskConfig, RiskMetrics, RiskPortfolio, StressScenario, StressTestResult, VaRMethod,
|
|
};
|
|
|
|
#[cfg(test)]
|
|
mod tests {
|
|
use super::*;
|
|
|
|
#[test]
|
|
fn test_crate_compiles() {
|
|
let _analyzer = RiskAnalyzer::new();
|
|
}
|
|
|
|
#[test]
|
|
fn test_public_api_exports() {
|
|
let config = RiskConfig::default();
|
|
assert_eq!(config.confidence_level, 0.95);
|
|
assert_eq!(config.time_horizon_days, 1);
|
|
assert_eq!(config.method, VaRMethod::Historical);
|
|
}
|
|
|
|
#[test]
|
|
fn test_stress_scenarios() {
|
|
let scenarios = StressScenario::all_predefined();
|
|
assert_eq!(scenarios.len(), 4);
|
|
}
|
|
}
|