Join waitlist
Strategies / Mean reversion / Gap Catcher

Gap Catcher: Buying Weakness Against the 5 Day Close

Gap Catcher buys when an intraday bar closes below the daily close from 5 days ago and sells once price climbs back above it. A 1% stop is placed on the entry bar. It only trades long.

Mean reversionLong onlyIntradayEUR/USD3 min
4.51Profit factor
123,862Net profit USD
74.64%Win rate
631Trades
-33,131Max drawdown
196Avg trade

Best run of 17. EUR/USD, 3 min, spread 1, from run pf:2026-09-15-EURUSD-3m.tsv:2.

Entry rules, long

  1. The bar's high differs from the previous bar's low (any size move)

Exit rules

  1. Stop loss 1%

Test conditions

PeriodUp to 2026-09-15
InstrumentEUR/USD, 3 minutes
Spread1 points
Contracts1
Starting capital1,000,000
CostsSpread only. Commissions and overnight financing are not included.
BarsUp to 200,000 bars, fewer where the instrument has less history
Last tested2026-09-15
Parameters (4)
positionSize
Lots per trade
1
minGap
Minimum bar-to-bar move as a fraction
0
lookbackDays
Days back for the reference close
5
stopLossPct
Protective stop, percent
1

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
EUR/USDBest run3 min4.51 63174.64123,862 USD-33,131
EUR/USD2 min4.13 54464.7189,237 USD-33,319
EUR/USD5 min2.16 87177.1568,512 USD-33,907
EUR/USD10 min1.64 1,42680.8677,394 USD-25,468
Dow Jones2 min1.35 58184.687,098 EUR-3,933
DAX 403 min1.18 87579.774,409 EUR-3,779
Dow Jones5 min1.15 94281.428,114 EUR-7,654
S&P 5002 min1.15 66773.16593 EUR-352
Dow JonesDaily1.14 3,50234.4724,548 EUR-10,514
DAX 405 min1.13 1,13478.224,154 EUR-3,691
Dow Jones10 min1.12 1,54076.9512,873 EUR-6,685
DAX 4010 min1.11 1,74174.676,526 EUR-3,487
Dow Jones30 min1.10 1,30866.7412,871 EUR-8,354
FTSE 100Daily1.10 2,39242.986,899 EUR-2,694
Dow Jones1 hour1.09 1,07361.1411,168 EUR-9,054
Dow Jones15 min1.08 1,64271.6211,115 EUR-8,388
DAX 40Daily1.04 3,11837.464,962 EUR-4,536

Charts

Results by run

Top 10 of 17 runs. The full list is in the table above.

Above 1.0 made money, below 1.0 lost money.

The code

ProBuilder, rewritten to house standard

// ============================================================
// Gap Catcher
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: 3 minutes
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false
DEFPARAM PreloadBars = 1000

// --- Parameters ---
positionSize = 1          // lots per trade
minGap = 0                // bar-to-bar move, as a fraction, that must be exceeded
lookbackDays = 5          // compare the close with the daily close this many days ago
stopLossPct = 1           // protective stop, percent of entry price

// --- Indicators ---
upMove = abs((high - low[1]) / low[1])
downMove = abs((low - high[1]) / high[1])
pastClose = DClose(lookbackDays)

17 more lines: the entry and exit rules.

Setup

How to load it

  1. Copy the code with the copy button on the code block.
  2. In ProRealTime, open a chart of the instrument and timeframe you want to test, then open ProOrder > New trading system and choose "Create with programming".
  3. Paste the code, give the system a name and save it.
  4. Click "Backtest", set your own spread and position size, and run it before you consider trading it live.
Longer historyRe-run on up to 1,000,000 barsS&P 500 · 2 min · older data -1,005.27 EUR

With 915,000 bars available on S&P 500 2 minutes, net profit turned to EUR -412.07 from EUR 593.2 in the standard run, because the older data alone lost EUR 1,005.27.

S&P 500 · 2 min

Bars available915,000
Net, standard 200,000-bar run593.20 EUR
Net, long run-412.07 EUR
Net on the older data alone-1,005.27 EUR
Read this firstKnown weaknesses4 points
  • Drawdowns are large on the forex runs: 33,131 USD on EUR/USD 3 minutes against 123,862 USD of profit.
  • With minGap at 0 the move filter passes on almost every bar, so the gap part of the name does little in practice.
  • The stop is only set on the entry bar, as in the original code, so later bars in the trade may not carry it.
  • Profit factors on the index runs are thin, for example 1.04 on DAX 40 Daily and 1.08 on Dow Jones 15 minutes.

Questions

About this strategy

Can I run it in ProOrder?

Yes, it is fully automated and long only. Because the stop is set only on the entry bar, check that your protection stays in place in demo before going live.

How did it do on different instruments?

EUR/USD 3 minutes led with 123,862 USD over 631 trades and a 74.64% win rate. Every run in the table was profitable, across EUR/USD, Dow Jones, DAX 40, FTSE 100 and S&P 500.

How much drawdown at 1 contract?

With 1 contract and a 1 point spread, EUR/USD 3 minutes dropped 33,131 USD from peak. S&P 500 on 2 minutes had a much smaller 351.70 EUR drawdown.

Why short intraday bars?

The rule compares each bar with a fixed daily level, so faster bars catch the dip sooner. The 2 and 3 minute EUR/USD charts gave the highest profit factors.

Related

Strategies like this one

Slow MACD Slope

Best run on the same market, EUR/USD.

6.80 PF · 7,305 trades

Turn Of The Month

A similar profit factor.

4.86 PF · 47 trades

Monday Dip Buy

Also a mean reversion strategy.

n/a PF · 146 trades

Want to see how this fits a wider portfolio? Put your name on the ProRealAlgos waitlist.

The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.

Past backtest results do not guarantee future results. This is not financial advice. Curated and maintained by ProRealAlgos. ProRealTime™ is a trademark of ProRealTime SAS. prorealalgos.comStatsDocs