Gamma Field (SPX + SPY) — Plain-English Guide
What this is: a web page for your phone that shows your 1-OTM call and put charts (each with its own fear/greed and TTM panes), the SPX and SPY charts with all your levels, and the dealer gamma map. On top, one plain line tells you CALLS, PUTS or WAIT, and a 5-item checklist shows why.
Information only — not financial advice. The page only reads market data. It cannot place, preview or cancel orders. Its built-in helper blocks every order and preflight address.
Part A — Set it up from zero (about 15 minutes)
What you need
- Your phone (iPhone or Android).
- A computer is easiest for one step (uploading a file). A phone can work too.
- Your Public.com account (you already have this).
- One free Cloudflare account. It hosts the page and the small helper that talks to Public. They share one web address, so there is nothing else to set up.
Why Cloudflare Pages?
- Public does not let a web page talk to it directly. Browsers block it (this is called "CORS"), so a small helper ("proxy") has to pass the requests along.
- Cloudflare Pages runs that helper (the file _worker.js) and serves the page from the same free account and the same address.
- Cloudflare's docs say drag-and-drop uploads accept "a zip file or single folder of assets", and that "a _worker.js file is supported" with drag and drop. So you upload one zip and you're done. No code tools are needed.
Step 1 — Get your Public API secret key
- On a computer or phone, sign in at public.com.
- Go to Settings → Security → API. Direct link:
https://public.com/settings/security/api - Look for the button that creates (generates) a secret key. Copy the key.
- Treat it like a password: don't share it or post it.
The page uses the key only to read quotes, option chains and 1-minute bars. The helper refuses order addresses even if something asked for them.
Step 2 — Make a free Cloudflare account
- Go to dash.cloudflare.com and look for Sign up.
- Enter your email and a password, then confirm your email when Cloudflare sends the message.
- You don't need a domain name and you don't need to pay for anything.
Step 3 — Put the page online (drag and drop)
- Download
spx_gamma_field.zipand keep it zipped. Inside,index.htmland_worker.jssit at the top level; that's what Cloudflare expects. - In the Cloudflare dashboard, go to Workers & Pages.
- Select Create application → Get started → Drag and drop your files. These are Cloudflare's own words from their Direct Upload guide. If you see separate "Workers" and "Pages" choices, pick the Pages one.
- Enter a project name, for example
jacques-gamma. - Drag the zip into the upload box. On a phone, look for a "select from computer" or file-picker link instead.
- Select Deploy site.
- Your page is now at
https://<project-name>.pages.dev, for examplehttps://jacques-gamma.pages.dev. If the name is taken, Cloudflare adds a few random letters. Use the address it shows you.
Step 4 — Open it on your phone and add your key
- On your phone, open the address in Safari (iPhone) or Chrome (Android).
- The page starts in Demo mode: a saved real session, so it's never blank.
- Tap ⚙ (top right).
- Set Data source to Public.com — real-time.
- Paste your secret key into Public API secret key.
- Tap Save. The page reloads with your live data.
- Leave Advanced → Proxy URL empty. The page finds its own helper automatically.
Your key is saved only in this phone's browser. Forget keys erases it.
Step 5 — Add it to your Home Screen (full-screen app)
- iPhone (Safari): tap the Share button (square with an arrow), then Add to Home Screen, then Add.
- Android (Chrome): tap the ⋮ menu, then Add to Home screen (or Install app).
It opens full-screen with its own icon. While Follow is on, it asks the phone to keep the screen awake.
Step 6 — Check that it works
- Market hours (9:30–4:00 ET):
- The pill at the top right is green and reads like LIVE 0.6s. That's how old the newest quote is.
- Prices tick about once a second.
- The speed line at the bottom shows the real numbers, e.g. "quotes 1.0s (net 80 ms) · paint 0.9 ms".
- Outside market hours:
- The pill says PUBLIC · CLOSED · 11-06.
- The page shows the last session, read off its last bar.
- If today's contracts have expired, the charts use the next expiry. The page tells you when it does.
- Pill colors:
- Green LIVE: data is fresh.
- Yellow STALE: quotes are a few seconds late. This is usually weak phone signal; it fixes itself.
- Red NO DATA: no quote for 15+ seconds. Check your signal. The page keeps retrying, waiting a bit longer each time.
- PAUSED: you switched apps. Polling stops to save battery and data, and comes back the moment you return.
Step 7 — If something goes wrong
| What you see | What it means | What to do |
|---|---|---|
DATA ERROR — tap ⚙ Settings, error says Public sign-in: HTTP 401 |
The key is wrong or was deleted | Make a new key (Step 1), paste it in ⚙, Save |
Error says HTTP 429 |
Too many requests to Public (limit: 10 per second per account) | ⚙ → Advanced → set Quotes every (ms) to 2000 |
Error says blocked by proxy |
Something asked the helper for a non-market-data address | Nothing to do: that's the safety lock working |
Error says network error |
No signal, or the site address is wrong | Check signal and address; it retries by itself |
| Contract chart says no bars yet right at 9:30 | The new contract hasn't traded a full minute yet | Wait one minute |
| Page looks old after you uploaded a new zip | Your phone kept the old copy | Pull down to reload. For the Home Screen app, close it and open it again |
| CBOE source shows a yellow "15m delay" | CBOE's free data is 15 minutes late | Use Public for live trading |
Optional extras
- Updating the page later:
- In Cloudflare, open your project.
- Select Create a new deployment.
- Drag the new zip in.
- A password for the helper:
- In the Cloudflare project settings, look for Variables (environment variables).
- Add one named
APP_PASSwith any password, then redeploy. - On the phone, open ⚙ → Advanced → Proxy password and type the same password.
- Your key is never stored on Cloudflare either way.
- Speed settings (⚙ → Advanced):
- Quotes every 1000 ms (the default). Each quote poll is a single Public request that brings SPX, SPY, VIX and both contracts.
- Gamma chain every 10 s.
- In total that's about 1.4 requests per second, well under Public's 10 per second.
Part B — How to read the page
Page layout, top to bottom
- Bottom Line (the big card): CALLS / PUTS / WAIT, the reason, and both checklists.
- Tape: SPX, SPY, the SPX÷SPY ratio, VIX and the gamma regime.
- Tool buttons:
- OTM 1/2/3: how far out of the money the charted contracts are.
- SPY/SPX overlay (on by default): the dashed SPY and SPX lines on the call and put charts and their fear/greed and TTM panes. Tap to hide them; the solid averages and the white arrows stay.
- Levels / More / Profile: turn the level lines and volume profile on or off.
- Follow: stick to the newest bar and keep the screen awake.
- Fit, +, -: zoom.
- 🔔: sound/vibrate on a new arrow.
- CALL chart (green edge) and PUT chart (red edge). These are the stars. Each has its own fear/greed pane and TTM pane.
- SPX chart and SPY chart. SPY has volume bars, pre-market high/low and VWAP bands.
- Gamma Map: tiles, the strike ladder, the net-gamma curve, IV skew and premium flow.
- Levels table: every level as SPY and SPX side by side.
- Signals + Scorecard: every arrow today and how it would have played out with $1,000.
The SPXW / SPY switch at the top picks which options you chart and which instrument the read runs on. SPXW is the default; SPX also drives the dealer map.
1. The Bottom Line
It reads like "PUTS — 4 of 5 agree". - CALLS or PUTS: 4 or 5 of the 5 checks agree and check #1 (fear/greed) is one of them. - LEAN CALLS or LEAN PUTS: 3 of 5 agree, including fear/greed. It tells you what's still missing ("wait for TTM + dealers"). - WAIT: anything else. - After 3:00 PM ET it always says WAIT (no new entries), just like your rules. - The yellow chip (for example PUT ARROW A (snap) at 1:37) appears when an arrow fired on the last closed bar. - The line under the headline shows the time of the bar being read, plus the status. Examples: "GETTING CLOSE", "CAREFUL · price above the expected-move box", or your simulated open trade with its stop and $ target in both SPY and SPX. - The next line is the SPY vs SPX dealer check (see section 5).
2. The five checks (in your order of importance)
The side that's leading is shown big; the other side is shown smaller underneath so you see both. 1. Fear/greed (Vix Fix): - For puts: greed is stretched (high) and starting to roll over while fear lifts. - For calls: fear is stretched and rolling while greed lifts. - 95+ means "maxed". 2. Price action (speed / quit): price stopped driving (your white dot, or an arrow) and took back the last candle. "Fast 6 ATR pop → relief fade likely" means the move was unusually quick. 3. Trend line: the color of the EMA13 line and whether the bars are on the right side of it. - Green / blue = up. - Gray = neutral. - Pink / red = down. 4. TTM momentum: the histogram has turned from stretched. - For puts: it's falling from a high reading. - For calls: it's rising from a low one. 5. Dealers (location): - Is price at the dealer ceiling (for puts) or floor (for calls)? Otherwise at the box edge or VAL/VAH/POC. - Does the gamma regime help? - Is premium flow leaning your way? - "· SPY+SPX agree" means both maps put the level at the same price.
3. CALL % and PUT % (the two bars)
These are your confluence score out of 100, using your weights:
| Points | What earns them |
|---|---|
| up to 30 | Fear/greed stretch |
| 15 | Curling while the other side lifts |
| 8 | Price quit driving |
| 7 | Took back the last candle |
| 15 | At the dealer wall (10 if at the box edge) |
| 5 | At VAL/VAH/POC |
| 10 | TTM turning |
| 5 | Volume exhaustion |
| 5 | Back over/under the 9 EMA |
| −20 | Outside the expected-move box on a trend move |
The small text under each bar lists exactly which parts counted.
4. Chart markers
| Marker | Meaning |
|---|---|
| ● white dot | Price quit (stall) |
| ● gray dot | Weak stall |
| × orange | The stall broke |
| ▲A / ▼A | Entry arrow with TTM (best grade) |
| ▲B / ▼B | Entry arrow without TTM. Take the scalp, no runner |
| "snap" | V-shaped turn |
| EX | Volume exhaustion (1.7× average volume at a 15-bar extreme, then a stall) |
| $ | Scalp target hit |
| out | Runner exit (the yellow out) |
| stop | Stop hit |
Lines on the SPX/SPY charts: - Solid green: ceiling. Solid red: floor. Gold: magnet. - Gold dashed: expected-move box. - Dotted green/red: the other instrument's ceiling/floor, converted. - Purple: VWAP and ±1σ bands. - Blue dotted: pre-market high/low (PMH/PML, from SPY's own pre-market). - More adds: - PDH/PDL/PDC (prior day high/low/close); - the flip; - max pain; - ORH/ORL (opening range, 9:30–9:44). - Profile draws the volume profile with POC (white) and VAH/VAL.
5. SPY and SPX numbers — everything shows both
- Every level is written as SPY / SPX, for example
737.80 SPY / 7400 SPX. The price axis on the SPX and SPY charts shows both too (7399.7·737.71). - A plain number is that instrument's own value from its own data. For example, the SPY floor comes from SPY's own 0DTE chain, and the SPX floor from SPX's chain.
- A number with ≈ was converted using the live SPX÷SPY ratio (about 10.03), because that instrument has no data of its own for it. For example, SPX has no pre-market, so SPX pre-market levels are SPY × ratio.
- Scalp target: 5 SPX points ≈ 0.5 SPY. Stops and $ targets are shown in both.
- Dealer agreement line:
- "floors agree 7350 SPX / 733 SPY ✓" means both option markets put the wall in the same place (within one SPX strike). That's stronger.
- "differ" means they disagree. Trust that level less.
- The levels table marks each gamma row agree or differ.
6. The dealer terms (one line each)
- Gamma: how fast dealers have to buy or sell to stay hedged as price moves.
- Long gamma (above the flip): dealers sell rips and buy dips, so price chops and pins.
- Short gamma (below the flip): dealers chase the move, so moves run further.
- Gamma flip: the price where dealers switch from long to short gamma.
- Floor (put wall): the strike below price with the most put gamma. Often support, and the target for puts.
- Ceiling (call wall): the strike above price with the most call gamma. Often resistance, and the target for calls.
- Gold magnet: the price the biggest gamma strikes pull toward.
- Max pain: the strike where option buyers as a group lose the most at expiry.
- Expected move: the ATM straddle price, i.e. how far the options market thinks price can go today.
- Net GEX: total dealer gamma in dollars per 1% move. Negative means short gamma.
- Open interest vs today's volume: the switch under the tiles. Open interest is yesterday's positions; volume is today's trading.
- Premium flow: dollars traded in calls (green) vs puts (red) since you opened the page.
- Strike ladder:
- Each row is a strike, with put gamma on the left (red) and call gamma on the right (green).
- The thin bright bar inside shows how much of that strike's volume came in the last 5 minutes.
- The white dashed line is spot, in SPY and SPX.
- Tags mark CEILING, FLOOR, FLIP, MAGNET, MAX PAIN and the other instrument's walls.
7. The contract charts
- Which contract: the CALL is the first strike above price; the PUT is the first strike below. With OTM 2 or 3 they move further out. The strike is shown in both instruments, e.g.
7380C ≈735.74 SPY. - Rolling: the contract switches to the next strike once price clears it by the roll buffer (1 SPX point, about 0.10 SPY). The header shows "rolls at …".
- Panes: each chart has the same white dots, arrows and $/out/stop marks as the underlying, plus its own fear/greed and TTM panes (the colored bars).
- Dashed SPY / SPX on the price chart: yellow dashes = SPY, fainter blue dashes = SPX. Each line is the real index close on its own hidden scale (like a TradingView "compare"), so its shape sits with the candles without squashing them. On the PUT chart the line is flipped: when the index falls the line goes up, the same way the put premium moves. The small legend at the top left shows the real last prices, e.g.
SPY 737.80 · SPX 7399.68. The dashed line's height is not a price you can read off the right-hand axis; that axis is the option premium. - Dashed SPY / SPX on the fear/greed pane: the contract's own greed (up) and fear (down) bars stay. SPY's greed (cyan) and fear (orange) are drawn as bright dashes, SPX's as faint dashes, on the same 0–100 scale. The header reads like
GREED 92 · FEAR 53 · SPY G 44 F 83 · SPX G 41 F 80. - Dashed SPY / SPX on the TTM pane: the contract's TTM bars stay; SPY's TTM (yellow, bright) and SPX's (blue, faint) are dashed on top.
- Solid lines = averages. On fear/greed: the green solid lines are the EMA-10 averages of greed and fear (VIX FIX 6). On TTM: the solid white line is the EMA-5 average of TTM (your TTM FLOW setting). On the option charts the white TTM average is SPY's; on the SPX and SPY charts it is that chart's own.
- White pane arrows (from your VIX FIX Pane v6 and TTM FLOW scripts; on the option charts they come from SPY, on the SPX/SPY charts from that chart):
- Fear/greed pane, ▲ on the fear side: the fear average reached 50+ and just rolled over (selling easing; leans calls).
- Fear/greed pane, ▼ on the greed side: the greed average reached 50+ and just rolled over (buying easing; leans puts).
- TTM pane, ▲: the TTM average turned up after being at −1 ATR or lower. ▼: it turned down after being at +1 ATR or higher.
- Arrows appear when the candle closes, never on the forming bar, so they do not flicker. They are a read, not a trade signal by themselves. In your own backtest the Vix Fix turn alone was not an edge; use them for confluence with the Bottom Line.
8. A typical trade, step by step — Friday Nov 6, 1:37 PM Put ENTRY A (snap)
These are real numbers from Public's 1-minute bars, read the way the page reads them.
- Before (1:20–1:36): SPX ran up fast, "fast 6.0 ATR pop". Greed hit 100 (maxed). The PUTS checklist was building.
- The 1:37 bar closes:
- SPX 7399.68 / SPY 737.80. Both instruments fired their own Put A (snap) on the same minute.
- The bottom line would read "PUTS — 4 of 5 agree":
- ✓ fear/greed: greed 100 maxed, rolling, fear lifting;
- ✓ price quit driving, took back the last candle;
- ✓ trend line gray, bars under the line;
- ✓ TTM turning from stretched (2.4);
- ✗ dealers: not at the ceiling.
- The PUT % bar was 75 on SPX and 80 on SPY. SPY also counted "at VAH/POC".
- The plan the page shows:
- Buy the 1-OTM put, the 7395P (≈737.2 SPY).
- Scalp $ at 7394.68 SPX / ≈737.20 SPY: 5 SPX points ≈ 0.5 SPY.
- Stop past the turn high at 7411.20 SPX / ≈738.85 SPY. SPY's own chart put its turn high at 738.91.
- It's an A, so: sell half at $, ride the rest to the yellow out.
- What happened:
- Price dipped only to 7398.68 (1:39). That's about 1 point, never reaching the $ target.
- Then it climbed to 7412.40 at 1:57, through the stop. The scorecard marks it stopped 1:57.
- The lesson: 4 of 5 is a setup, not a promise. The missing check was #5: price was not at the dealer ceiling. When the location check is ✗, size down or wait for price to reach the wall. The dealer map for Friday can't be replayed now, because open interest has changed since.
9. The speed line (bottom of the page)
- quotes 1.0s (net 80 ms): how often quotes arrive, and how long Public took to answer.
- paint: how long the phone spent drawing an update. Under 16 ms means no visible lag.
- math … in worker: the indicators, signals and gamma run in a background thread, so the charts never freeze.
- tick→screen: time from a quote arriving to it being on screen.
Gamma Field is a personal tool. It is information only, not financial advice. It never places orders. Charts by TradingView Lightweight Charts™ (Apache-2.0).