Triple-barrier labels
Every confluence observation is forward-evaluated against three barriers — upper TP (1R / 2R / 3R), lower SL, and a time-out (30 / 60 / 240 / 1440 min). Whichever fires first becomes the label. This is Lopez de Prado, AFML Ch. 3 — replaces the naïve win/loss with multi-class outcomes and a fixed evaluation horizon.
outcome_evaluations.first_barrier_hit ∈ {TP_1R, TP_2R, TP_3R, SL, TIME, NO_FEED}