jgrusewski 39d4577b77 feat(sp21): T2.2 Phase 8.1 — signal-drive agree_thr clamp bounds via val_sharpe_std (atomic)
Closes the last hardcoded anchor in compute_agreement_threshold per
pearl_controller_anchors_isv_driven. Smoke-driven motivation: the
9-cycle smoke run of commit 1d2dd38a1 (Phases 1.5..8) produced
monotonic agree_thr loosening from 1.30 → 10.00, hitting the
hardcoded upper clamp on cycle 9.

Bound formula:
  scale = (1.0 + val_sharpe_std × 2.0).clamp(1.0, 5.0)
  lo = 0.01 / scale
  hi = 10.0 × scale

Bound behaviour:
  val_sharpe_std=0 (cold)    → scale=1.00 → [0.01, 10.0]  (= pre-8.1 baseline)
  val_sharpe_std=0.05 (mild) → scale=1.10 → [0.009, 11.0]
  val_sharpe_std=0.30 (noisy)→ scale=1.60 → [0.006, 16.0]
  val_sharpe_std≥2.0 (extreme) → scale=5.00 → [0.002, 50.0]  (Invariant 1 ceiling)

The 2.0× multiplier and [1.0, 5.0] scale clamp are themselves
hardcoded but explicitly Invariant 1 carve-outs (numerical-
stability bounds on the bound formula, NOT controller anchors).
The recursion terminates at structural floors/ceilings per
pearl_wiener_alpha_floor_for_nonstationary's canonical pattern —
making meta-meta-meta-bounds signal-driven gains nothing.

Cold-start preservation: prior special-case short-circuit
returned current.clamp(0.01, 10.0). New formula reduces to that
exact behaviour when std=0 (scale=1, lo=0.01, hi=10.0). The
short-circuit is retained for explicit "no update on cold start"
semantics. No behavioural regression at cold-start.

Files changed:
- crates/ml/src/trainers/dqn/trainer/enrichment.rs: compute_agreement_
  threshold clamp refactor (single-function change, no ABI churn)
- docs/dqn-wire-up-audit.md: 2026-05-11 audit entry with full
  smoke cycle table

Verification (passing):
- cargo check -p ml --tests --features cuda: 0 errors
- cargo test -p ml --lib sp21_isv_slots: 3/3
- sp20_aggregate_inputs_test: 12/12
- sp20_phase1_4_wireup_test: 2/2
- sp20_emas_compute_test: 4/4
- sp20_controllers_compute_test: 7/7
- sp21_per_trade_predicted_q_test: 3/3
Total: 34 tests, 0 failures. Behavioral gate: a repeat smoke
should show agree_thr breaking past 10.0 as val_sharpe_std
drives bounds outward.

SP21 T2.2 cascade — FULLY COMPLETE after this commit. 12 atomic
commits, no hardcoded anchors remaining in enrichment controllers
(only Invariant 1 stability carve-outs on bound-on-bound formulas,
which terminate the recursion).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 07:44:25 +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%