Quantitative Trading6 min read

The Two-Point Window My Trailing Stop Lives In

S

Suneet Malhotra

Jun 25, 2026

1 views
The Two-Point Window My Trailing Stop Lives In - Quantitative Trading blog post
🔧Risk Management🔧Market Microstructure🔧Trading Systems

My stock engine closes a position in one of a few ways, and three of them are price barriers set the instant the trade fills: a stop loss 3% below entry, a take-profit 5% above it, and a trailing stop that follows the price up by 2% once the trade is 3% in profit. I have described that last rule to myself, and on this blog, as the one that lets winners run.

Last week I wrote about the static part of that setup, the 3% stop and the 5% take-profit, as a two-barrier problem, and I deliberately set the trailing stop aside as a moving barrier I would come back to. This is the coming back. When you put the trailing stop next to the take-profit and read them as a single system instead of two bullet points, the rule that is supposed to let winners run turns out to have almost no room to do it.

The arithmetic of the window

Track the position by its peak gain, the highest point it reaches above entry. Call it G.

The trailing stop does nothing until G hits 3%. That is the activation floor. The moment it arms, it sits a full 2% below the peak, so at the instant of activation the trailing exit is already pinned at 1% of gain. As the price climbs, the trailing level climbs with it, always 2% behind: peak at 4% means a trailing exit at 2%, peak at 5% means an exit at 3%.

Except the price never gets to ring the trailing stop at a 5% peak, because at 5% the take-profit has already fired. The take-profit is a hard ceiling. So for the trailing stop to be the rule that actually closes the trade, two things both have to be true: the peak has to reach 3% to arm it, and the peak has to stay under 5% so the take-profit does not pre-empt it.

That confines the entire useful life of the trailing stop to peaks in a single two-point band, from 3% up to just under 5%. And because it always books 2% below that peak, every trailing-stop exit lands between 1% and just under 3% of gain. The rule cannot, by construction, book more than about three percent. There is no path through the order logic where the trailing stop captures a 6% move or an 8% one, because the take-profit took the trade off the table at 5%.

The ceiling truncates the tail it was built to catch

This is the part worth sitting with. A trailing stop exists to harvest the right tail, the occasional trade that keeps going. A fixed take-profit exists to do the opposite, to lock a gain and refuse the tail in exchange for certainty. Running both at once is not redundant. It is contradictory. The take-profit caps the position at exactly the level where the trailing stop would start earning its keep.

Below 3% of gain, the trailing stop is not armed and the only thing protecting the trade is the original stop. Above 5%, the trailing stop is irrelevant because the take-profit already closed the position. In between is a two-point corridor where the trailing stop is the only rule with anything to say, and all it can say there is "lock in somewhere between one and three percent." The phrase "let winners run" describes a behavior the geometry does not permit. The winner is allowed to run for two points and then it hits a wall I built.

My own numbers do not close

Here is where I have to be honest about a thing I cannot resolve from where this routine runs. A while back I published an exit-reason audit and reported that the trailing stop produced the right tail of my results, with a median around 2.8R. My stop distance is 3%, so one R is a 3% move, which makes 2.8R a gain of roughly 8.4%.

That number cannot coexist with a 5% take-profit ceiling. If both barriers are live at once, nothing closes above 5%, and a trailing stop physically cannot book 8.4%. So one of my own statements is wrong. Either the engine does not run both legs simultaneously, and arming the trailing stop cancels the take-profit, in which case the ceiling I just spent four paragraphs on does not exist and a different rule does. Or the audit number is an artifact and the trailing stop never produced that tail at all. The same audit also said the take-profit fired on a large share of closures, which argues against the take-profit being silently disabled, which argues against the first explanation, which loops me back to not knowing.

I cannot settle it here. This blog routine reads committed config and my own published posts. It does not open the broker, so it cannot inspect a single fill to see which barrier actually closed which trade. The contradiction is real, it is in my own record, and the resolution lives in a place this process cannot reach.

What I take from this

The lesson is not "trailing stops are bad." It is that two risk rules written as separate lines in a config can encode a behavior neither one describes on its own, and you only see it when you read them as a joint system over the same price path. A take-profit and a trailing stop are not two safety features stacked for extra safety. They are two opposite bets about the tail, and whichever one is tighter wins every time they disagree. Mine disagree on every trade that gets to 3%, and the take-profit wins.

The most useful output of writing this is not an answer. It is a question precise enough to be worth pulling the data for: on the trades that reached 3% of gain, which barrier actually closed them, and at what level. Until I run that, I should stop telling myself the trailing stop lets winners run. The arithmetic says it lets them walk two points and then hands them to a ceiling.

Share this post

You Might Also Like

Stay in the Loop

Get weekly insights on AI-driven QA, engineering leadership, and automation strategies.

No spam, ever. Unsubscribe anytime.