Major Changes: - Migrated from 3-action TradingAction to 45-action FactoredAction - 45 actions: 5 exposure × 3 order types × 3 urgency levels - Absolute exposure model (target positions -1.0 to +1.0) - Transaction cost differentiation (Market 0.15%, LimitMaker 0.05%, IoC 0.10%) - Fixed action diversity threshold (1.11% → 0.5% for 45-action space) Bug Fixes: - Bug #15: Incomplete FactoredAction integration (code existed but unused) - Bug #16: Runtime crash in action diversity checking (hardcoded 3-action match) Code Changes (13 files, ~464 lines): - ml/src/dqn/action_space.rs: Core FactoredAction + 4 helper methods - ml/src/trainers/dqn.rs: Action diversity refactored (3→45 dynamic) - ml/src/dqn/reward.rs: calculate_reward() signature updated - ml/src/dqn/portfolio_tracker.rs: execute_action() absolute exposure - ml/src/dqn/dqn.rs: WorkingDQN action selection migrated - ml/tests/*.rs: 9 test files updated with FactoredAction assertions Test Results: - 1-epoch smoke test: 100% action diversity (45/45 actions, 80.2s) - 10-epoch production: 87.8% readiness (79/90 scorecard, 14.0 min) - Loss convergence: 96.9% reduction (119K → 3.6K) - Action diversity: 100% → 44% (healthy specialization) - Checkpoint reliability: 12/12 files saved (100%) - DQN tests: 195/195 passing (100%) - ML baseline: 1,514/1,515 passing (99.93%) Production Status: ✅ CERTIFIED (87.8% readiness) Go/No-Go: ✅ GO FOR 100-EPOCH PRODUCTION TRAINING 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
6.4 KiB
6.4 KiB
2025-11-10T14:33:41.929186Z INFO ml::dqn::dqn: Step 100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:42.522851Z INFO ml::dqn::dqn: Step 200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:43.117466Z INFO ml::dqn::dqn: Step 300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:43.715483Z INFO ml::dqn::dqn: Step 400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:44.307823Z INFO ml::dqn::dqn: Step 500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:44.900949Z INFO ml::dqn::dqn: Step 600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:45.491651Z INFO ml::dqn::dqn: Step 700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:46.085960Z INFO ml::dqn::dqn: Step 800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:46.676993Z INFO ml::dqn::dqn: Step 900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:47.269100Z INFO ml::dqn::dqn: Step 1000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:47.881245Z INFO ml::dqn::dqn: Step 1100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:48.474821Z INFO ml::dqn::dqn: Step 1200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:49.077812Z INFO ml::dqn::dqn: Step 1300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:49.678436Z INFO ml::dqn::dqn: Step 1400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:50.275038Z INFO ml::dqn::dqn: Step 1500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:50.872436Z INFO ml::dqn::dqn: Step 1600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:51.465384Z INFO ml::dqn::dqn: Step 1700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:52.073053Z INFO ml::dqn::dqn: Step 1800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:52.661987Z INFO ml::dqn::dqn: Step 1900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:53.261927Z INFO ml::dqn::dqn: Step 2000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:53.859201Z INFO ml::dqn::dqn: Step 2100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:54.450309Z INFO ml::dqn::dqn: Step 2200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:55.038278Z INFO ml::dqn::dqn: Step 2300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:55.630002Z INFO ml::dqn::dqn: Step 2400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:56.229202Z INFO ml::dqn::dqn: Step 2500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:56.818293Z INFO ml::dqn::dqn: Step 2600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:57.469901Z INFO ml::dqn::dqn: Step 2700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:58.153723Z INFO ml::dqn::dqn: Step 2800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:58.818471Z INFO ml::dqn::dqn: Step 2900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:59.489307Z INFO ml::dqn::dqn: Step 3000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:00.157888Z INFO ml::dqn::dqn: Step 3100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:00.822654Z INFO ml::dqn::dqn: Step 3200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:01.487212Z INFO ml::dqn::dqn: Step 3300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:02.152448Z INFO ml::dqn::dqn: Step 3400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:02.816801Z INFO ml::dqn::dqn: Step 3500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:03.481754Z INFO ml::dqn::dqn: Step 3600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:04.148914Z INFO ml::dqn::dqn: Step 3700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:04.814539Z INFO ml::dqn::dqn: Step 3800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:05.479113Z INFO ml::dqn::dqn: Step 3900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:06.144318Z INFO ml::dqn::dqn: Step 4000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:06.828958Z INFO ml::dqn::dqn: Step 4100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:07.495516Z INFO ml::dqn::dqn: Step 4200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:08.160254Z INFO ml::dqn::dqn: Step 4300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:08.478984Z INFO ml::trainers::dqn: Epoch 1/10: train_loss=9.404993, Q-value=5.7405, Q_std=256.94, Q_range=633.60, 0.224886
2025-11-10T14:35:10.136166Z INFO ml::dqn::dqn: Step 4400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:10.726555Z INFO ml::dqn::dqn: Step 4500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:11.314948Z INFO ml::dqn::dqn: Step 4600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:11.916583Z INFO ml::dqn::dqn: Step 4700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:12.508893Z INFO ml::dqn::dqn: Step 4800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:13.096189Z INFO ml::dqn::dqn: Step 4900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:42.522851Z INFO ml::dqn::dqn: Step 200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:43.117466Z INFO ml::dqn::dqn: Step 300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:43.715483Z INFO ml::dqn::dqn: Step 400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:44.307823Z INFO ml::dqn::dqn: Step 500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:44.900949Z INFO ml::dqn::dqn: Step 600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:45.491651Z INFO ml::dqn::dqn: Step 700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:46.085960Z INFO ml::dqn::dqn: Step 800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:46.676993Z INFO ml::dqn::dqn: Step 900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:47.269100Z INFO ml::dqn::dqn: Step 1000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:47.881245Z INFO ml::dqn::dqn: Step 1100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:48.474821Z INFO ml::dqn::dqn: Step 1200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:49.077812Z INFO ml::dqn::dqn: Step 1300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:49.678436Z INFO ml::dqn::dqn: Step 1400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:50.275038Z INFO ml::dqn::dqn: Step 1500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:50.872436Z INFO ml::dqn::dqn: Step 1600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:51.465384Z INFO ml::dqn::dqn: Step 1700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:52.073053Z INFO ml::dqn::dqn: Step 1800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:52.661987Z INFO ml::dqn::dqn: Step 1900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:53.261927Z INFO ml::dqn::dqn: Step 2000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:53.859201Z INFO ml::dqn::dqn: Step 2100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:54.450309Z INFO ml::dqn::dqn: Step 2200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:55.038278Z INFO ml::dqn::dqn: Step 2300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:55.630002Z INFO ml::dqn::dqn: Step 2400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:56.229202Z INFO ml::dqn::dqn: Step 2500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:56.818293Z INFO ml::dqn::dqn: Step 2600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:57.469901Z INFO ml::dqn::dqn: Step 2700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:58.153723Z INFO ml::dqn::dqn: Step 2800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:58.818471Z INFO ml::dqn::dqn: Step 2900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:33:59.489307Z INFO ml::dqn::dqn: Step 3000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:00.157888Z INFO ml::dqn::dqn: Step 3100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:00.822654Z INFO ml::dqn::dqn: Step 3200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:01.487212Z INFO ml::dqn::dqn: Step 3300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:02.152448Z INFO ml::dqn::dqn: Step 3400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:02.816801Z INFO ml::dqn::dqn: Step 3500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:03.481754Z INFO ml::dqn::dqn: Step 3600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:04.148914Z INFO ml::dqn::dqn: Step 3700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:04.814539Z INFO ml::dqn::dqn: Step 3800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:05.479113Z INFO ml::dqn::dqn: Step 3900 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:06.144318Z INFO ml::dqn::dqn: Step 4000 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:06.828958Z INFO ml::dqn::dqn: Step 4100 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:07.495516Z INFO ml::dqn::dqn: Step 4200 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:08.160254Z INFO ml::dqn::dqn: Step 4300 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:34:08.478984Z INFO ml::trainers::dqn: Epoch 1/10: train_loss=9.404993, Q-value=5.7405, Q_std=256.94, Q_range=633.60, 0.224886
2025-11-10T14:35:10.136166Z INFO ml::dqn::dqn: Step 4400 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:10.726555Z INFO ml::dqn::dqn: Step 4500 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:11.314948Z INFO ml::dqn::dqn: Step 4600 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:11.916583Z INFO ml::dqn::dqn: Step 4700 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:12.508893Z INFO ml::dqn::dqn: Step 4800 Diagnostics: 0.00, dead_neurons=0.00%
2025-11-10T14:35:13.096189Z INFO ml::dqn::dqn: Step 4900 Diagnostics: 0.00, dead_neurons=0.00%