0171c8c0ea91015bc91912259832939bb63df79a
3-fold A/B CV (5d42ab0e9vseb51c0f9c, same data splits) showed ISV winning the aggregate (+0.9pt mean_auc, +1.8pt h6000 across folds) but FOLD-2 regressed -1.3pt on h6000 while folds 0 and 1 both gained (+2.0pt and +4.6pt respectively). Per-fold per-horizon breakdown showed exactly the failure mode: Fold 0 (val 2025-Q1): h6000 no-ISV 0.714 → ISV 0.734 (+2.0pt) Fold 1 (val 2025-Q2): h6000 no-ISV 0.682 → ISV 0.728 (+4.6pt) Fold 2 (val 2025-Q3): h6000 no-ISV 0.698 → ISV 0.685 (-1.3pt) In folds 0 and 1, h6000 was the hardest horizon — ISV correctly boosted it (lambda > 1). In fold 2 the regime made h6000 relatively easy at no-ISV (0.698 vs the worst horizon at ~0.70). ISV's SYMMETRIC clamp [0.5, 2.0] then computed ratio = ema_h6000 / mean_ema < 1 and DEMOTED h6000's trunk-gradient pull below uniform, starving further learning on the horizon we actually deploy. Per `pearl_audit_unboundedness_for_implicit_asymmetry.md`: when a control signal serves an asymmetric goal (here: we never want to de-prioritize h6000, only ever boost it OR leave it alone), encode that asymmetry in the clamp. LAMBDA_FLOOR 0.5 → 1.0 makes the controller boost-only: under-trained horizons get more pull, but no horizon is ever demoted below its uniform contribution. Expected effect with asymmetric clamp: - Fold 0 and 1: lambda for the hardest horizon stays at 2.0 (ceiling-clamped), trunk-gradient lift unchanged. The gains +2.0pt and +4.6pt should hold. - Fold 2: h6000's lambda was being demoted to ~0.74; now floored at 1.0 — the -1.3pt h6000 regression should disappear. h6000 trains at uniform weight, recovering toward 0.698. - Cross-fold mean projected: ~0.724 (+1.3pt vs no-ISV). Test update: `horizon_ema_and_lambda_track_after_training` now asserts lambda ∈ [1.0, 2.0] (the asymmetric envelope) and lambda mean ∈ [1.0, 2.0] (boost-only guarantee). Observed values on the test data: lambda = [1.13, 1.00, 1.08, 1.08, 1.00] — the two easier horizons correctly floor at 1.00 instead of demoting. Validation: 7 perception_overfit tests pass, synthetic overfit trajectory unchanged (0.36 → 0.0006), 26 ml-alpha lib + 23 integration tests green. Co-Authored-By: Claude Opus 4.7 <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%