MCPcopy Create free account
hub / github.com/Open-Quant/openquant / cluster_sharpe

Function cluster_sharpe

crates/openquant/src/hcaa.rs:380–396  ·  view source on GitHub ↗
(
    expected: &[f64],
    cov: &DMatrix<f64>,
    indices: &[usize],
)

Source from the content-addressed store, hash-verified

378}
379
380fn cluster_sharpe(
381 expected: &[f64],
382 cov: &DMatrix<f64>,
383 indices: &[usize],
384) -> Result<f64, HcaaError> {
385 let w = inverse_variance_weights(cov, indices)?;
386 let mut mu = 0.0;
387 for (ii, &i) in indices.iter().enumerate() {
388 mu += w[ii] * expected[i];
389 }
390 let var = cluster_variance(cov, indices)?;
391 if var <= 0.0 {
392 Ok(0.0)
393 } else {
394 Ok(mu / var.sqrt())
395 }
396}
397
398fn quantile(mut values: Vec<f64>, q: f64) -> f64 {
399 if values.is_empty() {

Callers 1

recursive_bisectionFunction · 0.85

Calls 2

inverse_variance_weightsFunction · 0.70
cluster_varianceFunction · 0.70

Tested by

no test coverage detected