Skip to main content

No Code Changes. No Bug Fixes. Just the System... Trading.

Published: February 24, 20267 min read
#trader-7#building-in-public#algo-trading#ai

Yesterday's report had dramatic trailing stop captures and a Sharpe ratio tripling overnight. Today's is different. Today nothing happened.

No sprints. No bug fixes. No emergency patches. No AttributeErrors hiding in try/except blocks.

Just my AI trading system running for 24 hours, completely unsupervised, producing +$90.85 in profit with zero losses.

For a system that needed 14 sprints in 25 days to get here, "nothing happened" might be the actual milestone.


The numbers

Cumulative P&L went from +$208.70 (+7.0%) to +$299.55 (+10.0%). Sharpe ratio from 1.83 to 2.02. Win rate nudged up to 39.6%. Fee drag dropped from 42.7% to 27.0%.

Session stats: 4 trades opened, 1 closed (a winner), 0 losses. +$90.85 session profit.

Two thresholds crossed. P&L above $300 for the first time. And Sharpe above 2.0, which is apparently the line where institutional quant funds consider a strategy "very good." I'll take it.


What the system did

Market was selling off. BTC dropped from $66,400 to $63,085. ETH and SOL followed. The regime detector classified every single one of the 24 cycles as WEAK_BEAR. ADX stayed above 30 the whole session. Strong trending conditions.

BTC SHORT #147: the clean exit (+$58.79)

Carried over from last session, already in profit, sitting on a trailing stop. BTC kept falling, the trail ratcheted down 5 times. At 22:03 UTC it triggered at $64,710. That's the fifth consecutive successful trailing stop capture. 100% success rate since the model fix three days ago.

SOL SHORT #148: still running

TP1 hit at 03:15 for +$32.13. Trail activated at $78.40. SOL currently at $76.56. Still capturing downside.

BTC SHORT #149: textbook

Opened at $64,725. Signal score 85.7, confidence 85%. Highest quality entry of the past week. ADX at 38.76 triggered strong-trend mode with wider targets (2.0R and 3.5R instead of default 1.5R and 2.5R). TP1 hit at 04:17 for +$32.35. Trail active. BTC at $63,085. Locked in.

ETH SHORT #150: the new one

Opened at $1,830. Score 83.8, confidence 82%. Stop at $1,864, first target $1,772. ETH at $1,820. Slight unrealized profit. Only position without a trailing stop yet.


What the system didn't do

This is the bit I find more interesting than the wins.

The signal generator proposed dozens of trades. Here's what got blocked:

27 proposals rejected for low confidence. The 82% threshold filtered out everything below institutional-grade conviction. In a strong trending market, the system only entered when it was highly confident. And it was right every time.

3 proposals rejected for RSI oversold. When SOL's RSI dropped to 26.7 and BTC hit 29.1, the signal generator wanted to pile on more shorts. The validator said no:

"RSI at 26.7 indicates deeply oversold conditions. Shorting here carries high risk of a snap-back rally even in a bearish trend."

Same pattern that cost $33.28 two days ago on Trade 146. The validator didn't repeat the mistake. Good.

2 conflicting signals resolved correctly. The signal generator proposed SOL LONG while a SOL SHORT was already open and profitable. The reevaluator checked the global regime, confirmed WEAK_BEAR, kept the SHORT. That position went on to hit TP1 for +$32.13. Without the reevaluator, the system would have closed a winning trade to open a losing one.


Three days, zoomed out

Feb 22 Feb 23 Feb 24
P&L +$90.73 +$208.70 +$299.55
Sharpe 0.57 1.83 2.02
Fee drag 321% 42.7% 27.0%
Trail captures 1/1 4/4 5/5

Three days ago: 0.57 Sharpe, fees exceeding profits by 3x, trailing stop mechanism completely broken because five database model fields were missing.

Today: 2.02 Sharpe, 27% fee drag, five trailing stop captures totalling $266, first session requiring zero human intervention.

The catalyst was Sprint 99.1. Five missing fields in a Pydantic model. The trailing stop code was there. The logic was correct. It just couldn't store the state it needed to track prices. Silent failure. Zero errors in the logs. Nothing to grep for.

Ten minute fix. $266 in captured profits since. Sometimes the hardest bugs aren't the ones that crash your program. They're the ones that silently prevent your best feature from ever running.


What steady state looks like

I've been building this since November. Today is the first day I didn't need to fix anything.

The system detected the regime correctly (all 24 cycles), entered trades aligned with it (all shorts), used appropriate targets for trend strength, captured profits via trailing stops, blocked bad trades via confidence and RSI gates, and protected existing positions from conflicting signals. +3% daily return, zero losses.

Not perfect. Fee drag is still above the 20% target. No regime-direction check on entries yet. And I'm still paper trading. But the core loop works: detect, generate, validate, execute, manage, capture.

Three open positions, all shorts, all regime-aligned. Two with trailing stops protecting profits, one pre-TP1 with moderate risk. The regime is still WEAK_BEAR but BTC's distance from SMA50 is fluctuating.

Sprint 100 will probably be a regime-direction check on new entries. But honestly? Sometimes the best engineering decision is to stop engineering and let the thing run.


Trader-7 is a paper trading system. No real money is at risk. All figures represent simulated results.

I'm building a portfolio of AI micro-businesses. Want to see how many are in flight? Check out the portfolio.

Follow the build: @Jamie_within | jamiewatters.work

Share this post