Skip to content

Version History

Gordon's evolution through seven major versions. Each version represents a fundamentally different approach or era. Archive contents are preserved as decision logs to prevent re-investigating dead ends.

v0 — FVG/Tunnel Era (Abandoned)

Approach: Fair Value Gap detection + EMA tunnel signals, with an XGBoost classifier to score signal quality. Single-asset (BTC only).

What was tried: FVG detection, EMA tunnels, XGBoost classifier on 9 planned lab phases.

What was learned: ML ceiling at AUC 0.567. Wrong problem formulation — signal quality classification is regime-dependent. Single-asset fragility.

Why abandoned: The underlying signal had a thin, fragile edge that did not survive honest testing.

v1 — Meta-Labeling Era (Superseded)

Approach: Meta-labeling (Lopez de Prado), triple barrier labeling, HMM regime detection, fractional differentiation, CPCV validation. Multi-asset (BTC + ETH + SOL).

Results: AUC 0.81, precision at threshold 0.68. Equity simulations: all negative across 60 configurations.

What was learned: Statistical validation does not equal profitable strategy. A model can be excellent at classification and still lose money after costs, slippage, and microstructure effects.

Why superseded: Pivoted to rule-based strategies (v2). ML remains an option for overlays, not base signals.

v2 — Donchian Ensemble Era (Complete)

Approach: Donchian Channel Ensemble — 9 lookback periods, sticky signals, combo scoring. Academically backed by Zarattini et al. (2025).

Results: Sharpe 0.34–0.59 on BTC/ETH/SOL (vs paper's 1.58). Gap diagnosed as under-diversification (3 assets vs 20) + static D1 timeframe + fixed exits.

What carried forward: Backtest engine, parity tests, overlay infrastructure, database schema.

v3 — Alpha-Seeking Era (Complete)

Approach: Find 3–5 uncorrelated strategies that combine into a portfolio Sharpe > 1.5. Multi-strategy, multi-asset, multi-timeframe.

Research outputs: 12 research documents. Identified best candidates: Supertrend 3.0 (Sharpe 0.90), EWMAC ensemble (Sharpe 0.90), PSAR tight (Sharpe 0.69–1.43). Confirmed: TSMOM > XSMOM in crypto, simple > complex, long-only structural bias. Identified VPIN as strongest unimplemented signal.

v4 — Execution Era (Complete)

Approach: Implement v3 research findings. Harden database, port strategies to Rust, build UI cockpit, deploy to production.

Key deliveries: Database hardening (SQLite removal, schema conventions), full Rust strategy migration, gordon-trading production-ready, gordon-ui for monitoring, ARM64 CI, Docker Compose deploy, monitoring with Prometheus + Grafana.

v4 retrospective: 130-backtest strategy sweep. Donchian retired (median Sharpe 0.08). Supertrend, EWMAC, PSAR confirmed as the validated portfolio.

v5 — Polish and Control Era (Complete)

Approach: Branding, docs, bot control from UI. Polish pass across the monolith.

Key deliveries: Visual polish (DaisyUI gold theme), documentation wiring, bot control dashboard, Loki log viewer, deployment automation.

v6 — Monolith Production Era (Retired)

Stack: gordon-trading (Rust monolith) + gordon-ui (TypeScript + FastAPI). Deployed to srv-swiss, then srv-apps.

Retired: 2026-05-01. Runtime moved to srv-apps. Monolith repos retained locally for reference — zero production footprint. srv-swiss retired as Gordon runtime host.

v7 — Split Topology (Current)

Approach: Decompose the monolith into five focused Rust services + six kellnr-published library crates + Next.js console + Python lab + one-shot migrator.

Motivations: Per-crate semver discipline, independent deployment, ~60% rebuild-surface reduction after the split, hard ownership boundaries enforceable by DB roles and CI.

Key retirements at v7:

RetiredDateReplacement
gordon-core crate2026-04-24 (H2b)Absorbed into gordon-exchange::core
gordon-contracts crate2026-05-15Split into gordon-kernel (errors + trace), gordon-domain (types + execution trait), gordon-protocol (bus wire)
Paper-trading simulatorgordon-exchange 3.0.0Binance testnet is the forward-test gate
srv-swiss as runtime host2026-05-01srv-apps (Pi5, ARM64) hosts the v7 stack

Current state: Five services, six library crates, Next.js console, Python lab, one-shot migrator — all deployed to srv-apps. Bricks 0–3 live. Story 24 (staged cutover with live bots) and r-06 (30-day testnet trial) gate production trading.

Event bus: NATS JetStream stream gordon-bus replaced PostgreSQL LISTEN/NOTIFY on all hot paths (klines, intents, risk commands, risk events) in the 2026-05-08 big-bang migration.

Gordon — keep compounding without blowing up