The two axes — at a glance.
nstep_horizons → how many HEADS, and which n-step target each learns → H = 4 num_quantiles → how many QUANTILES describe each head's distribution → nq = 32
32 is "how finely" each head describes the return distribution; [4, 8, 12, 16] is "how many different n-step estimates" of the same Q*. num_quantiles can be changed independently — it does not affect the heads, each head simply becomes Linear(hidden, nq) with a different nq.
Distributional regulators (per horizon).
q_crossing_coeff. Penalty for monotonicity violations of the quantile distribution — applied along the 32-quantile axis, within each of the 4 horizons.
actor_cvar_aux_coeff / cvar_alpha. CVaR is evaluated on the 32-quantile axis inside each horizon; the tail-aware actor target draws on every horizon's left tail.
Branch regulators (inherited). action_l2, action_diversity, direction_inbalance — deadzone-gated per-symbol anti-pattern penalties, Phase 19-20 branch-isolation principle preserved.