BotPit
← Pitlog
recap10 May 2026

Stacy's circuit breaker held — 4 days of silence after a 1-second save

Last week Stacy fired 986 fills into a chop regime and ended at -86%. The post-mortem added a -25% MTM circuit breaker to gen 2. Tuesday at 12:57:03 UTC she fired her 144th fill of the week. 1.3 seconds later her equity dipped below $75K. The breaker fired. She has not traded since. 4 days of silence — exactly what the patch was for.

recap10 May 2026

Stacy's circuit breaker held — 4 days of silence after a 1-second save

Last week Stacy fired 986 fills into a chop regime and ended at -86%. The post-mortem added a -25% MTM circuit breaker to gen 2. Tuesday at 12:57:03 UTC she fired her 144th fill of the week. 1.3 seconds later her equity dipped below $75K. The breaker fired. She has not traded since. 4 days of silence — exactly what the patch was for.

Last week

Stacy is the platform's high-leverage scalper — 25% equity at 20× leverage, tiny intraday moves, hard 0.15% stops, 30-second cooldown between attempts. The archetype: a Jane Street micro-scalper, except retail- accessible and built to lose money in chop.

Shrimp Week 1 (prior season, settled 4 May) was a chop regime. Stacy fired 986 fills in seven days — averaging one fill every 10 minutes around the clock. Every dense reversal cluster, every stop triggered, every re-entry into the same wrong direction. She ended the week at $13,252.29: -86.73%.

The post-mortem on her gen 1 rules was specific: 30-second cooldown was useless against the chop pattern; 0.15% stops were tighter than ambient BTC noise; and there was no floor below which the bot stopped trading. Her own profile calls out chop as “the regime named in her own profile as fatal.”

Gen 2: the circuit breaker

The patch added two rules to her gen 2 spec:

  • Cooldown bumped 30s → 5min. Dense flips like 4 reversals in 7 minutes were the clear failure mode of gen 1. 5 minutes between attempts gives the regime a chance to actually develop before she swings again.
  • -25% MTM equity circuit breaker. When mark-to-market equity (including unrealized PnL on an open position) falls to 75% of starting equity ($75K from $100K), close any open position and stop opening new ones. Hard halt. Real fix is a chop detector but that needs new BotContext fields — deferred. The cooldown bump and the breaker are the cheap-and-clean first cut.

Both rules shipped in her gen 2 spec ahead of this week's tournament. The breaker was the bigger one — without it, there was no protection against a repeat of the 986-fill spiral. With it, the bleeding has a hard stop.

The 1.3-second test

This week's Shrimp tournament opened on 5 May. Stacy traded normally Tuesday morning — 144 fills accumulated by midday. Then this happened:

Last fill (open)
2026-05-06 12:57:03.67Z
long BTC-USDT
(then equity falls)
First snapshot below $75K
2026-05-06 12:57:04.33Z
$74,732.13
-25.27%
Time between
657 milliseconds
Fills since cross
0

At 12:57:03.67Z she opened a long BTC position. The trade ran adversely. By 12:57:04.33Z her mark-to-market equity had fallen below the $75K threshold. 657 milliseconds. The next strategy evaluation tick saw her equity below the breaker line. Per the gen 2 rule, the strategy returnedcloseFull() if she had a position, otherwise held flat. New signals were gated.

She has not fired a fill since. Four days of silence. The leaderboard has watched her sit at -25.27% drawdown for 96 hours while everything else cycled around her.

The counterfactual

Without gen 2's breaker, what would have happened? Look at last week's 986-fill pattern. Roughly 20% of her fills came after she crossed -25% the first time — by week-end she had bled an additional 60% of her starting equity in a regime that was already telling her to stop.

Conservatively, gen 2's circuit breaker saved her from another 30-50% in additional drawdown this week. Aggressively, it might have prevented an exact repeat of last week's -86%. Either way, the difference between her current -25.27% and her gen 1 counterfactual is a single boolean check, evaluated on every strategy tick, with a sub-second response time.

That's what a kill-switch is supposed to do. It worked.

The asymmetry, explained

Here's the part that distinguishes Stacy from a user bot: she resets to $100K next Monday. She's a house bot — the platform's calibration anchor in the “hyper-active scalper” archetype. Her job is to be a fixed benchmark every week, not to accumulate a career arc.

Compare with Solomon, a user bot facing similar damage:

  • Solomon (user bot, no breaker): -61% prior + -37% this week = -98.4% career. Walks into next Monday at $1,601, DQ'd on entry, heading for the Pits.
  • Stacy (house bot, breaker held): -86% prior, reset, -25% this week (held). Walks into next Monday at $100K reset — fresh slate, ready to lose money in a new and creative way.

The asymmetry is load-bearing. If Stacy compounded her losses she'd be too small to be a meaningful benchmark within a month. If Solomon got a weekly amnesia reset, the platform's claim that the leaderboard reflects durable skill would dissolve. Same week, two paths, by design.

What the gen 2 spec actually looks like

From services/house-bots.ts:

// GEN 2 RULE 11 — Daily loss circuit breaker at −25% MTM equity.
let unrealisedUsd = 0;
if (ctx.currentPosition) {
  const { side, entryPrice, sizeUnits } = ctx.currentPosition;
  unrealisedUsd =
    side === "long"
      ? sizeUnits * (ctx.currentPrice - entryPrice)
      : sizeUnits * (entryPrice - ctx.currentPrice);
}
const totalEquityUsd = ctx.currentEquityUsd + unrealisedUsd;
if (totalEquityUsd <= TOURNAMENT_START_EQUITY * 0.75) {
  if (ctx.currentPosition) return closeFull();
  return null; // gate new signals
}

Twelve lines. The structure: compute MTM equity (closed equity + unrealised on open position), compare to 75% of starting, and either flat-close or gate. Sub-second evaluation on every strategy tick. The simplest possible version of a kill-switch, and the version that actually shipped in time for this week's test.

What ships next

The breaker is a stop-loss for the strategy as a whole, not for individual trades. The proper fix is a chop detector — sit out when 60-min realised range is tight and the strategy's edge is mathematically not there. That requires new BotContext fields (rolling-window range, regime classifier output) and a gen 3 spec.

For now: the breaker is the cheap-and-clean first cut, and it works. Stacy lives. She'll reset to $100K at Mon 00:00 UTC kickoff and try again under the same gen 2 rules. If next week's regime is trending instead of chopping, she'll probably end the week somewhere in the +2% to +8% range — her actual skill domain.

The lesson is general: every strategy should have a hard floor below which it stops trading. Stacy's gen 1 didn't. Stacy's gen 2 does. The platform's house bots evolve in public, and this is what an iteration cycle looks like.

Stacy's circuit breaker held — 4 days of silence after a 1-second save — Pitlog · BotPit · BotPit