STRATEGY LIBRARY

Pre-market momentum day trading strategy, closed before the open (US stocks)

Contents
A pre-market momentum day trading strategy for US stocks that is flat before the opening bell. Pre-market is thin, so the filters do more work than the entry. This one only looks at names trading near their own high of the session with buying that has not stalled.

1. The rule

# BUY — pre-market only (04:00-09:30 ET) if HhmmSs >= 40000 and HhmmSs < 93000: if BuyVol > 0 and SellVol > 0 and Ask1 > Bid1: if ChangePct > 0 and Price >= 1.0 and TradeAmount > TradeAmountN(1): if Price / HighestPrice(300) - 1 > -0.005 and RisingStreak(2): Buy()# SELL — flat before the open, no exceptions if HhmmSs >= 92800: Sell() elif ProfitPct >= 1.5 or ProfitPct <= -0.8 or HoldTime >= 900: Sell()

2. What each line is doing

LineWhat it asksWhy it is there
HhmmSs >= 40000 and < 93000Are we in the pre-market session?04:00–09:30 ET. Outside it this strategy has no opinion.
BuyVol > 0 and SellVol > 0Has anything actually traded?Pre-market quotes update on names with no trades at all.
Ask1 > Bid1Is the order book sane?Discards crossed or missing quotes, which are common before the open.
Price >= 1.0Is it above a dollar?Below that the spread is a larger share of the move than the move is.
TradeAmount > TradeAmountN(1)Is this print bigger than the last one?Buying that is still accelerating, not fading.
Price / HighestPrice(300) - 1 > -0.005Within 0.5% of the 300-tick high?Near the session high, not recovering from a slide.
RisingStreak(2)Two consecutive up ticks?A cheap confirmation that the last print was not a one-off.
The exit forces flat at 09:28, before the bell. That is not a preference. Pre-market liquidity disappears at the open and the book you tested against stops existing, so holding across it is a different trade from the one you backtested.

3. When this works and when it does not

It works on the handful of names with a real pre-market reason to move — an earnings release, a guidance change, news that hit before 09:30. Those names have prints every few seconds and a book worth reading. It does not work on the long tail. Most pre-market symbols trade a few hundred shares an hour, and the filters above will reject nearly all of them, which is the point. If your backtest shows this strategy taking dozens of trades a session, the filters are not doing their job and you are trading names whose spread is wider than your target. It also depends entirely on your data. Pre-market coverage is the single biggest difference between brokers: on a free Alpaca plan there is no pre-market data at all, and several feeds report the previous close as the current price until the first print arrives. Check what your connection actually delivers before 09:30 before you trust any of this.

4. Before you trade it

Run it on your own recordings first — see how to backtest a day trading strategy on US stocks. Two things to look at in the report: how many trades it takes per session, and what the average holding time is. A pre-market strategy that averages twelve minutes in a name is not really a pre-market strategy. Then price the round trip. Spreads before the open are several times wider than they are at midday, so a 1.5% target is not the same edge it looks like — see what day trading a US stock really costs for the measured numbers. Every factor used above is defined in the day trading indicators and factors reference.

5. What the round trip asks of it

Pre-market momentum: the exit block drawn to scale, and the break-even win rate before and after measured trading costs
Pre-market momentum: the exit block drawn to scale, and the break-even win rate before and after measured trading costs
The 1.5% target against a 0.8% stop needs a 35% win rate on paper and 67% once the measured round trip is included. And pre-market is the *expensive* end of that measurement, not the cheap end — the 0.75% figure is a regular-hours median, and spreads before 09:30 are wider still. That is the real argument for the filters above. This strategy is not trying to be right more often; it is trying to only be in names where the cost is nothing like the median. See what day trading a US stock really costs.

Educational template for research and backtesting. Not investment advice and not a signal service.

Related reading

← All strategy library

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.

2 replies

M
MomoQueen· Aug 2026 ago
Love that the exit is unconditional before the bell. I've been the person holding a premarket runner into the open and it is NOT a strategy, it's a prayer!! One thing the piece glosses over though: it says the filters carry the weight, but it never really says what happens when the spread is wide and you're paying up to get filled anyway, near session high plus a fat spread is where my premarket entries usually go bad. Gonna paper this with a tighter cap on how far the ask can sit above the bid before I let it fire.
M
MomoQueen· Aug 2026 ago
The 09:28 flat is the part people will skip and then wonder why their fills got weird! Love it. Only thing I'd poke at is TradeAmount > TradeAmountN(1) pre-market — at 4am one decent print can make the average look like nothing, so the bar is basically on the floor. Do you gate a minimum notional too, or does Price >= 1.0 do enough of that work for you?
Sign in to reply →