Glossary
Spread Filter
A spread filter blocks or delays trades when the bid-ask spread is too wide for the strategy's execution rules.
Spread filter is a trading rule that allows an order only when the current bid-ask spread meets a defined limit. It is used in automated strategies, expert advisors, scanners, and execution services to avoid entries or exits when trading costs are unusually high. The rule matters because a strategy can be correct about direction and still lose money when the spread consumes too much of the expected edge.
A spread filter is most useful for short-horizon systems, thin markets, news-sensitive symbols, and instruments whose spreads change sharply by session. It does not improve the signal itself. It controls whether market conditions are suitable for acting on that signal.
How the Filter Makes a Trade Decision
The system reads the best bid and best ask, calculates ask - bid, then compares that value with a limit. If the spread is acceptable, the order path continues. If not, the system may skip the trade, wait for a later quote, reduce size, or route to a different order type. The exact response depends on the strategy and broker API.
- Receive a fresh bid and ask from the market-data feed.
- Normalize the spread into points, ticks, price units, or a percentage.
- Compare it with a fixed or dynamic threshold.
- Record the decision, quote timestamp, and rejected order reason.
Quote freshness is easy to overlook. A narrow spread from a stale WebSocket message can pass the rule even though the live market has moved. Production systems usually compare the quote timestamp with the decision time and reject data that is too old for the strategy's holding period.
Fixed, Relative, and Dynamic Thresholds
A fixed threshold is simple: trade only when the spread is below a set number of ticks or price units. That works when tick size and normal liquidity stay fairly stable. It becomes misleading across symbols with different prices, contract sizes, or decimal formats.
For a scalper, comparing spread with the expected profit target is often more meaningful than using price alone. A two-tick spread may be harmless on a wide target and ruinous on a three-tick target. The filter should reflect the strategy's economics, not just the symbol's quote format.
Where Spread Filters Sit in the Trading Stack
The rule can run inside a strategy, an order management system, a broker bridge, or a market scanner. Placement changes what the filter can see. A strategy-level check knows the signal and target distance. An execution-level check sees the latest quote and routing state. Many reliable systems use both: an early check to avoid weak setups and a final check just before submission.
Queries such as thinkorswim spread filter, stock hacker filter for spread, option spread filter thinkorswim, and credit spread filter usually describe platform scans that screen symbols or option combinations. An automated trading service still needs its own pre-trade guard because scanner data and order-entry data may update at different rates. For multi-leg options, the displayed net spread, individual leg markets, and executable combination price are not always identical.
Execution Details That Change the Result
A spread filter must use the same price model as the order logic. For a market buy, the ask matters; for a market sell, the bid matters. A midpoint limit order may reduce immediate spread cost, but it introduces fill risk. That is the mild contradiction here: a strict filter cuts expensive fills, yet it can also remove trades that would have filled well with patient limit logic.
- Map broker symbols before applying thresholds; contract suffixes and synthetic symbols may use different tick sizes.
- Handle crossed or zero spreads as data-quality events, not automatic bargains.
- For options and credit spreads, inspect each leg and the combination market; one liquid leg can hide another leg's poor quote.
- Recheck the spread after partial fills, because the remaining quantity may face a different market.
Eur Usd Scalper Ea — Intraday Risk Engine
Our product blocks high-impact news and wide spreads while enforcing percentage risk and a daily loss cap.
A common failure mode occurs when the filter reads indicative quotes while the broker executes from another venue or price stream. The symptom is simple: logged spreads look acceptable, but realized slippage remains high. Operators verify this by matching quote timestamps, venue identifiers, order acknowledgements, and fill prices in one event trail.
Testing Without Fooling Yourself
Backtests often underestimate spread cost because they use candle data, a constant spread, or the bar's close as an executable price. A realistic test needs bid and ask data, or at least a spread model tied to session, liquidity, and volatility. Otherwise the filter appears to save bad trades without showing how often it blocks valid ones.
Measure more than net profit. Track rejected signals, later price movement, missed winners, avoided losers, realized slippage, fill rate, and rejection clusters by symbol and session. A useful diagnostic is to replay the strategy with several threshold rules and inspect where results change. If a tiny threshold change flips performance, the strategy may depend more on execution assumptions than on its market signal.
A Kalman filter estimate bid ask spread approach can smooth noisy observations or estimate a latent spread state, but it adds model risk. It can lag during sudden liquidity shocks. For many systems, a rolling median or percentile is easier to inspect and maintain.
Limits, Risks, and Maintenance
A spread filter cannot guarantee a cheap fill. The spread can widen after the check, the market can gap, or the order can queue behind other liquidity. It also cannot replace slippage controls, maximum order age, price collars, position limits, or kill switches.
Thresholds need maintenance when brokers change symbol specifications, liquidity moves to another venue, trading sessions shift, or the strategy changes its target and stop logic. Logging matters here. Without the rejected quote, chosen threshold, symbol metadata, and decision reason, teams can't tell whether the filter protected the strategy or silently starved it of trades.
Not the Same as a Spreadsheet Filter
The phrase also appears in searches about Excel and Google Sheets, but that is a separate meaning. A trading spread filter evaluates bid-ask cost. A spreadsheet filter hides or returns rows that match conditions. The questions below address that search overlap directly so readers don't have to guess which kind of filter is meant.
Frequently Asked Questions
How do you filter on an excel spread sheet?
Select the data range, open the Data tab, and choose Filter. Excel adds drop-down controls to the header row, where you can filter by text, number, date, color, or custom conditions. Convert the range to a table first when you want filters to expand as new rows are added.
How to filter diferent tables in one spread sheet?
Apply a separate filter to each Excel table rather than one filter across unrelated ranges. Format each range as a table, give every table its own headers, then use the filter arrows within that table. Overlapping ranges and blank header cells can cause one table's filter to behave unpredictably.
How to filter n a from spread sheet?
Filter the target column for #N/A when the cells contain the actual error value, or filter for the text N/A when it was entered as plain text. In Excel, you can also create a helper column with =ISNA(A2) and filter for TRUE. This distinction matters because error values and text that looks like an error are stored differently.
How to have more than one filter in google spread?
Use Data > Create a filter to apply conditions across several columns in the same Google Sheets range. Each column can have its own condition, and the visible rows must satisfy the combined rules. For separate personal views that do not affect collaborators, use Filter views instead.