The Edge That Wasn't
All 81 experiments › #7

#7 — LightGBM/SHAP indicator ranking

2026-04-08 to 2026-04-09
Verdict: mixed · 🟡 SHAP rank and trading edge orthogonal
SHAP importance on zigzag labels ranked indicators cheaply (Aroon #1 at M5, bb_width #1 in the 33-indicator study) — but SHAP rank turned out orthogonal to actual trading edge: TEC_5 was SHAP #1 yet ranked #36/43 in the CMA slot-4 sweep, while dead-last sb_a drove the biggest NEAT gains.

Hypothesis — what it tests

Whether SHAP importance from a LightGBM classifier on zigzag swing labels can cheaply rank indicators by their usefulness as NEAT trading inputs, avoiding brute-force combinatorial training.

Description

With 11+ candidate indicators and ~3h of NEAT training per combination, testing all 165 triplets was impossible, so a LightGBM multiclass classifier was trained on zigzag BUY/SELL/FLATTEN labels and SHAP values used to rank features, pairs and triplets. The first pass (12 indicators including a newly added Aroon Oscillator, 12 pairs) put aroon_osc #1 at M5 (SHAP 0.430) and er_norm #1 at H1, and showed M5 and H1 are different signal regimes (swing structure vs momentum). A comprehensive follow-up (33 classic indicators x 12 pairs x 393K M5 bars over 5 years) ranked bb_width #1 (0.427) with classic oscillators beating the ASI-MC derivatives. But the ranking failed as a guide to trading: TEC_5, SHAP #1 (0.490), scored fitness −10 as a NEAT input and ranked #36 of 43 in the later CMA slot-4 sweep, while sb_a — SHAP dead last at #33 (0.004) — was the key feature in the (lookahead-era) 747 p/d S1 run. Verdict: SHAP measures classification power on labels, not entry-timing profitability — the two are orthogonal.

Key result

M5: aroon_osc SHAP 0.430 #1 (1.6x next); H1: er_norm 0.238 #1; 33-indicator study: bb_width 0.427 #1; TEC_5 SHAP #1 (0.490) but NEAT fitness −10 and CMA slot-4 rank #36/43; sb_a SHAP #33 (dead last) yet key feature of the 747 p/d S1 run (later shown lookahead)

Indicators

Aroon OscillatorBollinger band widthStochasticMACD histogramRSI(14)ROC(10)range positionEMA ratiosSuperTrendADXMC(D)MC(dD)Kaufman Efficiency RatioSB_A (ASI swing breakout)hh_asi / hl_asiTEC_5zigzag (labels)

Algorithms

LightGBM multiclass classificationSHAP importance + interaction analysiszigzag labeling

Code

Interactive version (search, filters, figures): the experiment explorer.

← #6 Spread-at-entry fix + Vmax#8 H1 V3 (EUR_GBP + CAD_JPY) →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.