Files
foxhunt/crates/ml/config/best_hyperparameters.yaml
jgrusewski 9c3d741a08 refactor: restructure repo — crates/, bin/, testing/ layout
Move 17 library crates into crates/, CLI binary into bin/fxt,
consolidate 10 test crates into testing/, split config crate
from deployment config files.

Root directory reduced from 38+ to ~17 directories.
All Cargo.toml paths and build.rs proto refs updated.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 11:56:00 +01:00

168 lines
4.9 KiB
YAML

# Best Hyperparameters for ML Models
#
# These hyperparameters are the result of Optuna tuning studies
# or manual optimization. Update this file when better parameters
# are discovered through tuning or experimentation.
#
# Last Updated: 2025-10-14
# Tuning Method: Manual (defaults based on research)
# Next Tuning: 2025-01-15 (post-Q4 retraining)
# DQN (Deep Q-Network)
dqn:
learning_rate: 0.0001
batch_size: 128
gamma: 0.99
epsilon_start: 1.0
epsilon_end: 0.01
epsilon_decay: 0.995
buffer_size: 100000
epochs: 200
checkpoint_frequency: 20
early_stopping_enabled: true
q_value_floor: 0.5
min_loss_improvement_pct: 2.0
plateau_window: 30
min_epochs_before_stopping: 50
# Tuning notes:
# - Batch size 128 optimal for RTX 3050 Ti (4GB VRAM)
# - Learning rate 0.0001 provides stable convergence
# - Epsilon decay 0.995 balances exploration vs exploitation
# PPO (Proximal Policy Optimization)
ppo:
learning_rate: 0.0003
batch_size: 64
gamma: 0.99
gae_lambda: 0.95
clip_epsilon: 0.2
value_loss_coef: 0.5
entropy_coef: 0.01
epochs: 200
checkpoint_frequency: 20
early_stopping_enabled: true
min_loss_improvement_pct: 1.5
plateau_window: 30
# Tuning notes:
# - Batch size 64 to fit both actor and critic in GPU memory
# - Clip epsilon 0.2 standard PPO value
# - Entropy coef 0.01 encourages exploration
# MAMBA-2 (State Space Model)
mamba2:
learning_rate: 0.0001
batch_size: 32
gamma: 0.99
state_size: 16
d_model: 128
n_layers: 4
expansion_factor: 2
epochs: 150
checkpoint_frequency: 15
early_stopping_enabled: true
min_loss_improvement_pct: 2.5
plateau_window: 20
# Tuning notes:
# - Batch size 32 due to large model size (150-500MB)
# - State size 16 captures sufficient market dynamics
# - 4 layers provides good depth without overfitting
# TFT (Temporal Fusion Transformer)
tft:
learning_rate: 0.001
batch_size: 64
gamma: 0.99
hidden_size: 128
num_heads: 4
num_layers: 3
dropout: 0.1
epochs: 100
checkpoint_frequency: 10
early_stopping_enabled: true
min_loss_improvement_pct: 2.0
plateau_window: 15
# Tuning notes:
# - Higher learning rate 0.001 works well for TFT
# - 4 attention heads balance computation vs capacity
# - Dropout 0.1 prevents overfitting on financial data
# TLOB (Temporal Limit Order Book)
tlob:
# TLOB is inference-only (rules-based engine)
# No training hyperparameters needed
inference_only: true
features:
- price_levels: 10
- volume_imbalance: true
- microstructure_features: 51
notes: |
TLOB model does not require training. It uses rules-based
microstructure analytics on Level-2 order book data.
Training would require tick-by-tick order book snapshots,
which are not currently available in our data pipeline.
# LIQUID (Liquidity Neural Network)
liquid:
learning_rate: 0.0005
batch_size: 64
gamma: 0.99
hidden_size: 64
num_liquid_layers: 2
epochs: 120
checkpoint_frequency: 12
early_stopping_enabled: true
# Tuning notes:
# - Liquid networks are efficient, can use moderate batch size
# - 2 liquid layers provide good temporal dynamics
# Global Training Settings
global:
device: "cuda" # Use GPU if available, fallback to CPU
precision: "fp32" # fp32 for stability, fp16 for speed (if GPU supports)
gradient_clipping: 1.0 # Prevent exploding gradients
weight_decay: 0.0001 # L2 regularization
seed: 42 # For reproducibility
num_workers: 4 # Data loading parallelism
pin_memory: true # Faster GPU transfer
# Quality Gate Thresholds
quality_gates:
min_sharpe: 1.5
min_win_rate: 0.55
max_drawdown: 0.25
min_trades: 100
min_profit_factor: 1.3
# Data Configuration
data:
training_split: 0.7 # 70% training
validation_split: 0.15 # 15% validation
test_split: 0.15 # 15% test (holdout)
sequence_length: 100 # For sequential models (MAMBA, TFT)
lookback_window: 50 # Technical indicator lookback
symbols:
- ES.FUT # E-mini S&P 500
- NQ.FUT # Nasdaq-100 futures
- ZN.FUT # 10-Year Treasury Note
- 6E.FUT # Euro FX futures
# Checkpoint Configuration
checkpoints:
compression: "zstd" # Compress checkpoints to save space
format: "safetensors" # Use SafeTensors format (Hugging Face standard)
max_checkpoints_per_model: 5 # Keep last 5 checkpoints per model
auto_cleanup: true # Delete old checkpoints automatically
validate_checksums: true # Verify integrity with SHA-256
# Optuna Tuning Configuration (for future tuning runs)
optuna:
n_trials: 50
timeout_seconds: 28800 # 8 hours max per tuning session
study_name_prefix: "foxhunt"
sampler: "TPE" # Tree-structured Parzen Estimator
pruner: "MedianPruner" # Early stop poor trials
objective: "sharpe_ratio" # Optimize for risk-adjusted returns
direction: "maximize"
n_jobs: 1 # Sequential trials (GPU memory constraint)
storage: "postgresql://foxhunt:foxhunt_dev_password@localhost:5432/foxhunt"