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

Function test_pt_sl_levels

crates/openquant/tests/labeling.rs:201–247  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

199fn test_triple_barrier_labeling() {
200 let close = load_close();
201 let prices: Vec<f64> = close.iter().map(|(_, p)| *p).collect();
202 let timestamps: Vec<NaiveDateTime> = close.iter().map(|(ts, _)| *ts).collect();
203 let cusum_events =
204 cusum_filter_timestamps(&prices, &timestamps, Threshold::Scalar(0.02)).unwrap();
205 let daily_vol = get_daily_vol(&close, 100);
206 let vertical_barriers = add_vertical_barrier(&cusum_events, &close, 1, 0, 0, 0);
207
208 // standard labeling
209 let events = get_events(
210 &close,
211 &cusum_events,
212 (1.0, 1.0),
213 &daily_vol,
214 0.005,
215 3,
216 Some(&vertical_barriers),
217 None,
218 );
219 let labels = get_bins(&events, &close);
220 assert_eq!(labels.len(), 8);
221 assert!(labels.iter().all(|(_, _, _, bin, _)| matches!(bin, -1..=1)));
222 let reference = load_reference();
223 assert_labels_match(&labels, &reference["events"]);
224
225 // meta labeling with side=1
226 let side: Vec<(NaiveDateTime, f64)> = close.iter().map(|(ts, _)| (*ts, 1.0)).collect();
227 let meta_events = get_events(
228 &close,
229 &cusum_events,
230 (1.0, 1.0),
231 &daily_vol,
232 0.005,
233 3,
234 Some(&vertical_barriers),
235 Some(&side),
236 );
237 let meta_labels = get_bins(&meta_events, &close);
238 assert_eq!(meta_labels.len(), 8);
239 assert_labels_match(&meta_labels, &reference["meta_events"]);
240 assert!(meta_labels.iter().all(|(_, _, _, bin, _)| matches!(bin, 0 | 1)));
241 assert!(meta_labels.iter().any(|(_, _, _, bin, _)| *bin == 1));
242}
243
244#[test]
245fn test_pt_sl_levels() {
246 let close = load_close();
247 let prices: Vec<f64> = close.iter().map(|(_, p)| *p).collect();
248 let timestamps: Vec<NaiveDateTime> = close.iter().map(|(ts, _)| *ts).collect();
249 let cusum_events =
250 cusum_filter_timestamps(&prices, &timestamps, Threshold::Scalar(0.02)).unwrap();

Callers

nothing calls this directly

Calls 6

cusum_filter_timestampsFunction · 0.85
get_daily_volFunction · 0.85
add_vertical_barrierFunction · 0.85
get_eventsFunction · 0.85
get_binsFunction · 0.85
load_closeFunction · 0.70

Tested by

no test coverage detected