(
events: Vec<(String, f64, f64, i8, Option<f64>)>,
min_pct: f64,
)
| 297 | let parsed: Vec<(chrono::NaiveDateTime, f64, f64, i8, Option<f64>)> = events |
| 298 | .into_iter() |
| 299 | .filter_map(|(ts_str, ret, trgt, label, side)| { |
| 300 | let ts = chrono::NaiveDateTime::parse_from_str(&ts_str, "%Y-%m-%d %H:%M:%S").ok()?; |
| 301 | Some((ts, ret, trgt, label, side)) |
| 302 | }) |
| 303 | .collect(); |
| 304 | |
| 305 | let result = openquant::labeling::drop_labels(&parsed, min_pct); |
| 306 | result |
| 307 | .into_iter() |
| 308 | .map(|(ts, ret, trgt, label, side)| { |
| 309 | (ts.format("%Y-%m-%d %H:%M:%S").to_string(), ret, trgt, label, side) |
| 310 | }) |
| 311 | .collect() |
| 312 | } |
| 313 | |
| 314 | pub fn register(py: Python<'_>, parent: &Bound<'_, PyModule>) -> PyResult<()> { |
| 315 | let m = PyModule::new(py, "labeling")?; |
| 316 | m.add_function(wrap_pyfunction!(labeling_add_vertical_barrier, &m)?)?; |
| 317 | m.add_function(wrap_pyfunction!(labeling_triple_barrier_events, &m)?)?; |
| 318 | m.add_function(wrap_pyfunction!(labeling_triple_barrier_labels, &m)?)?; |
| 319 | m.add_function(wrap_pyfunction!(labeling_meta_labels, &m)?)?; |
| 320 | m.add_function(wrap_pyfunction!(labeling_get_events, &m)?)?; |
| 321 | m.add_function(wrap_pyfunction!(labeling_get_bins, &m)?)?; |
nothing calls this directly
no test coverage detected