The Three-Percent Daily Stop That Freezes at $3,000
Suneet Malhotra
Jun 11, 2026
The stock engine has two ways to stop trading for the day after it loses money. One is a percentage: halt if the day's loss reaches three percent of account equity. The other is a flat dollar figure: halt if the day's loss reaches three thousand dollars. I have been running both for months, and until I put the two lines side by side I had been describing them as a single rule.
They are a single rule on exactly one day. That day is the day the account opened.
Two numbers, one config
Both limits live in the engine config, a couple of lines apart. The daily loss limit is three percent of equity. The daily circuit breaker is three thousand dollars. The stock engine started with one hundred thousand dollars of paper capital, and three percent of one hundred thousand is three thousand. At the starting balance the two thresholds are the same number, to the dollar.
That coincidence is the whole reason I never looked closely. When two thresholds sit at the identical value, you cannot tell them apart by watching the engine. A halt fires, the day ends, and there is no way to say which of the two rules pulled the lever, because both crossed at the same instant.
Which one actually governs
A pair of daily stops does not give you two chances to halt. It gives you whichever one is lower, because the lower threshold is reached first. The effective daily loss ceiling is the smaller of three percent of equity and three thousand dollars. So the real question is which is smaller, and that depends entirely on where equity sits.
Set them equal: three percent of equity equals three thousand dollars when equity equals one hundred thousand. That is the crossover, and it is exactly the starting capital.
Above one hundred thousand, three percent of equity is more than three thousand, so the flat three thousand is the smaller number and it governs. The percentage rule is dormant. At one hundred fifty thousand the engine would halt at a three thousand dollar loss, which is two percent of equity, not three. The advertised three percent stop is nowhere in the behavior.
Below one hundred thousand, three percent of equity is less than three thousand, so the percentage governs and the flat cap is dormant. At fifty thousand the engine halts at fifteen hundred dollars, and it would never reach three thousand because it stopped at three percent first.
Put the two together and the daily ceiling is a flat three percent of equity for any balance at or below the starting capital, and a shrinking fraction of equity, frozen at three thousand dollars, for any balance above it. The risk ceiling is at its widest, as a fraction of the account, exactly at the starting line. It only tightens from there, in both directions.
The sentence I got wrong in public
A few weeks ago I published an exit-reason audit and described the daily halt as a circuit-breaker close-out that fires if the daily loss limit gets hit. Singular. One mechanism with two names. I wrote it that way because, for the entire life of the account so far, it has been one number. The breaker has fired twice in sixty sessions, and on a paper account that has stayed near its starting balance, both thresholds were close enough that the distinction was invisible. The account had not moved far enough for the two rules to separate, so I described them as one. The wiring says two.
Whether this is a bug
It is not, and the honest version of this post has to say so. Taking the smaller of a percentage and a flat cap is a defensible daily ceiling. It scales the stop down with the account in a drawdown, which is what you want when you are losing, and it hard-caps the absolute dollar loss when the account is ahead, which keeps a good run from quietly enlarging the size of a bad day. Both arms are conservative. The structure ratchets toward caution on either side of the starting balance.
What is wrong is the label, not the logic. Calling it a three percent of equity daily loss limit advertises a stop that scales with the account. Above the starting balance it does not scale at all. It is frozen at three thousand dollars and its effective percentage quietly erodes as the account grows. I was monitoring a number that only describes the engine when the engine is at or below where it began.
Why this is not the last post like it
I did this once already, two weeks ago, with position sizing: a one percent risk rule and a ten thousand dollar notional cap that crossed at thirty thousand dollars of equity, so the percentage only governed after a seventy percent drawdown. This is the same shape and a sharper version of it. There the dormant rule woke up only in catastrophe. Here the crossover sits at the starting capital, so the percentage rule goes dormant on the first profitable day and stays dormant for as long as the account is green. The rule that is supposed to scale with success is the one that stops applying the moment there is any success to scale with.
The fix is not a code change I can make blind. It is a decision. Either the daily ceiling should compound with equity, in which case the flat cap should rise with the account or come off above the starting balance, or it should be a flat dollar discipline, in which case the percentage framing should come off entirely above par. What it should not be is two numbers wearing each other's name because, on day one, they happened to be equal.
The engine does not have a three percent daily stop. It has a three percent stop below the starting line and a three thousand dollar stop above it, and the only day it had exactly one of them was the day before it placed a single trade.
Share this post
You Might Also Like
The Check That Passes Until the Day It Does Not
Every day my engine reconciles its own record of open positions against the broker's. Almost every day the two lists match. I do not run the check for those days.
OpenClaw TutorialsThe One-Percent Rule My Sizing Never Reaches
My config says I risk one percent of equity per trade. The arithmetic says I risk three tenths of one percent. A flat dollar cap is overriding the rule that sounds principled, and I never noticed.
Quantitative TradingWhat a Fifteen-Minute Bar Forgets
Every indicator my engine trusts is computed on fifteen-minute bars. A bar is a summary of those minutes, and the summary throws away the one thing that moved the price: the path.
Agentic AIThe Hour My Scheduler Loses Twice a Year
I reason about my agents in Pacific time. The machine runs them in UTC. I bridged the two with a fixed offset, and a fixed offset is wrong for half the year.
Latest Blog Posts
What a Fifteen-Minute Bar Forgets
Every indicator my engine trusts is computed on fifteen-minute bars. A bar is a summary of those minutes, and the summary throws away the one thing that moved the price: the path.
The Check That Passes Until the Day It Does Not
Every day my engine reconciles its own record of open positions against the broker's. Almost every day the two lists match. I do not run the check for those days.
The Hour My Scheduler Loses Twice a Year
I reason about my agents in Pacific time. The machine runs them in UTC. I bridged the two with a fixed offset, and a fixed offset is wrong for half the year.
Related Tools & Demos
Automated Trading System
Multi-engine trading platform with real-time risk management, regime-based strategy selection, and automated order execution.
View Source Code →Personal Health Analytics
Multi-modal health data platform integrating wearables, lab results, and lifestyle tracking with predictive habit modeling.
View Source Code →AI Content Engine
Automated content pipeline with multi-platform distribution, engagement optimization, and editorial quality gates.
View Source Code →
Stay in the Loop
Get weekly insights on AI-driven QA, engineering leadership, and automation strategies.
No spam, ever. Unsubscribe anytime.