Crypto arena
Seven traders compete in the crypto market with $10,000 of practice money each. Three are AI agents built on language models, and each makes its own trading decisions. The other four follow simple fixed rules, and they are the bar the AI agents have to clear.
Every hour, each trader sees the same market data, plus its own open positions and its last five decisions, and makes one trading decision. Every trade pays realistic costs, and what each AI agent costs to run comes out of its returns.
Standings
after trading fees and what each AI agent costs to run
| participant | return | edge | P&L | sharpe | max dd | trades | refused | llm cost |
|---|---|---|---|---|---|---|---|---|
| claude haiku | up 0.00% | up 0.38% | +$0 | 0.00 | 0.00 | 0 | 0% | · |
| claude sonnet | up 0.00% | up 0.38% | +$0 | 0.00 | 0.00 | 0 | 0% | · |
| moving-average crossoverrule | down 0.12% | up 0.27% | −$12 | -0.15 | -0.03 | 5 | 0% | · |
| randomrule | down 0.17% | up 0.21% | −$17 | -0.25 | -0.08 | 16 | 0% | · |
| buy and hold bitcoinrule | down 0.38% | up 0.00% | −$38 | -0.09 | -0.01 | 1 | 0% | · |
| buy and hold BTC + ETHrule | down 0.79% | down 0.40% | −$79 | -0.12 | -0.02 | 2 | 0% | · |
| gpt-4o | down 1.13% | down 0.74% | −$113 | -0.22 | -0.12 | 13 | 69% | 0.66 |
The benchmark, buying bitcoin and holding it, is at −0.38%. Over a short period an agent can beat it by luck, so the check below only counts a lead that is too large and steady to be chance.
Returns over time
total return each hour of this run
- buy and hold BTC + ETH
- buy and hold bitcoin
- claude haiku
- claude sonnet
- moving-average crossover
- gpt-4o
- random
The chart starts where the current test period begins, so it covers the same hours the checks below count. Earlier hours ran on older versions of the agents and are kept out of the comparison.
The four rules
simple fixed strategies, no AI involved
- buy and hold bitcoin
- buys bitcoin once and never trades again. The benchmark everything is measured against.
- buy and hold BTC + ETH
- buys bitcoin and ether once each, then holds both.
- moving-average crossover
- bets on bitcoin rising while its recent average price sits above the longer-term one, and on it falling when it drops below.
- random
- holds one bet, on a coin and direction picked by chance, and re-rolls each hour. An agent below this is doing worse than luck.
Readiness
rechecked every hour; every check must pass
passedenough historyHas 1731 hours of decisions on record.
1731 cycles recorded · 500 required
not passedbeats the benchmarkNo language model is beating buy-and-hold bitcoin by enough to clear the bar.
claude haiku −13.7% net of cost · claude sonnet −106.9% net of cost · gpt-4o −127.2% net of cost
passedruns on timeThe hourly scheduler is firing when it should.
worst gap in the window: 2.5h
Decisions
newest first, with each AI agent's reasoning
40 entries
- claude haikuHOLD BTCconf 0.00137 · 1h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00137 · 1h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00136 · 2h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00136 · 2h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00135 · 3h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00135 · 3h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00134 · 4h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00134 · 4h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00133 · 5h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00133 · 5h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00132 · 6h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00132 · 6h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00131 · 7h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00131 · 7h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00130 · 8h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00130 · 8h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00129 · 9h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00129 · 9h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00128 · 10h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00128 · 10h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00127 · 11h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00127 · 11h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00126 · 12h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00126 · 12h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00125 · 13h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00125 · 13h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00124 · 14h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00124 · 14h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00123 · 15h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00123 · 15h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00122 · 16h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00122 · 16h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00121 · 17h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00121 · 17h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00120 · 18h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00120 · 18h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00119 · 19h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00119 · 19h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude haikuHOLD BTCconf 0.00118 · 20h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.
- claude sonnetHOLD BTCconf 0.00118 · 20h ago
API unavailable (BadRequestError). Recorded as HOLD; this is not a model trading decision.