The short answer

About half of a “held” rate here came from which way the day went, not from anything about the level. “Held” means price touched a line and the day ended on the open’s side of it, so a line above the open on a day that ended lower counts as held whatever the line is.

On recorded QQQ, SPY and IWM sessions, a random line at the same distance held 48.8% of the time price touched it. Rebuilt GEXfreak morning-map levels, read at 10:00 ET, held 51.5%, a gap that does not stand once the comparisons tried are counted. The 09:15 ET map did no better than random lines.

The 75% came from an earlier GEXfreak search of many rules; rescored, its pick held about as often as random lines under the same conditions, on too few touches to say more.

The levels are rebuilt after the fact, not copied from the live map.

What to do with this

  • Compare any “held X%” with a random line at the same distance over the same sessions (the sheet below does this).
  • Ask what share of touches were on the far side of the day’s move (above the open on a day that ended lower, below it on a day that ended higher). Here 26.3% were, all counted as held; for the 75% rule, 29 of 97.
  • Count the touches behind a rate: with 100 touches, real and random hold rates can differ by about 11 percentage points on luck alone. Treat a Prism wall or flip as a reference line, not a prediction, until your own log of about 100 touches (about 240 logged levels, six months at two a day) beats random lines by more than 11 percentage points. At 50 touches, a gap above 16 is only a lead.
REAL PRICES · REBUILT LEVELS

Morning map levels against random lines at matched distances

1,161 symbol-sessions · QQQ, SPY, IWM · 2023–2024

The prices are recorded history. The walls are rebuilt after the fact from each prior session’s stored option data, so they can differ from the levels a live Prism by GEXfreak book would show. No trades are involved.

View
Measure
40%45%50%55%60%Share of touched lines that held (axis starts at 40%)09:15 ET maplift +0.1 ppreal 49.6% · random lines 49.5%10:00 ET maplift +2.7 ppreal 51.5% · random lines 48.8%
  • Real levels
  • Random lines at matched distances, same day and side
  • Thin line: 90% interval of the lift, drawn from the random dot
At the 09:15 ET map, 49.6% for real levels against 49.5% for random lines: lift +0.1 pp, 90% interval −2.3 to +3.0, one-sided p 0.4855. At the 10:00 ET map, 51.5% against 48.8%: lift +2.7 pp, 90% interval +0.1 to +5.5, one-sided p 0.044. Against the many-tries correction over the 8 comparisons, neither map’s result passes. pp is percentage points.
Held, if touched: real levels and random lines, by map. Lift is real minus random; pp is percentage points.
MapTouched real levelsRealRandomLift90% intervalOne-sided p
09:15 ET1,97349.6%49.5%+0.1 pp−2.3 to +3.00.4855
10:00 ET1,79251.5%48.8%+2.7 pp+0.1 to +5.50.044
Table, method and data source
Touched real levels at the 10:00 ET map, by quarter: held of touched for lines below the open (support) and above it (resistance), and how often the day closed higher. Symbol-sessions are those with a scored level; sessions without complete minute bars were dropped
QuarterBelow the open: held of touchedAbove the open: held of touchedSymbol-sessions closing higherDropped, missing minute bars
2023 Q281 of 144 (56.3%)48 of 146 (32.9%)96 of 184 (52.2%)2
2023 Q357 of 122 (46.7%)76 of 113 (67.3%)85 of 177 (48.0%)10
2023 Q479 of 136 (58.1%)49 of 115 (42.6%)103 of 182 (56.6%)3
2024 Q183 of 129 (64.3%)66 of 130 (50.8%)99 of 179 (55.3%)0
2024 Q263 of 121 (52.1%)57 of 113 (50.4%)61 of 116 (52.6%)73
2024 Q3100 of 180 (55.6%)55 of 103 (53.4%)77 of 160 (48.1%)32
2024 Q452 of 122 (42.6%)57 of 118 (48.3%)74 of 154 (48.1%)37
All515 of 954 (54.0%)408 of 838 (48.7%)595 of 1,152 (51.6%)157
  • Levels are rebuilt from the prior close’s option data, and the 10:00 ET map is re-evaluated at the 09:59 ET price. Distance is measured in implied moves: the spot price times at-the-money implied volatility divided by the square root of 252. Only lines within 0.05 to 1.5 implied moves of the open are kept. The random lines are weighted to the real lines’ distance mix (deciles within map, kind of level and side). Intervals are 90%, from resampling 20-session calendar blocks 2,000 times (random start 20260926); the p-value is one-sided, the share of resamples in which real did no better than random.
Data receipt: 16 sources, built 2026-09-28

Each source is fingerprinted with SHA-256, so a changed file changes the fingerprint. A single file shows its own hash; a source of several files shows one hash of their names and hashes.

  • Scored lines: real levels and their random lines, 37,642 rows · 52d2c390c1bf469f…
  • Study results: every table · 2f94e47508671c05…
  • Correction and split checks (run after the results were read) · 9fbc66217f3c785f…
  • Study report · 3491560ddb8c481c…
  • Study definitions, written before the scoring run · 80325bdd7db7c8b5…
  • Amendment: random lines weighted to the real lines’ distances · f0fd4f9d07c1a6d8…
  • Rebuilt morning levels, QQQ · d0f6442ee91b4ecb…
  • Rebuilt morning levels, SPY · 8dcab0f393a92190…
  • Rebuilt morning levels, IWM · 087360ffee3a86c4…
  • Files-read log: no 2025 file opened · d15633e71a5c292a…
  • Scoring run summary · 0939c04ad2a0c669…
  • Earlier hold rule: the chosen rule · 56456154595e762e…
  • Earlier hold rule: audit of its search · 07726037084677fc…
  • QQQ one-minute bars, regular hours, April 2023 to December 2024 (21 files) · eadaa87221812ef8…
  • SPY one-minute bars, regular hours, April 2023 to December 2024 (21 files) · 148d384aee83bca3…
  • IWM one-minute bars, regular hours, April 2023 to December 2024 (21 files) · 4598d8444663e8e1…

How we tested

The data are 1,161 symbol-sessions (one fund on one day) of QQQ, SPY and IWM on 434 dates, 3 April 2023 to 31 December 2024; 1,152 of them had a scored level at 10:00 ET. Each real level got three random lines on the same day and side, at distances copied from other days (in expected moves, called implied moves in the figure’s note): 8,508 real lines and 25,515 random (three per real line, less nine that could not be placed). A map is scored from the open after it is read to 15:59 ET.

Four results were compared at each map, each as real minus random (the lift): whether price touched the line; whether a touched line held; whether a fade won (a back-tested bet that price turns back at the line, with target and stop 0.35 expected moves away); and the average result, in R, of a back-tested trade from the open toward the line (the stop sits as far the other way). Of the eight comparisons, the held results do not stand apart from random lines once the correction in Limits is applied; one trade result is left open there.

At 10:00 ET, 471 of the 1,792 touched real levels (26.3%) were on the far side of the day’s move, and all held; the other 1,321 held 34.2%. For random lines the shares were 24.1% and 32.5%. So about half of each hold rate is the far-side share. By quarter, real levels on one side held from 32.9% to 67.3% as the share of days closing higher moved (the table is in the figure’s method note), so a support–resistance gap can come from the market’s direction.

The 75.2% came from an earlier search of 133,682 rules, each up to five yes/no conditions on a level (for example, whether it sat above the price); the best held 76 of 101 touches in the data that picked it. Rescored, its 97 touches (all support lines below the open, 70 sessions on 52 dates, 22 closing higher) held 72.2%, against 72.7% for random lines under the same five conditions (lift −0.5, 90% range −11.7 to +11.1 percentage points). That is too few touches to separate the rule from random lines either way. Why those conditions go with high hold rates was not investigated.

Choosing rules on earlier quarters and scoring once on the next did no better: each quarter from 2023 Q4 the search chose the best of 8,914 rules of up to three conditions, by lift over random lines, and its picks averaged +16.0 percentage points in their own data and −5.0 the next quarter. Choosing by raw hold rate gave +6.4 and +3.5 (−3.2 to +10.3 percentage points); random lines alone gave +11.4 and −0.2, so a search can find good-looking rules where there is nothing to find.

Check it yourself with Prism and a spreadsheet

Test any level you can write down before the window opens: a Prism wall or flip read at 10:00 ET, or a prior-day high or low. Choose one symbol and one kind of level, in writing, before you start (a kind can have two lines a day, such as the call wall and the put wall, or the prior-day high and low). Skip levels closer to the open than 0.05 or farther than 1.5 of Prism’s expected move, the study’s band (it used its own rebuilt one-day move, so Prism’s figure is close, not identical). Your broker chart can backfill only prior-day highs and lows, which the study did not test; 20 sessions of them give about 17 touches, too few to see a gap under 28 percentage points.

The sheet is a cruder version of the study: one random line per level at a dollar distance, scored from the 10:00 ET bar’s open to the 15:59 ET close. Data starts in row 3; row 2 holds only a starting distance in H2 (use your first level’s distance; each later random line copies the distance in the row above, so nothing else is typed there). Write B at 10:00 ET before the bar opens and never edit it; type A, C, D, E and F after 16:00; the rest are formulas.

The columns: what to write, and where it comes from
ColumnWhat to writeWhere it comes from
ADateTyped
BLevelTyped: the Prism wall or flip at 10:00 ET, or a prior-day high or low
COpenTyped: the open of the 10:00 ET one-minute bar
DHighTyped: the highest price from 10:00 to 15:59, regular hours (a 360-minute bar from 10:00, or your chart’s range tool, gives it)
ELowTyped: the lowest price over the same bars
FCloseTyped: the close of the 15:59 ET bar
GSide of the open=IF(B3>C3,"above","below")
HDistance from the open, in dollars=ABS(B3-C3)
ITouched=IF(AND(E3<=B3,B3<=D3),"Y","N")
JHeld=IF(I3="Y",IF(G3="above",F3<B3,F3>B3),"")
KRandom line=C3+IF(G3="above",1,-1)*H2
LRandom line touched=IF(AND(E3<=K3,K3<=D3),"Y","N")
MRandom line held=IF(L3="Y",IF(G3="above",F3<K3,F3>K3),"")
NFar side of the day’s move=IF(OR(AND(G3="above",F3<C3),AND(G3="below",F3>C3)),"far","near")

The steps, and what a small log can say

  • 1. Log one row for each level each day. Worked line from the record: QQQ on 14 April 2023, a call wall: B 320.00, C 319.78, D 320.35, E 315.64, F 318.59. To check your formulas, type it in row 3 with 2.61 in H2.
  • 2. Fill G to N down from row 3. G is above, H 0.22, I Y, J TRUE, N far. K is 319.78 + 2.61 = 322.39, above the high, so L is N and M blank. SPY on 6 April 2023 (B 407.00, C 406.16, D 409.47, E 406.09, F 409.19) has I Y and J FALSE.
  • 3. Check: =COUNTIFS(N3:N1000,"far",I3:I1000,"Y",J3:J1000,TRUE)/COUNTIFS(N3:N1000,"far",I3:I1000,"Y") must return 1, because a far-side touch always counts as held; if not, a formula is wrong. The study’s was 471 of 471.
  • 4. Compare. Real held rate: =COUNTIF(J3:J1000,TRUE)/COUNTIF(I3:I1000,"Y"); random: the same with M and L; the lift is the first minus the second. Far-side share of touches, real: =COUNTIFS(N3:N1000,"far",I3:I1000,"Y")/COUNTIF(I3:I1000,"Y"); random: the same with L. If the real share is larger, that part of the lift is the day’s direction, not the level.
  • 5. The smallest gap you can see. =0.0268*SQRT(1792/COUNTIF(I3:I1000,"Y")) is roughly the smallest gap your log can tell from luck: the study’s own 90% range (0.0268 each side, on 1,792 touches) scaled to your count; at 100 touches it returns 0.11. The sheet is cruder, so treat it as a floor.
What a log of each size can and cannot say (levels to log at the study’s touch rate)
Touched levelsLevels to logSmallest gap it can seeWhat follows
20about 5025 percentage pointsOnly a gap as large as the 75% claim’s (26 percentage points over random lines) would show; keep the level as a reference.
50about 12016 percentage pointsA gap above that is a lead: log 50 more under the same written rule before relying on it. A smaller gap is a reference.
100about 24011 percentage pointsA gap above that is worth checking again on days you have not looked at. This study’s +2.7 percentage points needed 1,792 touches to be seen at all. A smaller gap is a reference.

Limits

Scope: touched morning map levels against random lines at a matched distance, for QQQ, SPY and IWM only, not other funds, stocks or horizons.

  • Rebuilt, not live: the levels were not checked against the live map, so what you log from Prism at 10:00 ET may differ. Against our research rebuild at five-minute marks, the 10:00 ET map’s walls matched the wall in force at 10:00 to within one strike on 95.3% of 1,754 SPY and QQQ wall records (94.5% for QQQ alone) and its flips on at least 99.5%; the 09:15 ET map has no row in force in that rebuild, so its walls were compared with the first usable row, at 09:36, and matched on 77.8% of 1,756 records. IWM has no five-minute rebuild and was not compared. The test was written after its author had seen the earlier run’s results, so it is not blind, and there was one author.
  • Size of the test: the 90% range for the 10:00 ET held lift was +0.1 to +5.5 percentage points, so it cannot rule out a real gap of up to 5.5 percentage points, or none. Across eight random-against-random comparisons the largest gap was 1.2 percentage points and 0.008R, below the real +2.7 percentage points. The lift’s far-side-mix part (+1.5) and other-touches part (+1.3) both have 90% ranges that include zero, so the split is descriptive.
  • Number of looks: eight comparisons were named in advance; the study also read 20 hold rates split by kind of level, side and map (one subgroup showed +4.8 percentage points, one-sided p 0.0175, and is not counted as a finding). With that many looks one may seem good by luck, so a correction for the eight (Benjamini and Hochberg, 10% false-discovery rate), run after the results were read, asks for a stricter bar of 0.025 on the 10:00 ET held result. Its one-sided p-value (how often re-drawn random results did as well) was 0.044, so it does not pass.
  • The earlier rule: the 75.2% and its rule count are the earlier run’s own recorded values, not rebuilt here, and it was chosen in the data it was measured on. Search luck alone does not fully account for it: on shuffled hold results the best rule averaged 67.1% and none of 400 runs reached 75.2%; shuffling whole days, it averaged 68.7% and 5 of 400 reached it.
  • Missing minute bars: 157 symbol-sessions were dropped for incomplete bars; 98 of them (62.4%) closed higher, against 51.6% of those kept, so dropping them may have shifted the far-side mix (not tested).
  • One result is left open. A back-tested trade from the open toward the level, at 10:00 ET, averaged +0.040R against −0.003R for random lines, a lift of +0.043R (one-sided p 0.004). It was found after looking, in the same sessions it was measured on, so it is a pattern, not a confirmed result; the correction for the eight comparisons was applied to those same sessions. Its lift was +0.064R in 2024 and +0.013R in 2023 (2023 range −0.025R to +0.048R). Not tested: a later period or a rule written first; this page does not confirm it. Spreads and slippage are not modeled, so this page cannot say whether it would pay once they are counted.

Sources: Y. Benjamini and Y. Hochberg, Journal of the Royal Statistical Society: Series B 57(1): 289–300 (Oxford Academic): Controlling the False Discovery Rate: A Practical and Powerful Approach to Multiple Testing.

Sources and editorial notes

Read the primary references and editorial policy

Published by GEXfreak. Prism by GEXfreak is the chart product these guides describe. Every figure comes from recorded market history: prices, option open interest and recorded sessions. Where a figure shows trade results, the trades are back-tested, not placed. This is product education, not independent investment research.

Each figure lists its data sources and their SHA-256 fingerprints under “Table, method and data source”. The references below explain the statistics and the disclosure wording used on this page. They do not endorse GEXfreak or these studies.

For the product’s calculation and data boundaries, read Prism’s methodology.

All resources
REAL PRICES · REBUILT LEVELS

How often price reaches a wall

Distance sets how often.
0%25%50%75%100%00.511.522.5
QQQ · 1,671 sessions · dashed line: a plain price · dots: call walls in force at 09:36
REAL HISTORICAL DATA

Beat the naive trade first

What the stock paid anyway.
9 stocks · 2018–2024 · bar: share of five-session windows that ended higher · dashed line: half · price only
REAL PRICES · REBUILT LEVELS · BACK-TESTED TRADES

The win-rate trap

Same entries. Only the target moves.
4 rules × 7 target settings · 9 stocks · 2018–2024
REAL PRICES · REBUILT LEVELS · BACK-TESTED TRADES

How many trades until you know?

Four times the trades halve the doubt.
±0.0±0.2±0.4±0.6±0.8±1.020501002005001,0002,000All trades, 15:45: 312 trades, ±0.23RThrough 28 March 2023 (fallback prices): 222 trades, ±0.29RFrom 29 March 2023 (native prices): 90 trades, ±0.37RQuarterly months (Mar, Jun, Sep, Dec): 102 trades, ±0.36ROther months: 210 trades, ±0.31RAAPL: 49 trades, ±0.48RINTC: 29 trades, ±0.74RMSFT: 60 trades, ±0.46RNKE: 26 trades, ±0.65RNVDA: 71 trades, ±0.42RTSLA: 49 trades, ±0.54R
11 measured 95% ranges · one rule, rebuilt at the 5-minute mark · gold line: ±3.6/√trades
REAL PRICES · REBUILT LEVELS

Thirty-six level tests

36 situations, each measured against random lines.
Call wall 6 · Put wall 6 · Daily flip 4 · Weekly flip 4 · Monthly flip 4 · Prior-day high 6 · Prior-day low 6 · 2018–2024
REAL PRICES · REBUILT LEVELS · BACK-TESTED TRADES

Is the monthly flip a floor?

Four situations at the flip, each counted.
  • Support fade146
  • Resistance fade157
  • Break down72
  • Break up52
SPY and QQQ · 2018–2020 · 427 recorded events at the monthly flip

Check a level on your own chart.

Membership is required for live SPY, QQQ and IWM books. The figures on this page are recorded history, not a live book.

Create an account to save your layout; review current access conditions on the pricing page.