Research

Gamma Walls Reject Price 52.9% of the Time and So Does a Level With No Wall on It

We tested the call wall, the put wall and max pain on 1,848 sessions of our own SPY chain against the next ES cash session. Not one of the five levels is reached more often than an equally distant nameless price — the best is max pain at +2.0 percentage points, t = 1.64. The rejection claim looks real against a mirrored control, +7.3 points at t = 3.23, and disappears completely against a control on the same side of the market: +0.8 points at p = 0.7266. Price moved closer to max pain on 36.0% of sessions, and fading the call wall lost $38,712.86 over 147 trades.

Every GEX product on the market draws the same three lines: a call wall, a put wall and a max-pain strike. We put all of them, plus the two open-interest walls, through 1,848 sessions of our own SPY option chain against the next ES cash session. Not one level is reached more often than a nameless price the same distance away, and the largest gap in the table is max pain at +2.0 percentage points, t = 1.64.

The rejection test is the interesting half. Measured against a mirrored control, the walls look publishable: price closes back through the call wall 7.3 percentage points more often than through its mirror, at t = 3.23. We believed that for about ten minutes. Then we ran the control that keeps the side of the market fixed, and the whole thing went to 0.8 points at p = 0.7266.

The rule

  • Levels come from our own OPRA recording of the SPY chain, one row per contract per session, on the session that has just closed. The gamma walls are the strikes above and below spot with the largest open interest times gamma. The open-interest walls are the same without the gamma weighting. Max pain is the strike that minimises total option-holder value.
  • Each level is converted to a percentage of SPY spot and applied to the next ES cash session’s open, because ES trades near ten times SPY. Everything below is measured on the ES session.
  • Reached means the next session’s high touched a level above the open, or its low touched a level below it. Levels sitting within 2 ES points of the open are dropped.
  • Rejected means the session closed back on the open’s side of a level it had reached.
  • Control 1, the mirror: the same distance from the open, on the other side of spot.
  • Control 2, the shift: the same side of the market, same session, moved 30% further from the open. No wall on it, nobody watching it.

Both controls are measured exactly like the level.

The levels are not reached more often than nothing

The chart below is the reach test, not the rejection test. Each pair is one printed level against a price the same distance away on the other side of spot, with the median distance printed above the pair. The rejection test comes in the next section, and it is where the article actually turns.

Gamma walls, open-interest walls and max pain against equally distant mirrored prices, 1,848 ES sessions

LevelSessionsMedian distanceReachedMirrorEdgetp
Call wall (gamma)1,52020.1 pt41.2%43.8%−2.6pp−1.430.1525
Put wall (gamma)1,64129.99 pt36.4%34.4%+2.1pp1.240.2147
Call wall (open interest)1,74360.73 pt14.2%15.3%−1.1pp−0.960.3395
Put wall (open interest)1,838329.59 pt3.3%3.0%+0.2pp0.380.706
Max pain1,78970.29 pt16.0%14.1%+2.0pp1.640.1019

Not one row clears p = 0.10. The largest edge in the table is max pain, +2.0 percentage points at p = 0.1019, and two of the five edges are negative.

Read the distance column before the reach column, because the first explains the second. The gamma call wall is reached on 41.2% of sessions and sits 20.1 points from the open. The open-interest put wall is reached on 3.3% of sessions and sits 329.59 points away. A level a third of a thousand ES points below the open is not a forecast of anything. It is a strike where somebody once wrote a lot of contracts, and it stays on the chart long after the position that put it there stopped mattering.

The rejection test, and how we nearly published it

Reaching a level was never the claim anyway. The claim is that price is repelled by it. So we took the sessions that reached each wall and asked how many closed back through it, against the same measurement at the mirror.

WallSessions reachingClosed back throughMirrorEdgetp
Call wall (gamma)95452.9%45.6%+7.3pp3.230.0012
Put wall (gamma)80553.2%43.1%+10.1pp4.030.0001

Both sides. Both significant. Nearly two thousand sessions between them, a double-digit edge on the put wall, and a p-value of 0.0001. If you stop here you have a result, and a chart, and a course to sell.

The problem is the mirror. It sits on the other side of spot, so “reached it and came back” is a physically different journey depending on which way the market had to travel to get there. The S&P falls faster than it rises. A control that swaps the direction is measuring that asymmetry, not the wall.

The control that isolates the wall keeps the side and moves the price: same session, same direction, 30% further out, no wall on it.

WallClosed back throughShifted levelSessions reaching shiftedEdgetp
Call wall (gamma)52.9%52.1%831+0.8pp0.350.7266
Put wall (gamma)53.2%51.3%688+1.9pp0.720.4737

Nothing survives. The call wall’s 7.3-point edge becomes 0.8 points at p = 0.7266. The put wall’s 10.1 becomes 1.9 at p = 0.4737. Price closes back through a level with a wall on it at very nearly the rate it closes back through a level 30% further out with nothing on it at all.

This is the third time in this series that a mirrored control has produced a large, significant, entirely fake result. It happened with the floor pivots and Camarilla levels, where mirroring turned S2 into a 24.2-point edge and the same-side control took every one of the nine levels to nothing. It happened again with the 80% rule and the value-area edges. Now it has happened with the gamma walls, on a different instrument, a different data source and a different measurement.

We should have caught it faster than we did. What we have done since is change the rule rather than the article: a mirror is now a diagnostic for direction asymmetry, and it is never the control for a level. If a level test does not hold the side of the market fixed, it is not a level test.

Max pain is not a magnet

Max pain has a stronger claim than the walls do. It is not supposed to repel price, it is supposed to draw it. So the test is simple: does price end the session closer to the max-pain strike than it started?

Across 1,848 sessions it moved closer 36.0% of the time, with p rounding to zero, at a mean distance of 1.93% of spot. Price moves away from max pain almost two sessions in three.

WeekdaySessionsMoved closerp
Monday34640.2%0.0003
Tuesday38335.8%0.0
Wednesday38136.7%0.0
Thursday37232.3%0.0
Friday36635.2%0.0

Every weekday is significantly below 50%. If the pin were real, it would tighten into Friday expiry and the column would slope upward. Instead Thursday is the worst day in the table at 32.3%, and Monday, the day furthest from expiry, is the best at 40.2%.

One honest caveat, because 36.0% invites an overclaim. A random walk that starts at a distance from any fixed point moves away from it more often than toward it, simply because there is more room on the far side. So 36.0% is not evidence that max pain repels price. It is evidence that there is no pin. That is the whole claim, and it is enough to retire the level.

The traded version

The walls get traded one way in practice: sell the call wall when price reaches it. We ran exactly that. Entry at the wall on the touch, stop 0.4% above it, target the session open, one ES contract, costs in.

Fade the call wall
Trades147
Win rate30.6%
Average−$263.35
Total−$38,712.86
Median−$464.62
Profit factor0.415
Max drawdown$38,754.94
Best$2,981.21
Worst−$1,387.61
Sharpe−1.62
t−4.41
p0.0

A profit factor of 0.415 means the rule gave back two and a half dollars for every one it made. The drawdown of $38,754.94 is larger than the total loss, which is what happens when a losing rule has one good run in it — the best trade here made $2,981.21. The one setup this family actually gets traded as is also the worst-scoring thing in the article.

What we changed

Nothing, and that is now a five-time answer for this family.

We first tested the walls on QQQ chains and found they describe the day without being tradeable. We built them into a four-way confluence stack with volume profile, order flow and the opening range, and watched half a million dollars of backtest turn into a fill artefact. We measured the options flow at wall touches against fake levels and found the defence flow at both. Our intraday pilot on the flip level found it unusable on roughly a quarter of sessions. This is the fifth, and the first at daily resolution with a control that actually isolates the level.

The contrast is the point. One member of this family did survive, and it is not a line on a chart. Dealer gamma as a regime measure works: after a negative-gamma session the next ES cash session ranges 1.7 times wider, at t = 17.59 on the same 1,848 sessions, and it keeps a partial correlation of 0.2007 once yesterday’s range is removed. The same chain, the same window, the same greeks. What differs is the question.

Dealer positioning tells you how much the market will move. It does not tell you where it will go, and the strikes it prints are not places where price stops.

The ES archive behind every cash session in this test is for sale in the historical data packages.

Methodology: SPY option chains from our own OPRA recording, one row per contract per session with the exchange’s greeks, open interest and volume, joined to ES cash sessions built from our own tick archive. 1,848 sessions, 2 January 2019 to 28 May 2026, 09:30–16:00 New York. The chain store starts in 2019, so this is a 7.5-year test rather than the 12.5 years the ES tick archive carries. Walls and max pain are computed on SPY, converted to a percentage of SPY spot and applied to the next ES session’s open. Open interest is a daily OCC figure, so every level here describes the state at the START of the session, not intraday. Sessions after 29 May 2026 are excluded because the recorder’s last snapshot of the day is sometimes a truncated post-close chain. Levels within 2 ES points of the open are dropped. Controls: mirrored across the open at equal distance, and shifted 30% further from the open on the same side. Reach and rejection significance from Welch two-sample t-tests on the rates, max-pain convergence from a two-sided binomial test against 50%, trade P&L from a one-sample t-test. Costs $4.50 commission plus two ticks per round trip, $29.50 on one ES contract at $12.50 a tick.

Frequently asked questions

Does price actually get rejected at the gamma call wall?

Not measurably. Of the 954 sessions that reached the call wall, 52.9% closed back through it. A level 30% further out with no wall on it was closed back through on 52.1% of the 831 sessions that reached it. The gap is 0.8 percentage points at t = 0.35 and p = 0.7266, which is nothing.

Why do gamma walls look like they work in most tests?

Because the usual control is mirrored to the other side of spot, and that turns the test into a measurement of the S&P's up/down asymmetry. Against a mirror the call wall shows +7.3 percentage points at t = 3.23 and the put wall +10.1 points at t = 4.03, both apparently significant. Keep the side of the market fixed and move only the price, and both collapse to 0.8 and 1.9 points.

Is max pain a real magnet on the S&P 500?

No. Across 1,848 sessions price moved closer to the max-pain strike 36.0% of the time, and the p-value rounds to zero. The weekday split gives Monday 40.2%, Tuesday 35.8%, Wednesday 36.7%, Thursday 32.3% and Friday 35.2%, so there is no build into expiry — Thursday is the worst day in the table.

Which of the five printed levels is reached most often?

The gamma call wall, on 41.2% of next sessions, and that is a function of distance rather than of the wall: it sits 20.1 points away at the median. The open-interest put wall sits 329.59 points away and is reached on 3.3% of sessions. Its mirror is reached on 3.0%, an edge of 0.2 percentage points at p = 0.706.

Does fading the call wall make money on ES?

It loses badly. Selling the call wall on the touch with a stop 0.4% above and the session open as target produced 147 trades, a 30.6% win rate and −$38,712.86 after costs, an average of −$263.35 a trade. The profit factor was 0.415, the Sharpe −1.62 and t = −4.41.

Keep reading

Research

Absorption Carries Nothing on 247,090 S&P Bars

We graded absorption on twelve and a half years of ES five-minute bars using the exchange's own aggressor flag, splitting every bar into five strength buckets instead of a threshold. The most-absorbed fifth pays +0.0108 points against the pushing side over the next 30 minutes, at t = 0.23 and p = 0.8211. Effort correlates 0.4226 with the same bar's range and −0.0018 with what the next six bars do. Trading the strongest 5% of readings lost $164,275.39 fading the pusher and $142,213 following it, on 8,311 trades each.

Research

A Random Anchor Beats Three of the Four Meaningful Ones on ES

We ran anchored VWAP on 12.5 years of S&P 500 futures with five different anchors and nothing else changed. All five make money and all five clear significance, from t = 4.53 to t = 7.65. But an anchor placed at a bar drawn at random pays +$30.05 a trade against +$23.99 for the average of the four meaningful anchors, a difference of −$6.06, and only 1 of the 4 beats it. The two anchors the literature recommends most, the swing high at +$13.25 and the swing low at +$19.35, are the two worst columns in the table.