fix(rl): loosen loss defense — penalty 0.01→0.001, stop-loss 2.0→5.0

The previous settings overcorrected: penalty=0.01 + threshold=2.0
taught Q that all trading = punishment → model stopped trading
entirely (wr=1.0, dones=0, hold=91%).

Loosened: penalty=0.001 (10× smaller per-step signal), threshold=5.0
(5× initial risk before force-close). This preserves the loss defense
gradient while giving trades room to develop.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-05-27 22:35:59 +02:00
parent fa36d55384
commit 2bdb55cc5b

View File

@@ -2852,8 +2852,8 @@ impl IntegratedTrainer {
(crate::rl::isv_slots::RL_SAC_ALPHA_INDEX, 0.01),
(crate::rl::isv_slots::RL_SAC_ENTROPY_TARGET_INDEX, 1.68),
(crate::rl::isv_slots::RL_CONF_GATE_MAX_HOLD_FRAC_INDEX, 0.85),
(crate::rl::isv_slots::RL_DRAWDOWN_PENALTY_RATE_INDEX, 0.01),
(crate::rl::isv_slots::RL_STOP_LOSS_THRESHOLD_INDEX, 2.0),
(crate::rl::isv_slots::RL_DRAWDOWN_PENALTY_RATE_INDEX, 0.001),
(crate::rl::isv_slots::RL_STOP_LOSS_THRESHOLD_INDEX, 5.0),
];
for (slot, value) in isv_constants.iter() {
let slot_i32 = *slot as i32;