# Parameter Importance Analysis

**Created:** 2026-03-13
**Based on:** `optimization_sweep_activation_scores_COINBASE_BTCUSD_1D.csv` (1000 rows)
             and `optimization_sweep_activation_scores_COINBASE_BTCUSD_8H.csv` (1000 rows)
**Note:** These sweeps were produced from AI-narrowed params (before 2026-03-13 reset).
Many weight params had near-zero variance in the sweep data, so their importance
is likely *understated* here. The macro params (VIX, US10Y) had wider ranges and
their signal is more reliable.

---

## Method

Spearman rank correlation between each parameter and the Calmar Ratio across the
top-1000 sweep results. Spearman is used instead of Pearson because the
relationship may be non-linear. Thresholds: |r| > 0.15 = STRONG, > 0.07 = moderate.

Also compared top-quartile vs bottom-quartile means to confirm direction.

---

## 1D Results (COINBASE_BTCUSD)

### Key Findings

| Rank | Parameter | Spearman r | Verdict |
|---|---|---|---|
| 1 | `i_w_vix` | **-0.504** | STRONG: more negative = better Calmar |
| 2 | `i_w_us10y` | **+0.419** | STRONG: higher weight = better Calmar |
| 3 | `i_long_exit_activation_threshold` | **-0.319** | STRONG: lower threshold = better Calmar |
| 4 | `i_long_entry_activation_threshold` | +0.119 | moderate: higher threshold = better |
| 5 | `i_w_btc_spx_corr` | +0.106 | moderate |
| 6 | `i_w_spy` | -0.101 | moderate |
| 7–28 | (all others) | < 0.07 | **weak — effectively noise** |

### Top vs Bottom Quartile Mean Values

| Parameter | Top quartile mean | Bottom quartile mean | Difference |
|---|---|---|---|
| `i_long_exit_activation_threshold` | 51.6 | 71.4 | **-19.9** (lower is better) |
| `i_w_vix` | -70.8 | -54.0 | **-16.8** (more negative is better) |
| `i_long_entry_activation_threshold` | 423.6 | 418.5 | +5.1 |
| `i_w_m2_div_osc` | 96.9 | 94.9 | +2.0 |
| (all others) | — | — | < 2.0 (noise) |

### Interpretation

**VIX weight** (`i_w_vix`, currently template range -60 to +20):
- The strategy strongly prefers a highly negative VIX weight (mean -70.8 in top quartile)
- This means: high VIX → lower activation score → fewer entries during fearful markets
- The optimal value appears to be BELOW the template range floor of -60
- **Action: extend range to -90 or -100 on the lower end**

**US 10-Year Yield weight** (`i_w_us10y`, template range -60 to +20):
- Strong positive correlation — higher weight is better
- Top quartile mean of +13.8 vs template range center of -20
- The optimal region is in the upper half of the range
- **Action: shift range to something like -10 to +30**

**Exit threshold** (`i_long_exit_activation_threshold`, template range 175–830):
- Lower exit threshold significantly better (top Q mean 51.6 vs bot Q mean 71.4)
- These means are both well BELOW the template range floor of 175
- This means the AI-narrowed params had already discovered the right region (low values)
  but the template range is badly miscalibrated — lower exit threshold allows quicker exits
- **Action: reset range to 20–200 step 5 (much lower than current template)**

**Everything else** (stoch, macd, osc, m3, m2, candlestick, btc_dom, dxy, gold):
- All show |r| < 0.07 — effectively noise in this sweep
- This does NOT mean they are unimportant in absolute terms; it means that varying
  them within their current ranges has little marginal effect on the Calmar Ratio
- This is consistent with the coupling issue: once VIX/US10Y/thresholds are right,
  the fine-tuning of other weights matters much less
- **Action: could reduce these to 5–10 values each rather than 20, saving compute**

---

## 8H Results (COINBASE_BTCUSD)

### Key Findings

| Rank | Parameter | Spearman r | Verdict |
|---|---|---|---|
| 1 | `i_use_long_exit_confirmation` | -0.147 | moderate: False = better |
| 2 | `i_long_exit_activation_threshold` | +0.111 | moderate (note: positive, opposite to 1D) |
| 3 | `i_w_m2_div_osc_noOffset` | -0.073 | moderate: lower = better |
| 4–end | (all others) | < 0.07 | weak |

### Interpretation

**8H signals are much weaker** — the Calmar range across the top 1000 was only
0.431–0.531 vs 2.458–2.854 for 1D. Either 8H is genuinely harder to optimize,
or the old narrowed params left insufficient variance to detect importance.

The **exit confirmation being better when disabled** for 8H (opposite to 1D) suggests
the confirmation filter that helps on daily bars may be causing missed exits on shorter
timeframes where the confirmation signal arrives too late.

The **exit threshold correlation is positive** for 8H (+0.11) but negative for 1D (-0.32).
This is a genuine timeframe difference — on 8H, a higher exit threshold gives more
time for a position to develop. On 1D, quick exits protect the Calmar ratio more.

**The 8H analysis needs a fresh wide-range run to be meaningful.** The reset
params applied today will give much better data in the next 8H sweep.

---

## Recommended Parameter Range Updates (1D)

Based on this analysis, before the next serious 1D run:

```json
"i_long_exit_activation_threshold": {"start": 15.0, "stop": 200.0, "step": 5.0},
"i_long_entry_activation_threshold": {"start": 200.0, "stop": 600.0, "step": 20.0},
"i_w_vix":  {"start": -100.0, "stop": -20.0, "step": 5.0},
"i_w_us10y": {"start": -10.0, "stop": 30.0, "step": 2.0}
```

The remaining ~24 weight params can stay at template ranges (or be coarsened to
10 values each instead of 20 to free up sample budget for the above).

---

## Caveats

1. The sweep data came from 1000 top-scoring results (not random), so there is
   selection bias — parameter values that never appeared in the top 1000 aren't
   represented.
2. Spearman captures monotonic relationships only. A parameter with a sweet spot
   in the middle of its range (quadratic relationship) would show near-zero r.
3. Sample size of 1000 gives decent but not definitive estimates — |r| < 0.05
   should be treated as truly uninformative.
4. The 1D sweep was from the over-narrowed AI params — many weight params had
   nearly identical values across all 1000 rows, so their correlations are
   meaningless (they simply didn't vary enough to measure).
