Phase 1 generalization techniques to close IS/OOS Sharpe gap (+0.57→-1.30). All techniques fully wired from DQNHyperparameters → TOML [generalization] section → ExperienceCollectorConfig → CUDA kernel arguments. New techniques implemented: - #13 Vol normalization: divide return features by realized vol (state_gather) - #18 Asymmetric DD loss: extra penalty on Q-overestimation in drawdown (mse_loss_batched + c51_loss_batched) - #22 Feature noise: N(0, scale) per feature via LCG RNG (state_gather) - #23 Causal feature masking: random 30% feature subset zeroed per epoch (state_gather, mask uploaded from Rust) - #24 Anti-intuitive LR: 3x LR when Sharpe good, 0.3x when bad (Rust-only) - #25 Trade clustering: CV(inter-trade intervals) penalty via ps[3:6] (env_step, uses reserved portfolio state slots) - #27 Ensemble disagreement: Q_target -= weight * ensemble_std (mse_loss + c51_loss, buffer allocated for future ensemble wiring) Also includes 30-task plan doc with all 28+ techniques across 3 phases. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
ml
10-model ML ensemble for the Foxhunt HFT system, built on Candle v0.9.1.
Models
- DQN (Rainbow) — deep Q-network with prioritized replay, dueling heads, noisy nets
- PPO — proximal policy optimization with GAE, LSTM policies, clip-higher
- TFT — temporal fusion transformer for multi-horizon forecasting
- Mamba2 — state space model for sequence prediction
- Liquid Networks — biologically inspired networks for non-stationary data
- TLOB — transformer-based limit order book analysis
- KAN — Kolmogorov-Arnold networks
- xLSTM — extended LSTM architecture
- TGGN — temporal graph neural network
- Diffusion — diffusion-based generative model
Key Modules
ensemble— model ensemble coordination and confidence aggregationhyperopt— PSO-based hyperparameter optimization with per-model adapterstrainers— unified training loops (DQN, PPO, supervised)inference—InferenceAdaptertrait for predictioncheckpoint— model checkpointing and restorationevaluation— walk-forward evaluation pipeline
Usage
use ml::dqn::DQN;
use ml::ppo::PpoTrainer;