Definition first: what “false breakout filtering” means
False breakout filtering is a rule-based way to avoid treating every breakout as meaningful. A “breakout” is an attempt to move beyond a prior price boundary (a range high or low). A “false breakout” is when price crosses that boundary briefly but then returns back inside the prior range.
Filtering adds an extra condition so the trader does not decide immediately at the first touch. In practice, that extra condition is often something like: the breakout must still be present after a short delay, or the price must hold beyond the level for a minimum number of bars, or the closing price must remain on the breakout side.
Mechanics: turning the idea into rules
A worked example needs specific, testable rules. Below is one possible rule set, expressed as assumptions.
Assumptions for the example (fixed):
- You define a prior range as the last 20 price bars. The range high is 1.1000 and the range low is 1.0950.
- A “breakout” attempt happens if a bar’s high is at least 1.1000.
- False breakout filtering uses a holding test: at the close of the next 2 bars, the close must be above 1.1000.
- No commissions, financing, or slippage are included in the calculation (this keeps the arithmetic focused on mechanics).
- All prices are hypothetical and used only to demonstrate the rule logic.
Stable vs variable parts:
- Stable mechanics: the definition of breakout (rule 2) and the holding test (rule 3).
- Variable conditions in real life: spreads, execution timing, chart timeframe, and market volatility can change whether a “close” you observe matches what is actually filled.
Worked numerical scenario (with every assumption)
Suppose the prior range is established, so 1.1000 is the key level.
Bar-by-bar data (hypothetical):
- Bar A (breakout attempt): high = 1.1006, close = 1.0998
- Bar B (follow-through): close = 1.0999
- Bar C (follow-through test): close = 1.1000 exactly (not above)
Step 1: Did a breakout attempt occur?
- Rule 2 says breakout attempt if a bar’s high ≥ 1.1000.
- Bar A high is 1.1006, so yes, an attempt occurred.
Step 2: Apply the filtering holding test.
- Rule 3 says: the close of the next 2 bars must be above 1.1000.
- Bar B close = 1.0999 → not above.
- Bar C close = 1.1000 → not above (it equals the level, so it fails the strict “above” requirement).
Result of the filter:
- This scenario is classified as a false breakout under these rules, because the breakout side was not maintained after the delay.
What you can verify independently:
- You can take any chart, mark the range high at 1.1000, then check whether highs exceeded it and whether closes stayed above it for the chosen 2-bar window. If your logged closes match the assumptions, you will reach the same filtering outcome.
Limitations and risks (what can go wrong)
A worked example shows only one path through the logic. Several limitations affect real-world use.
- Threshold sensitivity: If you require “close above 1.1000” versus “close at or above 1.1000,” you can flip decisions. In the scenario, equality already fails because the rule is strict.
- Timeframe dependence: The holding window (next 2 bars) depends on chart timeframe. What looks like a clean hold on one timeframe may look like a dip on another.
- Execution vs observed close: Filtering often uses observed closes. In live trading, fills may depend on bid/ask spread and the exact moment prices trade during the bar. That means the “close-based” logic may not translate directly into execution outcomes.
- Failure mode: genuine breakouts with temporary pullbacks: Real breakouts can include brief rejections before continuation. A filter can reject them if the chosen delay is too short.
- Failure mode: parameter overfitting: If rules (level definition, window length, strictness) are repeatedly adjusted to past behavior, the method may fit historical noise rather than a stable pattern.
For those reasons, filtering should be treated as a hypothesis about mechanics, not as a promise about future outcomes.