jgrusewski
26b51a4f99
feat(ml): real validation, transaction costs, and data fixes for DQN/PPO pipeline
Replace stub validation functions with real model inference (DQN greedy,
PPO act()) so early stopping optimizes actual trading performance instead
of market volatility. Add transaction costs (commission + bid-ask spread)
to reward computation across train/hyperopt/evaluate examples.
Key changes:
- Symbol filtering (--symbol ES.FUT) prevents mixing futures contracts
- BTreeMap timestamp dedup handles overlapping .FUT contract bars
- Return clamping (--max-bar-return) filters contract roll boundaries
- Warmup offset alignment fixes feature-to-bar index mismatch
- Kelly sizing: 3 stubs replaced with real data-driven implementations
- Adam optimizer: BUG #14 diagnostic logging demoted to trace
- TFT: varmap_mut() accessor for checkpoint loading
- PPO hyperopt: with_costs() builder for tx cost configuration
DQN eval (ES.FUT, 2 folds): Sharpe=11.36, MaxDD=7.42%, WinRate=33.2%
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 00:43:11 +01:00
..
2026-02-23 15:17:58 +01:00
2025-11-11 23:48:02 +01:00
2026-02-22 20:49:22 +01:00
2026-02-23 00:03:12 +01:00
2026-02-23 10:23:51 +01:00
2026-02-22 23:39:26 +01:00
2025-10-19 09:10:55 +02:00
2025-09-24 23:47:21 +02:00
2026-02-23 01:03:35 +01:00
2026-02-23 15:17:58 +01:00
2026-02-20 19:19:16 +01:00
2026-02-21 23:28:49 +01:00
2026-02-23 09:32:44 +01:00
2026-02-23 21:37:20 +01:00
2026-02-23 23:03:20 +01:00
2026-02-21 23:28:49 +01:00
2026-02-23 01:03:35 +01:00
2026-02-20 19:43:47 +01:00
2026-02-23 11:49:22 +01:00
2026-02-23 00:07:59 +01:00
2026-02-24 00:43:11 +01:00
2026-02-23 09:32:44 +01:00
2026-02-23 01:32:25 +01:00
2026-02-23 01:03:44 +01:00
2026-02-23 11:25:31 +01:00
2026-02-21 23:14:27 +01:00
2026-02-23 01:03:26 +01:00
2025-10-19 09:10:55 +02:00
2026-02-23 01:03:35 +01:00
2025-10-19 09:10:55 +02:00
2026-02-23 10:09:25 +01:00
2026-02-24 00:43:11 +01:00
2026-02-21 14:26:00 +01:00
2026-02-23 11:26:49 +01:00
2026-02-21 23:28:49 +01:00
2026-02-23 13:39:22 +01:00
2026-02-24 00:43:11 +01:00
2026-02-23 01:03:44 +01:00
2025-11-03 10:15:09 +01:00
2026-02-20 13:38:53 +01:00
2025-10-24 01:11:43 +02:00
2026-02-24 00:43:11 +01:00
2026-02-23 00:48:57 +01:00
2026-02-23 01:32:25 +01:00
2026-02-23 20:49:30 +01:00
2026-02-21 21:22:34 +01:00
2026-02-23 01:03:53 +01:00
2026-02-20 18:14:42 +01:00
2026-02-20 18:23:41 +01:00
2026-02-23 09:46:05 +01:00
2026-02-23 09:13:35 +01:00
2025-09-24 23:47:21 +02:00
2025-10-19 09:10:55 +02:00
2026-02-21 23:28:49 +01:00
2025-10-10 23:05:26 +02:00
2025-11-11 23:48:02 +01:00
2026-02-20 19:43:47 +01:00
2026-02-22 20:49:22 +01:00
2025-11-24 10:03:15 +01:00
2026-02-23 11:26:49 +01:00
2026-02-23 11:30:01 +01:00
2025-10-14 09:06:37 +02:00
2026-02-23 10:06:40 +01:00
2026-02-23 18:47:13 +01:00
2025-10-19 09:10:55 +02:00
2026-02-21 23:13:28 +01:00
2026-02-23 10:33:14 +01:00
2026-02-20 19:43:47 +01:00
2025-10-23 09:16:58 +02:00
2026-02-20 19:43:47 +01:00
2025-11-05 02:21:58 +01:00
2025-11-23 19:33:35 +01:00
2026-02-20 19:43:47 +01:00
2025-11-11 23:48:02 +01:00
2025-10-19 09:10:55 +02:00
2026-02-20 18:14:42 +01:00
2025-09-27 20:56:22 +02:00
2025-10-03 07:34:26 +02:00
2026-02-20 19:43:47 +01:00
2026-02-23 00:07:59 +01:00
2025-10-01 21:24:28 +02:00
2026-02-23 18:47:13 +01:00