Skip to main content

4 Sprints in One Day: What I Learned

Published: March 8, 20262 min read
#trader-7#llm-trading#build-in-public#debugging

4 Sprints in One Day: What I Learned

Four sprints in one day on my crypto trading agent. Here's what broke and what I learned.

The Upgrade That Broke Things

Upgraded Claude from 4.5 to 4.6. Simple, right?

Except the new model is more verbose. Our risk manager was configured for 500 max tokens — plenty for 4.5's concise JSON. But 4.6 was getting truncated mid-string, silently breaking risk assessments.

Also learned OpenRouter resolves generic IDs like claude-opus-4-6 to dated versions like claude-4.6-opus-20260205. Our pricing table didn't have those aliases. Every call logged "Unknown model — using zero cost."

The Context That Fixed Things

Expanded the strategist's memory from 24 hours to 2 weeks.

First cycle, it spotted something no human noticed: "9 consecutive losses, mostly longs in misidentified trending_up regimes."

Immediately switched to bearish bias. All 3 open positions are now profitable shorts.

The lesson: your agent is only as smart as the context you give it.

The Prompt Killing Good Trades

Audited every prompt against the actual code. Found a stale "MINIMUM 82% confidence" in the DeepSeek prompt.

But the code had been using direction-aware thresholds (72-88%) for weeks. The prompt was suppressing valid trades because it still said 82.

Two lines of text to fix. The LLM can now express honest confidence.

The $63 Fix

ETH and SOL stopped within minutes of each other twice in one week. Both times, same story: BTC drops, both follow, both stop.

Added a simple cap: max 1 of {ETH, SOL} open at a time.

Would have saved $63 across those two events. 35 lines of code.


The current state: 3 shorts, all correct for the weak bear market. Win rate is 36.4%. Break-even needs 39.4%.

Now we wait. No changes for 20-30 trades. Let's see if the structural fixes compound.


Day 68 of building Trader-7.

Share this post