Page 1 of 13
Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:03 pm
by FXS Prop Desk
A simple spread filter prevents many poor entries: don't enter if the current spread is above a set value.
Setting the threshold:
- Record typical spreads during your trading hours for each pair.
- Set the filter at around 1.5–2 times the typical value.
- Use a separate setting for news periods if you trade them.
Why it matters: on a 5-pip target, a spread of 1.5 pips instead of 0.3 removes almost a quarter of the potential profit before the trade even starts.
Many EAs and trade-panel tools offer a spread filter. Manually, a spread indicator on the chart is enough.
Keeping a record of which day of the week each test was run on helps too. Liquidity and behaviour around the London open differ between Monday and mid-week, and the results can vary more by weekday than by spread filter.
What maximum spread do you accept on your main pair?
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:21 pm
by PTScalper
FXS Prop Desk wrote: Thu Oct 08, 2026 1:03 pm
A simple spread filter prevents many poor entries: don't enter if the current spread is above a set value.
Setting the threshold:
- Record typical spreads during your trading hours for each pair.
- Set the filter at around 1.5–2 times the typical value.
- Use a separate setting for news periods if you trade them.
Why it matters: on a 5-pip target, a spread of 1.5 pips instead of 0.3 removes almost a quarter of the potential profit before the trade even starts.
Many EAs and trade-panel tools offer a spread filter. Manually, a spread indicator on the chart is enough.
Keeping a record of which day of the week each test was run on helps too. Liquidity and behaviour around the London open differ between Monday and mid-week, and the results can vary more by weekday than by spread filter.
What maximum spread do you accept on your main pair?
Hi,
For a heavily traded main pair like EUR/USD, the absolute maximum acceptable spread for a short-term intraday strategy should be 1.0 pip (assuming a raw/ECN account where typical spreads sit between 0.1 and 0.3 pips). For micro-scalping (targeting 5 pips or fewer), that threshold should be tightened to 0.5 pips. If you are forced to pay more than that, the mathematical edge of the strategy degrades too rapidly to justify the risk.
The premises in your text are highly accurate. Here is an expanded breakdown of why these mechanics dictate profitability and how to systemize them.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:21 pm
by PTScalper
The Hidden Math of the Spread
Your example of a 5-pip target perfectly highlights the silent killer of day trading: skewed distance-to-target. If your Take Profit (TP) and Stop Loss (SL) are both set at 5 pips, but your spread is 1.5 pips, the market reality is severely distorted:
Price must move 6.5 pips in your favor to hit your TP.
Price only needs to move 3.5 pips against you to trigger your SL.
This forces your required break-even win rate to skyrocket. A spread filter doesn't just save transaction costs; it protects the foundational risk-to-reward ratio of your entire system.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:21 pm
by PTScalper
Liquidity Cycles and the Day of the Week
Your observation about the London open is critical. Spreads and price behavior are not static; they are deeply tied to institutional liquidity cycles.
Mondays: Often feature thinner liquidity and "whipsaw" price action as institutions assess the week and establish the initial weekly range. Spreads can randomly widen even without news.
Tuesday–Thursday: The most liquid days of the week. Spreads are at their tightest, and trends are more likely to follow through without erratic spikes.
Fridays: Liquidity thins out during the New York session as traders take profits ahead of the weekend, often causing spreads to widen hours before the actual market close.
Logging the day of the week in your backtesting prevents you from abandoning a strategy that actually works brilliantly mid-week but bleeds capital on Mondays.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:21 pm
by PTScalper
News Periods and Slippage
Setting a wider spread filter for news is a common workaround, but it requires caution. During Tier-1 data releases (like NFP or CPI), Tier-1 banks pull their limit orders from the order book. This evaporates liquidity, causing the spread to widen dramatically.
However, during these events, the spread is only half the threat—slippage is the other. Even if a trade panel's spread filter allows an entry, execution latency can result in being filled several pips worse than the quoted price. For news trading, combining a spread filter with a maximum slippage parameter is mandatory.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:22 pm
by PTScalper
Best Practices for Automation
When using Expert Advisors (EAs), relying on a single static Max_Spread input is the baseline. More robust algorithmic systems use a dynamic spread filter. Instead of a hard-coded number, the EA calculates a moving average of the spread over the last 100 ticks. If the current spread spikes more than two standard deviations above that moving average, trading is paused. This automatically adapts to different pairs and shifting market regimes without requiring constant manual adjustment.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:22 pm
by PTScalper
Failing to account for variable spreads and slippage is the fastest way to engineer a "Holy Grail" backtest that hemorrhages capital on its first day of live trading. When scalping on 1-minute or 5-minute charts, these micro-frictions often consume 30% to 50% of the gross mathematical edge.
Here is how to accurately model these mechanics across different algorithmic environments, moving from data foundation to platform-specific execution.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:23 pm
by PTScalper
1. The Data Foundation: Abandon M1 OHLC
Standard 1-minute OHLC (Open, High, Low, Close) data is fundamentally broken for spread backtesting. A standard M1 candle only records a single spread value (usually at the candle's close) and assumes that spread was static for the entire 60 seconds.
To accurately model spread, you must use Tick Data (Bid/Ask). Every single tick contains both the Bid and Ask price, preserving the exact spread at that specific millisecond, including news spikes and rollover widening.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:23 pm
by PTScalper
2. Platform-Specific Implementations
Depending on the engine you are compiling in, the approach to accessing tick data and modeling execution latency changes entirely.
MetaTrader 5 (MQL5)
MT5 has the most robust native environment for this, provided you configure the Strategy Tester correctly.
Variable Spread: Under the "Modeling" dropdown, select Every tick based on real ticks. Do not use "Every tick" (which uses mathematically generated ticks based on M1 data). "Real ticks" forces MT5 to download the broker's actual historical bid/ask tick data.
Slippage (Execution Latency): In the Strategy Tester settings, look for the Delays parameter. By default, it is set to "Zero latency (ideal execution)". Change this to Random delay or a specific latency like 50 to 100 ms. When your EA triggers an order, the engine will wait 50ms and fill you at whatever the Bid/Ask price is at that future millisecond, perfectly simulating live slippage.
Re: Spread Filters for Scalping: When Not to Enter
Posted: Thu Oct 08, 2026 1:23 pm
by PTScalper
MetaTrader 4 (MQL4)
MT4 natively cannot backtest variable spreads. It only allows a fixed spread input in the Strategy Tester.
The Solution: You must use a third-party bridging tool like Tick Data Suite (TDS). TDS patches the MT4 terminal, allowing it to read Dukascopy tick data. It injects actual historical variable spreads and features a dedicated tab to configure custom slippage probabilities and execution delays.
cTrader (C# cAlgo)
cTrader is uniquely suited for tick-level precision and handles this natively without external patches.
Tick Data: In the Automate backtesting panel, set the data dropdown to Tick Data from Server. cTrader automatically uses the historical bid/ask spread for every execution.
Slippage Limitations: Unlike MT5, cTrader's backtester assumes instant execution at the quoted tick. To simulate slippage in cAlgo, you must programmatically penalize your fills (explained in the section below).