TQTradingQuery

Gaps · MES

How often does a gap down on MES get filled the same day

57.7%

fill rate

n=1042025-08-31 to 2026-09-07

fill rate

57.7%

avg gap points

29.85

num filled

60

num not filled

44

Methodology

Computed by independently generating and running analysis code against real MES 1-minute bars from 2025-08-31 to 2026-09-07, 25 separate times in parallel, then taking the answer the largest group of independent attempts agreed on. The exact code is shown below.

Show the code

et = to_et(bars)
rth = rth_session(et)
rth = rth.copy()
rth['date'] = trading_date(rth)

daily = rth.groupby('date').agg(open=('open','first'),
                                  high=('high','max'),
                                  low=('low','min'),
                                  close=('close','last'))
daily = daily.sort_index()

prev_close = daily['close'].shift(1)
daily['prev_close'] = prev_close

gap_down = daily[daily['open'] < daily['prev_close']].copy()
gap_down['filled'] = gap_down['high'] >= gap_down['prev_close']

n = len(gap_down)
if n > 0:
    fill_rate = float(gap_down['filled'].mean())
    avg_gap_size = float((gap_down['prev_close'] - gap_down['open']).mean())
else:
    fill_rate = None
    avg_gap_size = None

result = {
    "sample_size": int(n),
    "fill_rate": fill_rate,
    "avg_gap_points": avg_gap_size,
    "num_filled": int(gap_down['filled'].sum()) if n > 0 else 0,
    "num_not_filled": int((~gap_down['filled']).sum()) if n > 0 else 0,
}
  • Generated and independently re-derived 25 times, then checked for logical consistency, before being shown to you -- the figures above are the answer the largest number of those independent attempts agreed on. Still a generated, one-off calculation, treat it as a rough, one-off analysis rather than a permanent fixture.

This is historical statistical information only. It is not investment advice, and past performance does not indicate future results. Trading involves risk of loss.