Problem
checkForMSSBefore() detects a 3-point swing structure (firstPivot → swing → OB → MSS break) but the time windows are too tight for XAUUSD M15:
| Constraint |
Current |
Impact |
lookback=15 (M15 bars per swing segment) |
3.75h each |
Full structure must fit in 7.5h |
lastCandleCheck > 12 (break scan limit) |
3h |
MSS break must occur within 3h |
inpMSSRequireFVG=true |
extra gate |
Break candle must also have FVG |
Result: only 16 of 3695 valid OBs (0.35%) pass MSS detection over 4 years.
ICT Context
The logic is correct — for a bearish OB: firstHigh → lastLow → lastHigh(OB) → break below lastLow. The issue is purely the time constraints. XAUUSD swing structures often take 20–80 M15 bars to form, not 15.
Planned Fix
checkForMSSBefore(int lookback = 15) → default 40
lastCandleCheck > 12 → > 30 (both bullish and bearish branches)
- Test
inpMSSRequireFVG=false separately
Success Criteria
More OBs passing MSS without sacrificing PF (target: PF ≥ 2.0, more trades)
Problem
checkForMSSBefore()detects a 3-point swing structure (firstPivot → swing → OB → MSS break) but the time windows are too tight for XAUUSD M15:lookback=15(M15 bars per swing segment)lastCandleCheck > 12(break scan limit)inpMSSRequireFVG=trueResult: only 16 of 3695 valid OBs (0.35%) pass MSS detection over 4 years.
ICT Context
The logic is correct — for a bearish OB:
firstHigh → lastLow → lastHigh(OB) → break below lastLow. The issue is purely the time constraints. XAUUSD swing structures often take 20–80 M15 bars to form, not 15.Planned Fix
checkForMSSBefore(int lookback = 15)→ default 40lastCandleCheck > 12→ > 30 (both bullish and bearish branches)inpMSSRequireFVG=falseseparatelySuccess Criteria
More OBs passing MSS without sacrificing PF (target: PF ≥ 2.0, more trades)