Skip to main content

The First Trade That Proved the System Works

Published: February 21, 20268 min read
#trader-7#build-in-public#crypto#ai-trading#paper-trading

Where We Left Off

Over the past week, I've been finding and fixing bugs that only paper trading could reveal. A prompt-code mismatch blocking all shorts. Four safety features fighting each other into complete paralysis. Trailing stops that were silently broken since initial implementation.

Each fix improved the system. But until now, I hadn't seen the complete lifecycle work end-to-end: a trade opening, hitting its first target, activating its trailing stop, and the trailing stop actually tracking the price.

That happened yesterday.


The Trade: SOL LONG, Start to (Almost) Finish

Trade 142 entered SOL LONG at $82.98 with 5x leverage on February 19. The thesis was straightforward: WEAK_BULL regime, SOL showing momentum, regime-aligned entry.

Then on February 20 at 18:42 UTC, SOL hit the first take-profit target at $85.00. The system:

  1. Closed 50% of the position - locking in $23.22 of realized profit
  2. Activated the trailing stop at $83.76 (1.0R below TP1)
  3. Began tracking new highs - as SOL continued to $85.65, the trailing stop ratcheted up to $84.30

This is the first time the trailing stop lifecycle has worked since I built the feature in Sprint 22. The bug I fixed two days ago - five missing fields in the Pydantic model - had prevented this entire mechanism from ever executing.

The trade is still open. The trailing stop is protecting $84.30 worth of downside while the remaining 50% of the position rides upside. This is exactly what "let your winners run" looks like in practice.


26 Hours of Disciplined Autonomy

After the TP1 hit, I let the system run for 26 hours without intervention. 26 full trading cycles. Here's what happened:

Trades opened: Zero. That sounds like a failure. It isn't.

BTC ranged between $66,875 and $68,205 - a 2% band. The ADX (trend strength indicator) sat between 10.9 and 12.9 the entire time. For context, ADX below 20 means "no trend." Below 15 means "absolutely nothing is happening."

The Claude Opus strategist correctly identified this as a range-bound, trendless market and maintained a moderate-to-defensive stance. DeepSeek, the signal generator, produced mixed signals for the first 12 cycles, then went to 100% HOLD for the last 14 cycles straight.

The actionable signals that did appear came in at 60-68% confidence - below the 72% threshold required for the moderate stance. The system correctly rejected every single one.

A system that sits on its hands in a directionless market is doing its job. Activity is not the same as productivity. In trading, unnecessary activity is how you bleed capital.


The Regime Watchdog: Restraint Under Pressure

One event tested the system's discipline. At cycle 3, Bitcoin's 50-day moving average distance dipped to -0.14%, briefly flipping the regime from WEAK_BULL to WEAK_BEAR.

The regime watchdog - the component that protects against regime-opposing positions - immediately flagged Trade 142 (SOL LONG in a bear market). It counted 1 opposing cycle and began monitoring.

Two cycles later, the regime flipped back to WEAK_BULL. The watchdog reset its counter. No force-close. No panic exit.

This matters because Trade 142 went on to hit TP1 fifteen cycles later. If the watchdog had overreacted to a brief regime fluctuation, it would have closed a winning position at roughly breakeven, sacrificing $23.22 in profit and the trailing stop upside.

The watchdog's two-stage design - monitor first, then escalate - proved itself. Compare this to Trade 141 (ETH SHORT) from the previous session, where the watchdog correctly force-closed a regime-opposing position after 4 persistent opposing cycles. Same mechanism, different decisions, both correct.


What the Numbers Say

Key metrics across the three blog posts this week:

P&L progression:

  • Feb 16 (Sprint 97): +$45 (+1.5%)
  • Feb 18 (Sprint 99): +$72 (+2.4%)
  • Feb 21 (Today): +$90.73 (+3.0%)

Current state:

  • Win Rate: ~36% (stable)
  • Open Positions: 1 (SOL trailing)
  • Critical Bugs Fixed: 0 (validation only)
  • RR_ADJUST (TP stretching): 0 across 26 cycles
  • Trailing Stop Working: Yes (first time ever)

The P&L trajectory tells the story. Each bug fix removed a drag on performance. The system isn't suddenly brilliant - it's that the bugs were actively destroying value, and now they're gone.


Sprint Validation Scorecard

After 26 hours of autonomous operation, here's the status of each recent sprint:

Sprint 97 (Prompt-Code Alignment): Confirmed. SHORT signals are being generated and evaluated. The system isn't limited to LONG-only anymore.

Sprint 99 (Pre-ATR Quality Gate): Confirmed. Zero RR_ADJUST across 26 cycles. The quality gate correctly accepted ~14 signals and rejected ~10, with zero take-profit stretching. The era of fantasy targets is over.

Sprint 99.1 (Trailing Stop Model Fix): Confirmed. Complete lifecycle validated - TP1 hit, partial close, trailing stop activate, trailing stop ratchet. The five missing Pydantic fields were the only thing preventing the entire trailing stop feature from working.

Sprint 99.2 (Telegram Fix): Confirmed. Zero AttributeError instances in 5,429 lines of logs. Notifications flowing correctly.


The Quiet Validation

There's a pattern in software development where the most important milestone isn't a dramatic feature launch - it's the first time the system runs for an extended period and does exactly what it's supposed to do, including doing nothing when nothing should be done.

That's what these 26 hours represent. The system:

  • Took profit when a target was hit
  • Activated trailing protection on the winner
  • Updated the trailing stop as price moved favorably
  • Sat out a directionless market instead of forcing trades
  • Handled a regime fluctuation without overreacting
  • Sent notifications correctly
  • Rejected weak signals before they could become bad trades
  • Let a winning position continue running

None of this is flashy. All of it is essential. A trading system that does one of these things wrong will slowly (or quickly) destroy capital. A system that does all of them right has a chance at consistency.


What's Next

The system is running with all recent bugs fixed and validated. The focus now:

  1. Watch the SOL trailing stop exit - when SOL eventually pulls back through $84.30, this will be the first trailing stop exit in the system's history
  2. Monitor trade frequency - 26 hours without a new trade is fine in a trendless market. If this extends to 48-72 hours as conditions change, the confidence threshold may need review
  3. ETH signal quality - ETH consistently produces pre-ATR R:R of 1.00:1, well below the 1.5:1 acceptance threshold. Long-term, ETH may need a different signal generation approach
  4. Consider Sprint 100 - with all critical bugs fixed, the next sprint could focus on preventing regime-opposing entries rather than managing them after the fact

The system is paper trading with $3,000 of simulated capital. Past performance is not indicative of future results. This is not financial advice.


Building Trader-7 in public. Follow the journey at jamiewatters.work

Share this post