
Last Update: October 19, 2026 4 min read
BY
eric
This is part seven of the ASX order book series. The earlier posts were about getting in: reading protection, the auction, and the cause of a gap. This one is about getting out, which, judging by the journals I read, is where more money was won and lost.
The most consistent exit idea across the intraday traders wasn't a price level at all. It was time.
The thesis of a scalp is an immediate move
When you take a match trade or lean on a wall, your thesis isn't "this stock will go up eventually." It's "the open is mispriced and will correct now" or "this bid will hold and price will bounce off it now." The now is part of the thesis.
So if the move doesn't come, the thesis is already wrong, even if price hasn't moved against you. Waiting turns a short-term trade into a different trade that you didn't plan, didn't size for, and don't have an edge in.
The journals were full of this lesson, usually learned the hard way:
- holding a match trade for many minutes, then hours, because "it hasn't gone against me yet";
- cutting at last, at a scratch or small loss, and feeling relieved;
- and, just as often, the stock moving exactly as planned 15 minutes later, long after the original reasoning had expired.
That last one hurts, but it doesn't change the logic. A trade that works after the thesis expired is luck. The question is whether, on average, holding non-movers makes or loses money. In my reading, the traders who measured it concluded that it loses.
Why time stops make sense
Here's a synthetic illustration of why. Imagine 1,000 scalp entries, classified by what happened in the first 30 seconds.
The numbers are made up, but the shape is the one every scalper eventually discovers in their own data. The trades that work, work fast. The "went nowhere" group is the expensive one: it looks harmless, but on average it drifts into a loss and ties up attention while it does. A time stop that scratches that middle group at roughly zero improves the whole distribution.
Liquidity exits
The second exit idea follows directly from protection. If you entered because a large order was behind you, the protection is your stop. You leave when it's no longer there.
All of these happen before price has moved much. That's the point. A liquidity exit gets you out at a tick or two of loss in situations where a fixed price stop would wait until the damage was done.
Scaling out
Many of the journals described a simple management pattern for scalps: take part of the position off at the first target and scratch the rest if it doesn't continue. For example, sell half for a tick, then exit the remainder at entry if the move stalls.
The appeal is psychological as much as mathematical. Locking in something early makes it easier to give the rest room, and turns a lot of would-be losers into breakeven trades. The cost is that you have less on when a trade really runs.
Interestingly, the traders who later improved their payoff (the size of average wins relative to average losses) mostly did it by being less eager on this first scale-out in their best setups. They kept quick time stops for failure but held winners longer. That's a theme we'll return to in the post on win rate versus payoff.
The opposite mistake
Time stops can be overdone. Several journals also complained about the opposite pattern: cutting a perfectly good trade after a few seconds of noise, then watching it go. The answer isn't intuition. It's measurement.
For each setup, look at your own trades and ask:
- How long do winners typically take to reach their first target?
- At what point does the probability of a winner drop sharply?
- What's the average result of trades still flat at 10 seconds, 30 seconds, 2 minutes?
That gives you a time stop calibrated to your setups and your stocks, not to a rule of thumb.
Measuring it yourself
If you record your fills with timestamps and have intraday prices, the analysis is straightforward. Here's a minimal sketch: for each trade, find the maximum favourable excursion within a time window.
import pandas as pd
def mfe_within(trades: pd.DataFrame, ticks: pd.DataFrame, seconds: int) -> pd.Series:
"""Max favourable excursion (in price) within `seconds` after each entry.
trades: columns [entry_time, entry_price, side] where side is +1 long, -1 short
ticks: DataFrame indexed by timestamp with a 'price' column
"""
out = []
for _, t in trades.iterrows():
window = ticks.loc[t.entry_time : t.entry_time + pd.Timedelta(seconds=seconds), "price"]
if window.empty:
out.append(0.0)
continue
move = (window - t.entry_price) * t.side
out.append(move.max())
return pd.Series(out, index=trades.index)
Bucket your trades by MFE within 10, 30 and 60 seconds, then look at the final outcome of each bucket. You'll likely find a clear point where "not yet moving" becomes "not going to move."
The takeaway
For short-term trades, ask two exit questions continuously:
- Is it working yet? If not within your measured window, scratch it.
- Is the reason I entered still there? If the protection or the aggression that justified the trade has gone, leave.
Price stops are still essential as a backstop, but the best scalpers rarely let price get that far.
The final post in this track turns the order book craft into something we can compute: imbalance, protection and resistance measured from depth snapshots.
Previous Article
Oct 20, 2026
Measuring Order Book Imbalance in Code
Next Article
Oct 18, 2026








Comments (0)
Leave a Comment