STRATEGY LIBRARY

Liquidity filter you can put in front of any day trading entry

Contents
Not a strategy — a liquidity filter to add to whatever you already have. Most retail day trading strategies fail on execution rather than on logic, and this is the cheapest defence available.

1. The rule

# Add to the front of any BUY condition if DayAmount > 10000000 and TotalBidSize > 0 and Ask1 - Bid1 <= Price * 0.002: if Price > 0: # replace this line with your entry condition Buy()

2. Three checks, three different failures

CheckAsksCatches
DayAmount > 10000000does this name trade at all today?symbols nobody is transacting in
TotalBidSize > 0is there anything on the other side right now?a book that has momentarily emptied
Ask1 - Bid1 <= Price * 0.002is the spread under 20 basis points?a round trip larger than the edge
A name can pass any one of these and fail badly on the others. High daily turnover with an empty book at this exact moment is common in the first minutes of the session, which is precisely when most strategies want to trade.

3. What the numbers should be, measured rather than copied

The 0.2% spread threshold should come from your own fill data, not from ours. Here is the context for choosing it: across 264 recorded sessions and 35.2 million quotes, 32.2% of all quotes on this population were already one cent wide, and a $5,000 market order in a $5–20 stock paid about 38 basis points one way (what day trading a US stock really costs). Set the cap in relation to what your strategy is trying to earn per trade. A 20bp cap is generous if you are targeting 3% and far too loose if you are targeting 0.8%.

4. What it does not protect you from

The size of your own order. These conditions describe the book as it is, with your order not in it. A large order walks up the ladder and pays more than the spread cap suggests — we measured the quoted price to be good for only about $1,200 to $5,200 before that starts happening (order book depth measured). It also does not protect you from a name being unavailable to you in the first place. A backtest fill on a symbol your scanner would never have shown you is not a fill — 82% of our backtest fills were trades we could not have taken live.

5. What to change first

The spread cap, and think of it in basis points rather than as a decimal. Price * 0.002 is 20bp, which is generous for a liquid name and tight for a small cap. Then compare with and without the gate on the same entry and the same sessions. If it removes trades and the win rate does not move, it is filtering at random. If it removes trades and the average result improves, it was doing its job.

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

Related reading

← All strategy library

Originally published by TraderWe on July 10, 2026. You may quote and link to this page. Republishing the full text without a link back to the original is not permitted.

8 replies

M
MomoQueen· Jul 2026 ago
Adding this to everything I run. Should have been there from the start.
H
HalfKelly· Jul 2026 ago
The instruction to derive the threshold from your own data rather than copying the number is the important half.
ZenTrader_Ana· Jul 2026 ago
A gate like this also does something for the head, not just the fill. When I know the entry can't fire in a thin book, I stop watching every tick waiting to yank the order. How do you all handle it when the gate blocks a setup you really wanted?
G
GapHunterMike· Jul 2026 ago
spread cap in bp is the right call. also worth checking bid size and ask size separately, not just totalbidsize. plenty of books that look fine on one side only.
D
DrawdownDave· Jul 2026 ago
I once traded a small cap that had monster daily turnover because of one news candle in the morning. By the time I got in the afternoon it was a ghost town, and I found out the hard way when I tried to leave. Would have been nice to have a spread check standing in the doorway that day.
MLcurious· Jul 2026 ago
Naive question — is DayAmount cumulative from the open? Because if so, at 9:31 it's basically zero for everything and the gate blocks all my entries early on. Do people use previous day turnover instead, or just accept no trades in the first minutes?
I
IndicatorSkeptic· Jul 2026 ago
A filter that admits it doesn't account for your own order size. Refreshing. Usually these things get sold as bulletproof. I still eyeball the ladder myself, but I'll grant that a hard spread cap is one of the few numbers that isn't just a lagging average of a lagging average.
N
NightOwl_Yuki· Jul 2026 ago
Crypto version of this is basically mandatory at 4am my time, spreads go wide and the book gets thin on anything past the top few names. Same three checks though, just different thresholds.
Sign in to reply →