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

Function get_roll_measure

crates/openquant/src/microstructural_features.rs:29–43  ·  view source on GitHub ↗
(close: &[f64], window: usize)

Source from the content-addressed store, hash-verified

27}
28
29pub fn get_roll_measure(close: &[f64], window: usize) -> Vec<f64> {
30 if close.len() < 2 {
31 return vec![NAN; close.len()];
32 }
33 let mut diff = vec![NAN; close.len()];
34 for i in 1..close.len() {
35 diff[i] = close[i] - close[i - 1];
36 }
37 let mut diff_lag = vec![NAN; close.len()];
38 for i in 1..diff.len() {
39 diff_lag[i] = diff[i - 1];
40 }
41 let cov = rolling_cov(&diff, &diff_lag, window);
42 cov.iter().map(|c| if c.is_nan() { NAN } else { 2.0 * (c.abs()).sqrt() }).collect()
43}
44
45pub fn get_roll_impact(close: &[f64], dollar_volume: &[f64], window: usize) -> Vec<f64> {
46 let roll = get_roll_measure(close, window);

Callers 3

get_roll_impactFunction · 0.85
ms_get_roll_measureFunction · 0.85

Calls 2

rolling_covFunction · 0.85
lenMethod · 0.80

Tested by 1