feat: ISV-adaptive micro-reward weights — regime routing adjusts reward composition

Volatile regime → price confirmation weighted higher (momentum matters)
Stable regime → book aggression + hold quality weighted higher
Regime transition → hold quality drops (don't hold through shifts)

Uses ISV signals[11] (regime_stability) and signals[2] (volatility)
already available in env_step_batch. Zero new parameters — the temporal
attention pipeline drives reward composition through ISV routing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-04-20 08:59:43 +02:00
parent 8394e17224
commit 7923d6ff24

View File

@@ -1789,11 +1789,22 @@ extern "C" __global__ void experience_env_step(
hold_quality = sign_pos * hold_return / fmaxf(atr_pct, 1e-6f);
}
/* Composite quality */
/* ISV-adaptive reward weights: regime routing adjusts micro-reward composition.
* Volatile regime → weight momentum (price_confirm) higher.
* Stable regime → weight book aggression + hold quality higher.
* Regime transition (low stability) → reduce hold quality (don't hold through shifts). */
float regime_stab = (isv_signals_ptr != NULL) ? isv_signals_ptr[11] : 0.5f;
float volatility = (isv_signals_ptr != NULL) ? isv_signals_ptr[2] : 0.5f;
float w_price = price_confirm_weight * (0.5f + 0.5f * volatility);
float w_book = book_aggression_weight * (0.5f + 0.5f * regime_stab);
float w_hold = hold_quality_weight * regime_stab;
/* Composite quality — regime-adaptive */
float quality = flow_momentum * (1.0f + vol_informed)
+ price_confirm_weight * price_confirm
+ book_aggression_weight * sign_pos * book_aggression
+ hold_quality_weight * hold_quality
+ w_price * price_confirm
+ w_book * sign_pos * book_aggression
+ w_hold * hold_quality
- spread_penalty;
reward = micro_reward_scale * tanhf(quality / micro_reward_temp);
} else if (!segment_complete && fabsf(position) > 0.001f) {