Walk-forward — out-of-sample by fold?
Each fold trains on 18 contiguous months and is scored ONCE on the 3
months immediately after. Training and testing are always in the same market era, which
the fixed train/holdout design was not. TEST columns are genuine out-of-sample; nothing
here informed any design decision.
Random-genome null — did the search actually find anything??
Pure random search, no evolution, identical scoring path. The GA
must beat this line for its training fitness to mean anything. Caveat: random
genomes churn and bleed fees, so part of any GA margin may be learning to trade less
rather than learning an edge — the turnover-matched comparison separates those.
What the champion used — ablation importance (measured)?
Each input set to its median and the champion re-run over all 16 training
windows. Red = removing it hurt, so it was genuinely used. Green = the champion was
better off without it.
Learned convolution filters over the price window?
Eight 16-tap filters slid across the normalised 200-bar window. Left = oldest
bar of the receptive field, right = newest. A row rising left-to-right detects slope; an
alternating row detects oscillation.
Input → action attribution (w1·w2)?
Comparable across rows only because every feature was standardised to unit
scale.