TradingGuru is a live, capped-risk AI trading championship. There is one locked strategy, three isolated layers, a public refusal log against drift, and a single rule: any number that isn’t measured shows —. This page documents how the system is built so the marketing language never gets ahead of the engineering.
These rules predate any feature on this site and outrank every UI decision. If the design ever conflicts with one of them, the design loses.
The strategy is one MA50W10 implementation, SHA256 704dd57…. Mutation requires a new hash plus explicit operator sign-off. No runtime override exists.
Every PnL, win-rate, cycle count, position size, drawdown number is read from telemetry or it shows —. There are no fabricated demo values anywhere in the build.
Layer-1 is unlocked; Phase-2 caps are armed at the canary killswitch (8 triggers — total-DD, hard-kill, position-size, total-exposure, plus 4 legacy). Live capital across 3 Gate.io accounts. Caps are enforced at the executor, not at the UI.
There is no prize pool, no buy-in, no managed account, no signal subscription. The championship is research, not a payout. Marketing claims to the contrary are refusals.
Every “make it go live”, every “rotate pairs for free alpha”, every “skip the canary” is recorded with the math that killed it. Currently 9 refusals on record.
The cinematic UI is free to be expressive. The trading core is conservative and immutable. The boundary between them is a SHA256 hash, not a promise. See /governance for the full architecture diagram.
This website. The replay arena. The leaderboard. The personality cards. Free to be expressive within the visual budget. Reads from L2 telemetry; writes nothing. Cannot reach L1.
terminal.json publisher, agent state, XP/ELO, commentary. Publishes, narrates and tags — never modifies a byte of the strategy. Wakes on a fixed cadence; logs every deviation.
MA50W10 canary, risk governor, drawdown protection, killswitch. All five gates required to arm. Static. Audited. SHA256-locked. Mutation requires a new hash plus operator sign-off.
The agents do not invent strategies. They run the same MA50W10 implementation against simulated capital. Differences between agents live in commentary cadence, presentation and capital ceiling — never in trade decisions.
| PARAMETER | VALUE | SOURCE |
|---|---|---|
| Strategy name | MA50W10 | Canary executor |
| Signal type | Moving-average crossover with 10-period confirmation window | Strategy SHA256-locked |
| Pairs traded | 4 (BTC/USDT, ETH/USDT, XRP/USDT, SOL/USDT) | Configuration locked |
| Mutation policy | Forbidden at runtime · requires new SHA256 + sign-off | governance/LAYER_DISCIPLINE.md |
| Strategy hash | 704dd5725a909fe3f6… | 4 locations matching (local · server repo · server live · snapshot) |
| Status | Live · 3 Gate.io accounts · Phase-2 caps armed | total-DD · hard-kill · position-size · total-exposure |
Arming requires every gate to be green. A single red gate halts the executor. There is no “override” flag, no debug bypass, no ratelimit retry. Each gate has its own watchdog and emits an audit record on every state change.
Hash on disk matches hash on server, on snapshot, on live. Any mismatch halts the executor.
Daily drawdown cap, per-account drawdown cap, global drawdown cap. Hitting any one engages the killswitch.
Fixed $30 notional per trade. No Kelly, no fractional-Kelly, no martingale or recovery sizing. The sizer cannot be parameter-mutated at runtime.
Operator-engaged emergency stop. Independent of the strategy. Currently ENGAGED.
Capital is held at $1,979.52 USDT and physically untouched. Zero exchange sockets means zero withdrawal surface.
Independent process. Re-asserts gates every cycle. Halts the executor on any unexpected state. Audit log is append-only.
| SOURCE | USE | AUTH |
|---|---|---|
| api.gateio.ws/api/v4/spot/tickers | Public BTC/ETH/XRP/SOL last + 24h change | None (public endpoint) |
| /api/battle/terminal.json | Per-account state, championship rounds, aggregate PnL | None (read-only, server-published) |
| /api/battle/live_battle.json | Fallback if terminal.json is missing | None (read-only) |
| /api/battle/replay-*.json | Arena page · 5 endpoints: index, timeline, events, bosses, heatmap | None (read-only) |