(resample_by: Option<&str>)
| 143 | } |
| 144 | } |
| 145 | |
| 146 | fn returns_from_prices(prices: &DMatrix<f64>) -> Result<DMatrix<f64>, HcaaError> { |
| 147 | if prices.nrows() < 2 { |
| 148 | return Err(HcaaError::NoData); |
| 149 | } |
| 150 | let rows = prices.nrows(); |
| 151 | let cols = prices.ncols(); |
| 152 | let mut out = DMatrix::zeros(rows - 1, cols); |
| 153 | for r in 1..rows { |
| 154 | for c in 0..cols { |
| 155 | let prev = prices[(r - 1, c)]; |
| 156 | if prev == 0.0 { |
| 157 | return Err(HcaaError::NoData); |
| 158 | } |
| 159 | out[(r - 1, c)] = prices[(r, c)] / prev - 1.0; |