pub fn sharpe_ratio(returns: &[f64], risk_free_rate: f64) -> FinanceResult<f64>Expand description
Sharpe ratio: (mean - risk_free) / volatility over the return series.
§Examples
use finance_solution::{sharpe_ratio, FinanceError};
assert!(sharpe_ratio(&[0.02, 0.01, 0.03], 0.0).is_ok());
// Constant returns → zero volatility → undefined Sharpe.
match sharpe_ratio(&[0.01, 0.01, 0.01], 0.0) {
Err(FinanceError::Unsolvable { message }) => assert!(message.contains("volatility")),
other => panic!("expected Unsolvable, got {other:?}"),
}