Trigger % — 2% is the only level with a real sample behind it (142 signal clusters). Other levels were never swept.
Expiry — 5 days was a fixed constant in the backtest, not a tested optimum. It is the window every figure here was measured over, so changing it means those figures no longer describe what you are running.
The two filters — tested, but only in-sample, on one account's pool, with thresholds chosen after seeing the data:
| variant | entered | resolved | win | avg | dodged | missed |
| trigger only | 66 | 36 | 64% | −0.14% | 18 | 7 |
| + MA50 slope > −1.5% | 46 | 20 | 70% | +0.70% | 21 | 19 |
| + relVol ≥ 0.1 | 22 | 15 | 80% | +1.60% | 21 | 30 |
| + both | 16 | 10 | 90% | +2.80% | 23 | 33 |
Each filter buys a higher win rate by entering far less: both together took 66 entries down to 16, and missed 33 winners to dodge 23 stops. At n=10 resolved that 90% is a hypothesis, not a setting — which is why both ship blank. The metrics are recorded on every trigger whether or not they gate, so these can be re-scored on forward data instead of another in-sample sweep. The per-signal charts behind every one of these numbers are on Watchlist — one chart per simulated signal, trigger/target/stop drawn in, grouped by how each comparison came out.