TQTradingQuery

Day of week · MNQ

Is MNQ's average daily range on Fridays different from the rest of the week

49

friday count

n=2582025-08-30 to 2026-09-06

friday count

49

rest count

209

friday avg range

380.63

rest avg range

363.99

diff friday minus rest

16.64

% diff

4.6%

friday std

207.82

rest std

196.26

t stat approx

0.51

Methodology

Analysis code was generated by an AI model up to 25 times, run in a sandbox against real MNQ 1-minute bars from 2025-08-30 to 2026-09-06, and reviewed automatically. Attempts that computed the same set of measures were grouped, and the figures shown are the median of the largest group. Agreement between attempts lowers the chance of a one-off coding slip; it does not prove the code matches the question, so the exact code is shown below.

Show the code

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

daily = rth.groupby('trading_date').agg(high=('high','max'), low=('low','min'))
daily['range'] = daily['high'] - daily['low']
daily['dow'] = pd.to_datetime(daily.index).dayofweek  # Friday = 4

fri = daily[daily['dow'] == 4]['range']
rest = daily[daily['dow'] != 4]['range']

n_fri = len(fri)
n_rest = len(rest)

if n_fri > 0 and n_rest > 0:
    fri_mean = float(fri.mean())
    rest_mean = float(rest.mean())
    diff = fri_mean - rest_mean
    pct_diff = float(diff / rest_mean * 100) if rest_mean != 0 else None

    fri_std = float(fri.std()) if n_fri > 1 else 0.0
    rest_std = float(rest.std()) if n_rest > 1 else 0.0

    se = np.sqrt((fri_std**2)/n_fri + (rest_std**2)/n_rest) if n_fri > 0 and n_rest > 0 else None
    t_stat = float(diff / se) if se and se > 0 else None

    result = {
        "sample_size": int(n_fri + n_rest),
        "friday_count": int(n_fri),
        "rest_count": int(n_rest),
        "friday_avg_range": fri_mean,
        "rest_avg_range": rest_mean,
        "diff_friday_minus_rest": diff,
        "pct_diff": pct_diff,
        "friday_std": fri_std,
        "rest_std": rest_std,
        "t_stat_approx": t_stat,
    }
else:
    result = {
        "sample_size": int(n_fri + n_rest),
        "friday_count": int(n_fri),
        "rest_count": int(n_rest),
        "friday_avg_range": None,
        "rest_avg_range": None,
        "diff_friday_minus_rest": None,
        "pct_diff": None,
        "friday_std": None,
        "rest_std": None,
        "t_stat_approx": None,
    }
  • Generated by an AI model up to 25 times, run in a sandbox, and reviewed automatically; the figures above are the median of the largest group of attempts that computed the same measures. Agreement between attempts lowers the chance of a one-off coding slip -- it does not prove the code matches the question, so check the definition and code. A one-off calculation, not 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.