fe223b38435ad63a2bd5968d4c7368fec3427690
Three root causes fixed: 1. GPU PER + experience collector (cudarc) created dual CUDA allocator fragmentation on GPUs ≤8 GB, making training impossible even at batch_size=1. Added `use_gpu_replay_buffer` config flag; both GPU PER and experience collector now disabled when VRAM ≤8192 MB. 2. Search space bounds were WIDENED instead of capped — max_batch_size returning 4096 replaced the original 512 upper bound, and max_hidden_dim_base_full returning 3072 replaced the original 1024. Fixed with min() to only narrow, never widen. 3. VRAM estimator assumed GPU features always active, overcharging when they're disabled on small GPUs. Now conditional: when replay_buffer_capacity=0 (proxy for GPU PER disabled), collector/cudarc costs are zero and fragmentation multiplier drops from 3× to 1.5×. Additional small-GPU guard: GPUs ≤8 GB get clamped search space (batch≤128, hidden≤512, atoms≤51, buffer≤50K) to fit 3 regime heads + C51 + noisy nets + dueling in limited VRAM. Validated: 7/7 trials complete on RTX 3050 Ti 4 GB, zero OOM, best trial Sharpe 9.8 with 50.6% win rate. Previous runs had 100% OOM failure rate. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Foxhunt
Production HFT trading system in Rust.
Architecture
The workspace contains 32 crates organized as follows:
Core Libraries (16)
| Crate | Purpose |
|---|---|
trading_engine |
Order processing, FIX 4.4, IB TWS, SIMD, RDTSC timing |
risk |
VaR, Kelly, circuit breakers, kill switches, compliance |
risk-data |
Risk data types and shared structures |
trading-data |
Trading data types |
ml |
DQN Rainbow, PPO, TFT, Mamba2, ensemble inference |
ml-data |
ML data types and feature definitions |
data |
Market data ingestion and storage |
backtesting |
Replay engine, strategy tester |
adaptive-strategy |
Ensemble execution, microstructure analysis |
common |
Shared types, resilience, error handling |
storage |
S3 and local model storage |
model_loader |
Model serialization and loading |
market-data |
Market data feed handlers |
database |
PostgreSQL access layer (SQLx) |
config |
Configuration management |
tli |
CLI commands and tooling |
Services (8)
| Service | Purpose |
|---|---|
backtesting_service |
gRPC backtesting service |
broker_gateway_service |
FIX routing, broker connectivity |
trading_service |
Core trading operations |
ml_training_service |
Model training orchestration |
data_acquisition_service |
Market data acquisition |
trading_agent_service |
Autonomous trading agents |
api_gateway |
gRPC API gateway with auth |
web-gateway |
Axum REST + WebSocket gateway |
Frontend
web-dashboard/ -- React 19 + TypeScript + Vite + TradingView charts.
Building
# Check compilation (no PostgreSQL required)
SQLX_OFFLINE=true cargo check --workspace
# Run tests for a specific crate
SQLX_OFFLINE=true cargo test -p <crate> --lib
# Clippy
SQLX_OFFLINE=true cargo clippy --workspace
ML Models
Four production model architectures on Candle v0.9.1 with CUDA:
- DQN Rainbow -- Deep Q-Network with prioritized replay, dueling heads, noisy nets
- PPO -- Proximal Policy Optimization with GAE and LSTM policies
- TFT -- Temporal Fusion Transformer for multi-horizon forecasting
- Mamba2 -- State space model for sequence prediction
Each model has a standalone trainer and a UnifiedTrainable adapter for the hyperopt pipeline.
Infrastructure
- Git: Gitea at
git.fxhnt.ai(Tailscale-only), Scaleway DEV1-S - Observability: OpenTelemetry OTLP (env
OTEL_EXPORTER_OTLP_ENDPOINT) - Database: PostgreSQL with SQLx offline mode for CI
License
Proprietary. All rights reserved.
Description
Languages
Rust
88.2%
Cuda
7.7%
Python
1.3%
Shell
1.1%
PLpgSQL
0.8%
Other
0.8%