jgrusewski f7697851f7 feat(dqn-v2): Plan 4 Task 2c.3a — GRN trunk param-tensor reshuffle (runtime-broken intentionally)
Plan 4 Task 2c.3a. Build-clean prep commit. Lays down the GRN param-tensor
layout (86 -> 95 tensors) and migrates all 93 padded_byte_offset call
sites + ancillary index references in lockstep. Does NOT swap the trunk
forward — that's Task 2c.3b. Explicit panics at every trunk-forward and
trunk-backward caller ensure any accidental runtime execution fails
loudly rather than producing silent garbage.

Param-tensor reshuffle:
- Delete: W_S1, b_S1, W_S2, b_S2 (old trunk's 4 Linear tensors)
- Insert: 7 h_s1 GRN tensors (W_a, b_a, W_b, b_b, W_residual, gamma, beta)
- Insert: 6 h_s2 GRN tensors (no W_residual — SH1 == SH2 makes residual
  identity)
- All tensor indices >= 4 in OLD layout shift +9 in NEW layout
- NUM_WEIGHT_TENSORS 86->95; FIRST_ISV_TENSOR 68->77

layout_fingerprint_seed() updated. New LAYOUT_FINGERPRINT_CURRENT:
0xcf3a24b0a1f70057 (was 0xa504d3c2f275b8af).

Xavier init paths added for the 13 new tensors:
- W matrices (Linear_a, Linear_b, Linear_residual): Xavier
- LayerNorm gamma_h_s1, gamma_h_s2: 1.0
- LayerNorm beta_h_s1, beta_h_s2: 0.0
- All biases (b_a_h_s1, b_b_h_s1, b_a_h_s2, b_b_h_s2): 0.0

Encoder gates: BatchedForward::encoder_forward_only,
BatchedForward::forward_target_raw, BatchedForward::forward_online_f32,
BatchedBackward::backward_full, GpuDqnTrainer::apply_iqn_trunk_gradient,
GpuDqnTrainer::apply_ensemble_diversity_backward all panic at function
entry. Original bodies preserved (with #[allow(unreachable_code,
unused_variables)]) for Task 2c.3b/c to swap GRN forward + backward
in place.

Spectral-norm descriptor (13 matrices): slots [0]/[1] re-mapped to GRN's
w_a_h_s1/w_a_h_s2 — shapes match legacy W_s1/W_s2 exactly, so the
existing spectral-norm constraint transfers cleanly to the GRN's first
Linear. Linear_b / Linear_residual not yet covered (Task 2c.3c).

Smoke intentionally NOT run. Build-clean is the validation. Task 2c.3b
will swap the encoder forward (gpu_grn::GrnBlock::forward); Task 2c.3c
will swap the trunk backward (gpu_grn::GrnBlock::backward) and run smoke.

Validation:
- cargo check --workspace: 11 baseline warnings (unchanged)
- cargo build -p ml --lib: all 58 cubins compile clean
- 93 padded_byte_offset call sites all migrated; spectral_norm
  descriptor + branch_w_base + decoder_forward_only + value_head
  indices all updated in lockstep per feedback_no_partial_refactor.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-25 12:48:39 +02:00

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
No description provided
Readme 849 MiB
Languages
Rust 88.2%
Cuda 7.7%
Python 1.3%
Shell 1.1%
PLpgSQL 0.8%
Other 0.8%