jgrusewski
0bbe97ed85
feat(dqn-v2): D.4c conviction consistency bonus — reward stable pre-entry deliberation
Plan 3 Task 6c.
Portfolio-state tail-append:
- PS_PRE_ENTRY_CONVICTION_EMA = 41 (EMA mean of conviction_core during Flat)
- PS_PRE_ENTRY_CONVICTION_VAR_EMA = 42 (EMA of squared deviations)
- PS_STRIDE 41 -> 43
- All 6 hardcoded-stride sites migrated in lockstep
Producer (experience_kernels.cu Flat branch):
- Per-bar EMA update alpha=0.05 (matches Task 1 reward-ema convention)
- Welford-style: delta = c - mean; var_ema = (1-alpha)*(var + alpha*delta^2)
Consumer (experience_kernels.cu entering_trade block):
- ratio = stddev/mean; stability = clamp(0, 1, 1 - ratio/0.2)
- Fires only when ratio < 0.2 (stable pre-entry conviction)
- bonus = shaping x vol_proxy x stability x conviction_core
- All multiplicands in [0,1] except vol_proxy (<=0.01); max bonus ~ 0.01
- Mirrors B.2 novelty-bonus structure — one bounded shape replaced (novelty -> stability)
- rc[5] += bonus; both EMA slots reset at entry, reversal, fold/episode boundary
Per pearl_one_unbounded_signal_per_reward.md: exactly ONE unbounded
multiplicand (vol_proxy); all others bounded. No `q_scale x |reward|`
style blowout possible.
No new ISV slot.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 01:10:03 +02:00
..
2026-02-23 11:19:58 +01:00
2026-03-11 22:00:13 +01:00
2026-04-25 00:51:10 +02:00
2026-04-24 18:28:19 +02:00
2026-04-24 20:36:46 +02:00
2026-04-25 01:10:03 +02:00
2026-04-24 23:11:20 +02:00
2026-04-24 20:18:59 +02:00