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:
| Retired | Date | Replacement |
|---|---|---|
gordon-core crate | 2026-04-24 (H2b) | Absorbed into gordon-exchange::core |
gordon-contracts crate | 2026-05-15 | Split into gordon-kernel (errors + trace), gordon-domain (types + execution trait), gordon-protocol (bus wire) |
| Paper-trading simulator | gordon-exchange 3.0.0 | Binance testnet is the forward-test gate |
| srv-swiss as runtime host | 2026-05-01 | srv-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.