Entries differ; the way a day trade has to end does not. This is the exit block to paste under
whatever you are testing, before you tune anything else.
1. The rule
# SELL — five independent ways out, checked in order
if HhmmSs >= 155000:
Sell()
elif ProfitPct <= -1.0:
Sell()
elif ProfitPct >= 2.0:
Sell()
elif MaxProfitPct >= 1.2 and ProfitPct <= MaxProfitPct - 0.8:
Sell()
elif HoldTime >= 1800:
Sell()
2. Why the order is the design
Position
Branch
Why it sits there
1
session close, 15:50
the only exit that is not a choice
2
stop
must be able to fire before anything optional
3
target
the intended ending
4
give-back
after the stop, so it cannot pre-empt it
5
time cap
the backstop for a trade that does nothing
The session close is first because a position you meant to hold for the day and did not close is
an overnight position you never tested. Gap risk you did not choose is the largest single risk in a
day trading strategy, and it arrives on the days you were least paying attention.
The give-back rule sits fourth deliberately. Put it above the stop and a trade that ran to +1.2%
and then collapsed would exit on give-back rather than on the stop, which quietly changes what your
stop statistics mean.
Written as separate branches rather than one combined condition because each should be obvious on
its own when you read it at speed.
3. What this block does not do
It does not scale to the instrument. A 1.0% stop is a considered exit on a calm name and noise on a
violent one — see
volatility-based stop loss for the version that adapts.
It also does not decide whether the give-back rule is a good idea for your entry. That is
measurable, and the comparison is laid out in
day trading exit rules: four variants compared.
4. What the round trip asks of it
Session exit block: the target, stop and time cap drawn to scale, and the break-even win rate before and after measured trading costs
The 2.0% target against a 1.0% stop needs a 33% win rate on paper and 58% once the measured
0.75% round trip is included (what day trading a US stock really costs).
There is a specific reason that matters for an exit block rather than an entry: the give-back
branch and the time cap both create extra exits, and every exit is a round trip. An exit rule that
improves your average trade by 0.1% while doubling your trade count has made you worse off, and
nothing in a per-trade statistic will show it.
5. What to change first
The session close time, and only after checking your own broker. 15:50 leaves ten minutes, which is
comfortable on liquid names and not always enough on thin ones. If your fills at the close are
poor, move it earlier rather than widening the stop.
Then test the give-back branch on and off against your own entry:
how to backtest a day trading strategy on US stocks.
Educational template for research and backtesting. Not investment advice and not a signal service.
Originally published by TraderWe on August 13, 2026. You may quote and link to this page. Republishing the full text without a link back to the original is not permitted.
The ordering point is the one I'd underline. I had the give-back branch above the stop for months and never noticed because on my 5m charts the two almost never fired on the same bar, until a fast reversal, and then the trade closed at a worse number than my stated stop and my logs said "trail" when it was really a loss. Reading order = firing order, that's the whole thing.
One question: is HoldTime last on purpose, or just because it matters least to you?
Saw more than one account blown up by a fella who was sure he'd close it before the bell and then took a phone call. The machine doesn't take phone calls, that's the whole point of writing it down.
crypto side we don't get a session close so honestly the HoldTime branch does that job for me — otherwise a position from my night just sits there into everyone else's morning and it's not the same trade anymore.