Ask a historical question
Index futuresAsk in plain English about how index futures have behaved. Code is written for your question, run on real price bars, and checked several independent ways before you see a number. This is one finished example.
The question
After days when the regular session (9:30-16:00 ET) closed down more than 1% from the prior regular-session close, how often did the next regular session close higher than the prior close, and what was the average next-day return?
MNQ
2019-06-01 to 2026-09-06
335
sample size
% next day up
56.7%
avg next day return
+0.28%
What this means
This looked at MNQ (a Nasdaq-100 futures contract) between June 2019 and September 2026, focusing on the 335 trading days where the regular trading session (9:30am-4pm ET) closed down more than 1% from the prior day's close. Of those 335 sharp down-days, the following regular session closed higher than the prior close about 56.7% of the time - so a bit more often than not, but far from a guarantee. On average across all 335 cases, the next session's return was about +0.28% (0.0028 as a decimal), meaning the typical bounce, when averaged with the losses, was modest. This is purely a description of what happened in this historical window, not a forecast of what will happen after future down days.
- 20 of 25 generated code attempts ran in the sandbox and passed an automated review; 6 of them produced the same set of measures, and the figures above are the median of those. Agreement between attempts lowers the chance of a one-off coding slip -- it does not prove the code matches what you meant, so treat the definitions and the code below as the source of truth. This is a one-off calculation, not a permanent fixture.
Show the code
The actual analysis code behind this answer, read-only.
et = to_et(bars)
rth = rth_session(et)
dates = trading_date(rth)
rth = rth.copy()
rth['date'] = dates
daily_close = rth.groupby('date')['close'].last().sort_index()
daily_ret = daily_close.pct_change()
# days where session closed down more than 1% from prior close
down_days = daily_ret < -0.01
# next day return relative to that day's close
next_ret = daily_ret.shift(-1)
mask = down_days & next_ret.notna()
events = next_ret[mask]
sample_size = int(mask.sum())
if sample_size > 0:
pct_up = float((events > 0).mean())
avg_ret = float(events.mean())
else:
pct_up = None
avg_ret = None
result = {
"sample_size": sample_size,
"pct_next_day_up": pct_up,
"avg_next_day_return": avg_ret
}
This tool provides historical statistical information only. It is not investment advice, and past performance does not indicate future results. Trading involves risk of loss.
- Instrument
- MNQ (Micro Nasdaq-100 futures), back-adjusted continuous series
- Data window
- Jun 1, 2019 to Sep 6, 2026
- Snapshot
- Sep 24, 2026
- Cross-check
- 6 of 20 completed attempts (25 requested) measured the same things
For context: across all 1,844 regular sessions in the same window, this market closed up on 56.4% of days, averaging 0.09% per day. The observations here are not independent (sharp drops cluster in volatile stretches such as 2020 and 2022), and a figure near the all-days rate says nothing special about days after drops — a number alone is not an edge. Agreement between attempts checks that the code is consistent, not that it measures what you meant — read the definitions and the code above. Futures series are stitched across contract rolls; percent moves that span a roll are approximate.
More answers computed the same way
Each page shows its sample size, window, methodology, and the code.
- How often does a 5-minute opening range breakout on MNQ continue in the same direction for the rest of the sessionMNQ · continuation rate 48.5% · n=130
- How does MNQ react when price touches the prior day's high -- does it break through or bounceMNQ · touch count 150 · n=150
- What share of the full daily range does MES's first 30 minutes typically account forMES · mean share 46.7% · n=130
- How often does MYM revert to VWAP after moving 1 standard deviation away from itMYM · reversion count 529 · n=627
- Is MNQ's average daily range on Fridays different from the rest of the weekMNQ · friday count 49 · n=258
- Is MES more volatile on Mondays than on WednesdaysMES · monday count 54 · n=107
- How does MYM's average volume differ across days of the weekMYM · Mon 89,531.85 · n=130
- How often does a gap up on MNQ get filled the same dayMNQ · fill rate 54.1% · n=146
- How often does a gap down on MES get filled the same dayMES · fill rate 57.7% · n=104
- How long does it typically take for a gap on MYM to fill, when it doesMYM · gap count 115 · n=59
- What is the distribution of MNQ's daily trading rangeMNQ · mean range 409.12 · n=130
- Does a narrow daily range day on MES tend to be followed by a wider range dayMES · n narrow days 128 · n=258
Ask your own question
Covers Micro E-mini index futures (MNQ, MES, MYM) from 2019 onward, on 1-minute bars. Stocks and ETFs are not covered by this tool yet. You confirm the exact question and its credit cost before anything is charged.