Prompts · Appendix A

The six prompts

The text of the six prompts that run the framework, word for word from Appendix A, as plain-text files. Chapter 11 explains what each one does and how to check its output.

How to use them

  1. 1Open a fresh chat at the start of each session and paste Prompt 6 with the GEX Suite appended to its end. The button on Prompt 6 does the appending for you.
  2. 2Run Prompt 1 before the open with the day’s CSV and panel attached.
  3. 3Call Prompts 2 through 5 by name as the session needs them.
Copy as plain text. A word processor turns straight quotes into curly ones, and a line such as name="GF" written with curly quotes will not parse. Paste the scripts the prompts return the same way.
Check every value an output names, whether a level, a credit, a delta, or a strike, against its source before relying on it (Chapter 14).

The prompts are not edited mid-session. Any change is made out of session, through the framework-iteration discipline in Chapter 13, and carried into every prompt that states the rule.

Prompt 1 · 1,964 words

Premarket Setup

Before the open, with the day’s CSV and panel attached. Returns the level map and the complete GEX Suite with the day’s values in place.

Show the full text
Please load today’s SPX 0DTE premarket setup. Attached are the GEX data CSV and gamma-exposure panel screenshot.

Deliver the following:
- GEX level assignments: derive GF as the operative CSV zero-crossing nearest spot, searched within the expected-move band (when the only nearby crossing sits just beyond the band’s edge, it is still GF) rather than the first crossing encountered. The panel-stated gamma flip is corroboration only. If the CSV GF and the panel’s stated flip differ by more than 10 points (two strikes), the flip is unsettled: flag it, and the fresh-print gate applies before any level-reliant entry. GF anchors all mechanical rules. Before EM is supplied, take the expected-move band as spot ± 50 points (premarket, spot is the SPX price shown in the panel screenshot’s $SPX title, the prior session’s close) for every level search (GF’s search window, the resistance belt, DT/DB, the Put Wall sanity check) and for the 20% test; re-confirm every level (ST keeps its 50-point window from spot), and the concentrated/distributed classification of the dominant call and put nodes, once EM is supplied.
- Full level set: GF, PN, RT, RB, ST, SB, DT, DB, CW, PW with strike and basis noted; classify the dominant call node and the dominant put node as concentrated or distributed (20% test: the call node for clearance; for the markedly stronger structure test, each side’s largest single strike inside the EM band, normally its wall)
- GEX Suite (Pine Script) ready to paste, built from the premarket CSV pull per the dedicated section below, with the Expected Move switch off until EM+ and EM− are supplied at the open. Intraday HOD/LOD is computed by the indicator. If I am charting on Webull, ship the GEX Levels WebullScript block instead; its Intraday HOD/LOD and Expected Move blocks ship at or after cash open from chain-derived inputs, out of scope at premarket.
- Opening structural read: regime (positive/negative gamma), directional bias, Danger Zone assessment
- GF-to-PN distance check, flag if within 25 points (pin confidence degrades from 1:00 PM)
- Macro calendar Tier 1 / Tier 2 check for today; flag an early-close day (1:00 PM close: no trading), any scheduled 10:00 or 2:00 print (no entries in the 30 minutes before it), and any monthly options-expiration Friday, quarter-end, or VIX-expiration day (runs normally; noted in the journal)

EM values (I will provide from the options chain at open):
- EM+ = [upper boundary]
- EM− = [lower boundary]

Chart layer reminder (GEX Suite, Pine Script—Appendix B):

Ship the complete Suite, never a partial script. Change only the input values and section switches; never edit the drawing code. Every line other than the 12 level inputs and the 3 section switches must be character-identical to the GEX Suite template loaded with Prompt 6—no changes to alignment, colors, widths, styles, sizes, comments, spacing, or order. If the check finds any difference, reprint the entire corrected Suite as one code block and discard the flawed one; never print a partial patch, a corrected excerpt, or instructions to hand-edit the code.

Inputs: gt (labeled GF - Gamma Flip, with a hyphen as in the template), pn, rt, rb, st, sb, dt, db, cw, pw, emu (EM+), emd (EM−). A level set to 0 is not drawn. HOD/LOD are computed by the indicator and have no inputs.

Section switches: showGex, showEM, showHL. At premarket, set showEM to false until EM+ and EM− are supplied at the open; then ship the full Suite with showEM true and the EM inputs filled.

WebullScript (Webull charts only): hline(price=NNNN, name="XX", color=color.XXX, line_type=hline.type_solid, line_width=N). Walls use hline.type_dashed. No headers, no variables, no input(), no fill().

WebullScript section order—GEX Levels: // Gamma Flip & Pin | // Resistance Zone | // Support Zone | // Danger Zone | // Walls. Intraday HOD/LOD: two hlines only, HOD and LOD, fuchsia dashed lw1. Expected Move: // Expected Move (EM+ and EM− teal dashed lw1) only; the gamma flip line is suspended from the EM script.

GEX Suite—Premarket Build (Required Deliverable):

Ship the ready-to-paste GEX Suite with every Premarket Setup output, or the GEX Levels WebullScript block when charting on Webull. The build follows the canonical code and section ordering in Appendix B. Levels derive from the premarket GEX data CSV pull and gamma-exposure panel screenshot per the standard mapping.

Level mapping:
- GF—Suite input gt; WebullScript name "GF"—white solid lw3—CSV zero-crossing from Gamma Exposure Profile column (interpolated)
- PN—yellow solid lw2—the strike with the largest total gamma exposure, calls and puts combined (Absolute Gamma Exposure column maximum; the pin)
- RB—red solid lw1—first call concentration above the pin (0 when no call peak lies in the belt)
- RT—red solid lw1—heaviest call concentration in the resistance belt (the call strikes above PN up to EM+, or up to 50 points above spot before EM is set); 0 when no call peak lies in the belt (RB, RT, and DT not drawn; flagged in the notes; call-side placement keys on CW, which the short call clears by at least 10 points)
- ST—green solid lw1—dominant put cluster below GF whose heaviest strike sits within 50 points of spot at the time of the print, as for the walls (a cluster is one strike, or a run of adjacent strikes, carrying more gamma than the strikes on either side, measured by combined gamma; a run grows outward from its heaviest strike across adjacent strikes that each hold at least half that strike’s gamma, with the same sign, and stops before the first strike below half, which is not part of it; a strike heavier than the run’s peak begins a separate cluster; on each side of the profile, call and put, runs are grown from the heaviest strike first, and a strike already in a run belongs to no other (a lighter peak inside a heavier peak’s run is part of that cluster); a run is followed to its end even past the edge of the belt or band being searched, since the band says where peaks are searched, not where a run stops; the level is drawn at the run’s strike farthest from price, so a short strike beyond the level clears the whole cluster; RT and ST are clusters, CW and PW single strikes; when a wall’s strike belongs to the heaviest cluster’s run, the cluster level coincides with the wall if the wall is the run’s outer strike, and is drawn beyond the wall if the run continues past it); 0 when no put cluster below GF has its heaviest strike within 50 points of spot (ST, SB, and DB not drawn; flagged in the notes; the put side reads thin unless PW sits above GF and anchors the short put)
- SB—green solid lw1—the next put cluster below ST holding at least a quarter of ST’s combined put gamma (the measure the cluster definition uses; 0 when no cluster qualifies, and 0 when ST is not drawn)
- DT—orange solid lw1—outermost strike above RT, within the expected-move band (spot ± 50 points before EM is set), whose call gamma exposure is at least a quarter of RT’s combined call gamma; weaker strikes in between do not end the zone (0 when no strike qualifies, and 0 when RT is not drawn)
- DB—orange solid lw1—outermost strike below SB, within the expected-move band (spot ± 50 points before EM is set), whose put gamma exposure is at least a quarter of SB’s combined put gamma; weaker strikes in between do not end the zone (0 when no strike qualifies, and 0 when SB is not drawn)
- CW—maroon dashed lw1 (rose on the Suite)—largest call gamma exposure above spot in the current-expiration, volume-weighted CSV; the panel-printed Call Wall is reference only, never inherited
- PW—lime dashed lw1—largest put gamma exposure (absolute) at or below spot in the same CSV; the panel-printed Put Wall is reference only, never inherited; Put Wall sanity check below

Edge-case protocol:
- Danger Zone sides: Each side is derived independently from the CSV. When no strike in range beyond RT (or SB) holds at least a quarter of RT’s (or SB’s) combined gamma, that side has no Danger Zone: set its input to 0 in the Suite so it is not drawn. In WebullScript, omit that hline and keep the // Danger Zone comment header in canonical order even when neither side exists. Resistance Zone: when no call peak lies in the belt, set RB, RT, and DT to 0 in the Suite; in WebullScript, omit those hlines and keep the // Resistance Zone comment header in canonical order. Support Zone: when no put cluster qualifies for ST, set ST, SB, and DB to 0 in the Suite; in WebullScript, omit those hlines and keep the // Support Zone comment header in canonical order; when ST is drawn but no cluster below it qualifies, set SB and DB to 0 in the Suite; in WebullScript, omit those two hlines.
- Put Wall sanity check: When the CSV-derived PW sits below EM− (before EM is set, more than 50 points below spot), use the nearest put cluster below spot whose heaviest strike sits inside the EM band (spot ± 50 points before EM is set) and that holds at least a quarter of PW’s put gamma; PW becomes that cluster’s heaviest strike (a single strike, inside the band, never itself substituted). Flag the substitution in the accompanying notes paragraph. If no cluster qualifies, PW stays at the CSV strike and the notes flag it. At the open the Put Wall sanity check runs again from the CSV-derived PW against the band the EM sets.

Output framing:
- Output the Suite as a code block immediately following the GEX structure table in the Premarket Setup response.
- Accompanying notes paragraph beneath the block flagging substitutions; a PW left at the CSV strike because no cluster qualified; RB, RT, and DT left undrawn because no call peak lies in the belt; ST, SB, and DB left undrawn because no put cluster qualifies within 50 points of spot; SB and DB left undrawn because no cluster below ST qualifies; an unsettled flip (CSV GF and panel flip more than 10 points apart); any side with no Danger Zone; use of the pre-EM band (spot ± 50 points) if EM was not yet available; and CSV timestamp/freshness state.

Barchart CSV timestamp interpretation:

Barchart CSV files include a footer of the form “Downloaded from Barchart.com as of [date], [time].” The timestamp is in Central Time (Barchart HQ), not Eastern Time. Convert CT to ET when reasoning about CSV freshness.

The standing 15-minute GEX data-state delay applies to the underlying data, not to the file download moment. The data state reflects (CT timestamp + 1 hour − 15 minutes) in ET equivalent. A CSV with an “as of 9:12 AM” footer reflects a data state of approximately 9:57 AM ET—not 9:12 AM ET, and not 10:12 AM ET. A pull before the open carries the prior session’s settled volume-gamma.

Data-basis configuration lock (premarket data read):

Configure the GEX export for the current session’s expiration only, never the multi-expiration default; minimum fifty strikes either side of spot; per-1%-move; gamma exposure; expected-move overlay on for corroboration only. Premarket, before intraday volume populates (roughly 20 minutes after the cash open): volume-weighted, end-of-day basis—this is the prior session’s settled volume-gamma. Live session: volume-weighted, intraday basis. Open interest is not used: today’s series carries open interest from the days it has been listed, but the overnight snapshot cannot see the day’s own trading, which is most of a same-day contract’s activity. GF is the operative near-money crossing, with the expected-move band as the search window. The source’s headline flip, put-wall, and call-wall scalars remain settled all-expiration figures—reference class only, never the hard anchor.
Prompt 2 · 253 words

Intraday Update

Hourly through the session, and whenever price approaches a level you are watching for an entry. Re-reads the levels against a fresh CSV and returns the updated Suite when any level has changed.

Show the full text
Intraday GEX update. Attached are the updated CSV, gamma-exposure panel, and SPX 1-min chart. Current Realized Move (session high − low): [points]; EM fixed at the open: [points].

Deliver the following:
- Level changes from prior snapshot—flag any GF, PN, RT, RB, ST, SB, DT, DB, CW, PW shifts
- Full structural read: regime, directional bias, Danger Zone, concentration changes
- GF-to-PN distance—flag if within 25 points (pin confidence degrades from 1:00 PM; using GF)
- EM consumption read: Consumption Ratio (RM ÷ EM) and whether the day has room remaining, sits near the edge, or has broken the envelope (three consecutive 1-min closes outside EM+ block new call-side credit, outside EM− new put-side credit; range > 2 × EM blocks all new credit; a touch of EM± is not a break); IC / credit spread entry implication given updated structure
- No-trade flags if applicable
- Data state of this print (ET). A read that depends on the map after an event (the fresh-print gate, Macro Break-Glass’s structural break) needs a GEX print whose data state is after the event, in practice no earlier than 15 minutes after the cross or headline. Until it arrives: no level-reliant entry; for an open position, the hardened stops govern

MANDATORY script rule:
- If ANY level changes → print the complete updated GEX Suite for paste: every input current, never a partial edit (the full GEX Levels WebullScript block when charting on Webull)
- If ALL levels unchanged → confirm: “Chart script unchanged—no paste needed”
Prompt 3 · 2,585 words

Trade Setup Evaluation

Before any entry. Runs the candidate trade against the regime, the three signals, and the strike rules, including the Fade Entry Variant.

Show the full text
Trade setup evaluation. Attached are the current CSV, gamma-exposure panel, 1-min chart, and options chain. ES vs. VWAP now: [above / below].

Proposed trade:
- Instrument: [SPX / XSP]—If XSP, divide every dollar threshold by ten; read levels from the SPX chain and divide by ten, rounding strikes outward.
- Structure: [Iron Condor / Bear Call Spread / Bull Put Spread / Bull Call Debit / Bear Put Debit]
- Strikes: [e.g., 6,530/6,540/6,630/6,640]
- Credit shown: [mid price from order entry screen]
- Entry time: [current ET time]
- Opening EM: [points, from ATM straddle × 0.85 at cash open]
- Current RM: [points—session high − session low]
- Account equity: [$]; session budget set before the open: [1–2% = $]
- Session so far: [entries taken; any side stopped out; session loss to date $]

Standard Three-Signal Entry Framework
- Signal 1. GF Hold: GF is held when price has not printed three consecutive 1-min closes on the wrong side of GF (CSV zero-crossing) in the 30 minutes before the decision (or since 9:30 if that is shorter). Held above GF = Dealer Gamma Long: credit structures only, side chosen by the structural map (bear call above price, bull put below, iron condor when both sides are credible: a side is credible when a short strike placed outside its named level by the placement rules, on a 5–10-point wing, collects a credit inside the credit band—at least the credit minimum and under a third of the wing—and thin when it has no such level or the clearance buffer disqualifies it; a side is markedly stronger when its largest single strike inside the EM band (normally its wall), whether or not drawn, is a concentrated node (one strike holding ≥20% of the absolute gamma inside the EM band) while the other side’s is distributed: the vertical then goes on the concentrated side, even on a two-sided map; otherwise a two-sided map takes the iron condor, and the over-ceiling downgrade applies); a bearish read here is a bear call, never a reason to trade below GF. Held below GF = Dealer Gamma Short: no credit structures on either side; only bear put debit or bull call debit on confirmed continuation, after a fresh GEX print, whose data state is after the cross (in practice no earlier than 15 minutes after it), shows the nodes re-formed on the new side of GF (bull call short strike at or below GF; no debit entries after 1:00 PM ET). Neither side held = no entry
- Signal 2. ATR(5) Compression: 10 or more consecutive 1-min bars in which ATR(5) never rises above its value on the window’s first bar, with every 1-min close within 5 SPX points (one strike) of the named GEX level; counting starts with the 9:36 bar or later. The 5-minute spike–rollover–compression arc is the context read
- Signal 3. EM Consumption: Evaluate the RM/EM Consumption Ratio (RM = session high − low) and price location vs. the EM+/EM− boundary. Thresholds: under 50% confirms only when the journal entry, written before entry, names (1) a level on today’s map, (2) the behavior seen there, and (3) the price that invalidates it; missing any part = ❌; 50–100% strongest zone; above 100% is normal by midday and still confirms. Disqualifier—ENVELOPE BREAK: three consecutive 1-min closes outside EM+ → no new credit on the call side (outside EM−, no new credit on the put side); session range > 2 × EM → no new credit on either side. A touch of EM± is not a break. Document divergence.

Fade Entry Variant

Applies when the trade structure is a credit spread fading a named GEX level, either a bear call spread at a resistance level (RB/RT/CW) or a bull put spread at a put-side level that sits above GF (in practice PW when the Put Wall sits between GF and spot; ST and SB sit below GF, so a test of either is taken below the flip, where no fade runs).

Modified signal set (all three required):
- Signal 1. GF Hold: Identical to standard rule, no modification, uses GF
- Signal 2. ATR(5) Declining at the Level: ATR(5) declining at the named level across the second approach, with no expanding bar—one 1-min bar that lifts ATR(5) disqualifies the entry, whatever its direction. The 10-bar count is NOT required
- Signal 3. Price at Level: Price must be within 2–3 points of the named GEX level being faded. Entry is not valid once price has rejected and moved more than 5 points away from the level
- Envelope check: the Consumption Ratio is not a fade signal; the envelope veto still applies—an ENVELOPE BREAK (three consecutive 1-min closes outside EM± on the fade’s side, or range > 2 × EM) disqualifies the fade

Additional conditions:
- Credit minimum: $0.075 mid per point of wing ($0.75 on the fade’s 10-pt wing)—below this, no trade regardless of signal alignment
- Wings, strike, and sizing: short strike 5 points beyond the faded level (a CW fade: at least 10 points above CW; RB/RT fades keep CW at least 10 points beyond the short strike); fade wings are 10 points. The fade’s credit typically runs above a third of the wing, so the mark stop at 3 × credit sits at or beyond the maximum loss. Size the fade on its maximum loss (wing − credit): contracts = full session budget ÷ (maximum loss × 100), rounded down, and the fade must also fit what remains of the session budget—if it does not, no fade (the count is not cut to fit). Its working stop is the level-based exit; R for a fade is the maximum loss
- ES/futures VWAP confirmation required—ES below VWAP for bear call fade; ES above VWAP for bull put fade
- If price breaks cleanly through the named level with expanding ATR before entry—thesis invalidated, do not chase
- No fade entries after 1:00 PM ET—insufficient time for thesis to develop before soft stop

Second-Test Rule (Fade Entry Variant)

The fade entry is taken during the second test of the named level, while it is in progress—not on the first test, and not after the second has resolved. The first test is observation: did the level hold, did dealer hedging confirm at the print, did absorption visibly decelerate price into the level. The second test is the entry window: price returns to the level with ATR(5) declining and no expanding bar, and the entry is taken while the approach is absorbing. A first test that holds without a second test is not an entry. A second test taken without confirmation that the dominant node has held its shape between the two tests is not a valid entry either.
- First test: observation only. Document the print at the level (timestamp, ATR trajectory, ES VWAP read) and stand down.
- Between tests: a GEX print whose data state is after the first test (in practice no earlier than 15 minutes after it) must confirm the dominant node holding shape (no migration of more than 10 points, no dispersion). If a new GEX print between tests shows the node degrading, the second test is no longer the same setup.
- Second test: entry while the approach is in progress and absorbing, with the modified signal set confirmed and the additional conditions cleared.
- Third approach: not authorized. Once the second test has resolved without an entry, the fade window for that level is closed for the day.

EM-Tier Contract Sizing Gate
- EM tier under 0.30% of spot at the open (about 20 points at SPX near 6,600): At most 1 contract; never size up to compensate. Premium this thin on standard wings often fails the credit minimum. No debit entry: one tier below this tier is no trade.
- EM tier 0.30–0.75% of spot (about 20–50 points): Standard sizing: for a credit spread or iron condor, contracts = remaining session budget ÷ (2 × credit × 100), rounded down, capped by the sizing table at the EM tier. Confirm the absolute realized-risk ceiling: realized risk = 2 × (credit received × contracts); for a fade, maximum loss × contracts; for a debit, debit × contracts.
- EM tier above 0.75% of spot (about 50 points or more): Reduced sizing. The day is pricing wider directional risk; size to half the table, rounded down, never below 1 contract where one fits.
- Debit spreads (bull call / bear put): signals are GF broken or held below, confirmed continuation, and the fresh-print gate; the debit as recorded must sit under half the wing (the 100% target is 2 × the debit, and a spread is never worth more than its wing), or no entry; no entries after 1:00 PM ET. Contracts = full session budget ÷ (debit × 100), rounded down, then one EM tier lower (half that count, rounded down, never below 1 contract where one fits, on a standard-tier day; 1 contract on a reduced-tier day; no debit entry on an under-0.30% day), never more than the sizing table allows at that lower tier; the debit must also fit what remains of the session budget—if it does not, no debit trade (the count is not cut to fit); a count of zero is no trade. R = the debit.
- Contract count proposal must include: tier identified, credit per contract, total credit, total realized-risk ceiling at 2 × credit (a fade: at its maximum loss), and confirmation that it fits within what remains of the session budget (set before the session, cumulative; Ch. 23 Section 4; XSP below roughly $25–30k).

Strike Placement Checklist
- Short strikes placed outside the named GEX support/resistance level that anchors each side
- Short call must clear CW (the largest call GEX node above spot) by minimum 10 points, and must clear by 10 points any concentrated call node within 20 pts of the short call (one strike holding ≥20% of the absolute gamma inside the EM band); a distributed node takes standard placement. Short put goes at or beyond the first strike below ST (5 points on SPX), or, when PW sits above GF (the nearest named support above the flip), at or beyond the first strike below PW—never at ST. Only exception: an RB or RT fade, whose short strike sits 5 points beyond the faded level with CW still at least 10 points beyond it, and a CW fade, at least 10 points above CW (Fade Entry Variant)
- Classify the dominant call node within 20 pts of the short call: concentrated = one strike holding ≥20% of the absolute gamma inside the EM band; otherwise distributed
- Credit room for the mark stop (standard spreads and condors): 3 × credit (both sides together on a condor) must sit below the wing, so a standard spread collects less than a third of its width; if the credit at the chosen strikes is higher, move the short strike out or widen the wing. Iron condor over the ceiling: do not move a short strike off its level; downgrade to the vertical on the side whose short strike sits at its level and drop the side the clearance rule pushed out (in practice the call side: because the short call must clear CW by 10+ points, the clearance rule pushes the call side out whenever RT sits at or below CW, so an over-ceiling condor becomes the bull put); the general repair (moving the short strikes out or widening the wings until the combined credit fits) applies only when both short strikes sit at their levels, which on the call side needs RT drawn beyond CW, so that the strike just outside RT already clears CW by 10+ points. The credit minimum is the floor. Fades are sized on maximum loss instead (Fade Entry Variant)
- Prioritize cushion and theta comfort over tighter premium
- Prefer scaling contracts over proximity pressure

VWAP / GF Alignment Check
- Aligned + price above both = stronger bullish confirmation
- Aligned + price below both = layered overhead resistance, no long bias
- Diverged = flag as structural conflict
- Fade entries: the Fade Variant’s ES VWAP rule governs. A bear call fade with price above GF and ES below VWAP is the expected configuration, not a conflict

Entry Checklist—Deliver
- Signal 1 GF Hold: ✅/❌ with basis (price vs GF noted)
- Signal 2 ATR Compression: ✅/❌ with bar count or trajectory note
- Signal 3 EM Consumption: ✅/❌ with RM, EM, and Consumption Ratio (e.g., RM 47 / EM 60 = 78%); under 50%, the named structural read (level, behavior, invalidation price, all written before entry); envelope check (three-close break of EM+ or EM−, by side; range vs 2 × EM). VALIDATION LOG for the trader’s first 40 sessions: report range ÷ EM, |price − open| ÷ EM, and ENVELOPE BREAK Y/N at every decision point
- Strike placement: short call clears CW, and any concentrated call node within 20 points of the short call, by 10+ points; short put at or beyond the first strike below ST (5 points on SPX), or, when PW sits above GF, at or beyond the first strike below PW (fade: short strike 5 points beyond RB, RT, or PW, with CW still at least 10 points beyond an RB or RT fade’s short strike; a CW fade at least 10 points above CW); structure as the map selects it (iron condor when both sides are credible and neither is markedly stronger, otherwise the vertical on the credible or markedly stronger side; a condor over the one-third ceiling is downgraded to the vertical, in practice the bull put, or repaired when both short strikes sit at their levels) ✅/❌
- Credit minimum met, and (standard spreads and condors) credit under a third of the wing (3 × credit below the wing); a debit spread: debit as recorded under half the wing (2 × debit below the wing): ✅/❌
- ES VWAP confirmation (fade entries): ✅/❌
- Macro tier: ✅/❌—no Tier 1 print today; any Tier 2 print has cleared its post-print window and re-validated
- Time of day: ✅/❌—inside the entry window (no fade or debit entry after 1:00 PM ET; no new credit entry after 2:00 PM ET; no entry in the 30 minutes before a scheduled 10:00 or 2:00 print; no trading on an early-close day); session limits clear (at most two entries per session; no new entry today in the direction of a trade already stopped out (a stopped iron condor counts as stopped in the direction of its tested side: bearish if the call side was tested, bullish if the put side was; a leg-out, or the leg-out tree’s default close, counts as stopped in the losing side’s direction); session losses short of the session budget; under a broker’s legacy day-trade budget, no entry that would leave no day trade in reserve to close it)
- EM tier and sizing: under 0.30% / 0.30–0.75% / above 0.75% of spot at the open—proposed contract count with realized-risk ceiling at 2 × credit (a fade: at its maximum loss; a debit: the debit), within what remains of the session budget
- Directional bias: [bullish/bearish/neutral]—GEX support or conflict noted
- Structural conflicts: any flags
- Go/No-Go verdict with rationale

Note: “No trade” is always a valid conclusion when structure is ambiguous, regime is unclear, or setup lacks conviction. Never propose a trade that glosses over structural conflicts.
Prompt 4 · 1,386 words

Position Monitor

While a position is open. Checks it against the exit hierarchy, including the Negative-Gamma Regime Exception.

Show the full text
Position monitor update. Attached are current CSV, gamma-exposure panel, 1-min chart, and positions screenshot.

Position details:
- Instrument: [SPX / XSP]—If XSP, divide every dollar threshold by ten; read levels from the SPX chain and divide by ten, rounding strikes outward.
- Structure: [Iron Condor / Bear Call Spread / Bull Put Spread / Bull Call Debit / Bear Put Debit]
- Strikes: [e.g., 6,630/6,640]
- Entry credit or debit: [$X.XX]
- Side credits (iron condor): [call $X.XX / put $X.XX, fixed at entry from the fill]
- Entry time: [HH:MM ET]
- Current mark: [$X.XX]
- Profit target: [%] = [$X.XX exit mark]

Deliver
- GEX assessment: GF migration, PN location, short strikes vs current levels, any breaches
- Price + ATR: current location, trend, distance from short strikes
- P&L: % captured, leg carrying the value, proximity to target
- Exit readout (what the rules call for): Hold / Ratchet / Leg-out (iron condor: one side’s mark at 2 × its own share of the credit, fixed at entry, before 2:00 PM ET, only if neither hardened stop has fired, and subject to the day-trade and AI-session conditions under LEG-OUT) / Close / Macro Break-Glass—with rationale
- Time stop flags: 2:30 PM soft stop status, 3:00 PM hard cutoff
- Two forward watch levels for the next 30 minutes
- Closing mode: when the trader reports the position closed (exit time, exit price, exit reason), produce a journal-ready final-position entry—structure, entry credit or debit, exit price, realized P&L, return on risk, the exit trigger that fired (or the discretionary call), and any framework observations

Trade Management Rules

Time-Adjusted Profit Targets (clock time: the band in force now applies to every open position). Every target is worked as a resting buy-to-close limit at the band’s price, re-priced when the band changes; a band price that falls between ticks goes in at the next tick below, the stricter target
- Before 11:00 AM ET → 50% target
- 11:00 AM–1:00 PM ET → 40–45% target (the limit goes in at a tick inside the band, or at the next tick below the band if none lies inside it, chosen when the band begins)
- After 1:00 PM ET → 35% target
- After 2:00 PM ET → close at first profitable opportunity, worked as a resting limit one tick below the credit ($0.05 on SPX, $0.01 on XSP; profitable = the spread can be bought back below the credit received, before fees)

Soft Stop—2:30 PM ET
- A credit position still open at 2:30 PM is not yet profitable (a discretionary hold begun before 2:00 PM is exempt: it keeps its ratchet stop until the 3:00 PM cutoff, and the soft stop does not apply to it); a debit spread, which has no time bands, is reached only while not yet profitable
- If within $0.25 of a profitable close ($0.02 on XSP) → hold for the fill until 3:00 PM
- If more than $0.25 ($0.02 on XSP) from a profitable close → close at the bid/ask (mandatory, no override)

Hard Cutoff—3:00 PM ET
- Close all positions at the bid/ask—no exceptions, no structural reasoning

Level-Based Exit (Hardened)
- When SPX closes at or through the short call or short put strike for 3 consecutive 1-min bars → close entire position at the bid/ask immediately
- No structural override permitted. GEX analysis suspended once trigger fires.
- MARK STOP (runs beside the level-based exit): when the spread’s mark reaches 3 × entry credit (a loss of 2 × credit) → close entire position at the bid/ask immediately. Standing stop order where the broker supports stops on spreads (a price between ticks goes in at the next tick below); otherwise a price alert set at entry and a manual close. Whichever of the two stops fires first governs. The mark stop needs room: 3 × credit must sit below the wing. FADES are sized on maximum loss; their mark stop sits at or beyond the maximum loss, so a fade’s working stop is the level-based exit.
- NEGATIVE-GAMMA REGIME EXCEPTION: For a position carrying a short put (bull put, or a condor’s put side): if price breaks below GF after entry (3 consecutive 1-min closes below GF), apply accelerated exit—3 consecutive 1-min closes below the first named support level below GF (normally ST), not the short put strike, trigger immediate close; if no named level is drawn below GF, the exception has no trigger, and the level-based exit at the short put strike and the mark stop govern as usual
- MACRO BREAK-GLASS (above every stop): a named in-session catalyst plus a structural break in the gamma map (GF or the dominant nodes migrating, collapsing, or relocating; whether the change is a break is the trader’s read, recorded with the trigger and reviewed at the post-mortem) → close every position at the bid/ask. Volatility alone does not trigger it. The structural break must show on a GEX print whose data state is after the headline, in practice no earlier than 15 minutes after it; until that print arrives, the hardened stops govern.
- DEBIT SPREADS (bull call / bear put): profit target 100% of the debit paid (spread worth 2 × entry debit). Inverted level-based exit: 3 consecutive 1-min closes back through the long strike → close entire position at the bid/ask immediately. R = the debit. No time bands: the after-2:00 first-profitable rule does not apply; the 2:30 PM soft stop applies only to a debit not yet profitable; the 3:00 PM cutoff applies.
- LEG-OUT (iron condor only): each side’s share of the credit is fixed at entry from the fill and recorded. When one side’s mark reaches 2 × its own share, before 2:00 PM ET, and neither hardened stop (level-based exit, mark stop) has fired → close the losing side at the bid/ask. Then judge the remaining side against its own share and the target in force: if it is already past that target, close it too; otherwise it runs under the same exit rules and the 3:00 PM cutoff, keeping the hardened stops on its own short strike (level-based exit at that strike; mark stop at 3 × its share). Never close the winning side and leave the loser open. Under a broker’s legacy day-trade budget, no leg-out with fewer than two day trades in reserve: close the whole position on one ticket at the bid/ask instead. If the trader reports, or the assistant has warned, that this conversation is near its limit or has started dropping loaded rules, no leg-out: close the whole position at the bid/ask.

DISCRETIONARY HOLD LIMIT RATCHET

When shifting from framework-defined profit target to discretionary hold on a winning position with supportive structure, cancel the resting target limit and immediately place a buy-to-close STOP (or stop-limit) at the price that protects at least 50% of profit accrued at the time of the decision; a price between ticks goes in at the next tick below. Not a limit: a buy-to-close limit above the current mark fills at once. If the broker lacks stops on spreads, set a price alert at that price and close by hand.

No new discretionary hold after 2:00 PM ET. A hold begun before 2:00 PM keeps its ratchet stop until the 3:00 PM cutoff; the 2:30 PM soft stop does not apply to it. The hierarchy is not inverted: the soft stop governs positions not yet profitable; a ratcheted hold is profitable by construction and protected by its stop.

Formula:
- Accrued profit = Entry credit − Current mark
- 50% floor = Accrued profit × 0.50
- Stop price (buy-to-close) = Entry credit − 50% floor

Example: Entry $2.10, Mark $1.10 at discretionary decision → Accrued = $1.00 → Floor = $0.50 → Stop at $1.60 (the mark sits below it; the stop fires only if the mark rises back to $1.60)

This preserves meaningful upside while preventing full giveback of an established gain.

GEX Is an Entry and Hold Tool—NOT an Exit Override Tool

Once any mechanical exit trigger fires (level-based stop, mark stop, 2:30 soft stop, 3:00 hard cutoff), GEX structural analysis is no longer applicable to the exit decision. Applying pin/reversion/liquidity grab reasoning to delay a triggered exit is the primary source of loss asymmetry in the framework.
Prompt 5 · 720 words

EOD Post-Mortem

After the 4:00 PM expiry. Reads the session’s journal rows against the morning map and returns the debrief, with one improvement each for entry, exit, and the next session’s setup.

Show the full text
EOD post-mortem. Attached are the final CSV, EOD gamma-exposure panel, and closing 1-min chart.

Session details:
- Instrument: [SPX / XSP]—If XSP, divide every dollar threshold by ten; read levels from the SPX chain and divide by ten, rounding strikes outward.
- Structure: [Iron Condor / Bear Call Spread / Bull Put Spread / Bull Call Debit / Bear Put Debit / No Trade]
- Strikes: [e.g., 6,630/6,640]
- Entry time + fill: [HH:MM ET / $X.XX credit or debit]
- Exit time + price: [HH:MM ET / $X.XX]
- Exit reason: [Macro Break-Glass / Mark Stop / Level-Based Exit / 3:00 PM Hard Cutoff / 2:30 PM Soft Stop / Profit Target / Discretionary Hold Ratchet / Leg-Out / Discretionary Close / Held to Expiration]
- Net P&L: [$X.XX / X%]
- Opening EM: [points]
- Times RM crossed 50% and 100% of EM, if it did: [HH:MM ET]
- Closing RM: [points]
- Journal row(s) for the session: [regime; Signal 1 / 2 / 3 Y/N; Consumption Ratio at entry and, if under 50%, the named read logged before entry; Followed Plan; Notes]

Deliver
- GF migration table across the session—opening vs. intraday vs. closing values
- EM / RM / Consumption Ratio summary, opening EM, closing RM (session high − low), closing Consumption Ratio (closing RM / opening EM). Note threshold crossings (50% / 100%) and any envelope break (three consecutive 1-min closes outside EM+ or EM−, or range > 2 × EM), with timing of each.
- Final pin analysis. Did PN hold, migrate, or dissolve vs. opening baseline?
- Strike assessment. Where did strikes land relative to expiry outcome?
- Entry quality. Did all three signals fire correctly? Was timing optimal? If a trade was taken: did the EM Consumption Ratio at entry confirm Signal 3 (50% or more, or under 50% with a named structural read logged before entry that names the level, the behavior seen there, and the price that invalidates it; and no envelope break on the trade’s side)?
- Exit quality—compare actual exit to alternatives: the target in force at exit / the next time band / a hold to the 3:00 PM cutoff
- Framework rules confirmed or challenged by today’s session
- Event-day evidence: if the session fell under an event rule, name the EVENT TAG (Post-FOMC Morning, Post-FOMC Escalated, NFP Shadow, CPI Shadow, Tier 2 Day); on NFP / CPI days, record the shadow result and whether a same-day re-validation would have held up; note a monthly options-expiration Friday, quarter-end, or VIX-expiration day (these run normally)
- Paper record (paper mode): sessions and closed trades counted toward the gate, net expectancy after fees and slippage, and drawdown from the high in R (a drawdown beyond 6R restarts the count: sessions, trades, expectancy, and the drawdown high all start again from the first session after the breach, with the paper rows up to and including the breaching session set to TYPE Set Aside); stop-outs at the far side plus slippage, never at the mid; exclusions only on grounds set before the result; a session counts, traded or not, when the full workflow ran (premarket setup, the pre-trade check for any entry considered, post-mortem) on a day not excluded, and a no-trade session is one No Trade row with no P/L, outside the per-trade rates; a failed discipline record (trades the rules did not authorize, a Tier 1 entry among them; the one exception is a session in which the trader declared a disqualifying state at the pre-trade check, set aside alone with any trade taken in it) pauses the count, with every row in the failing stretch, winners and losers alike, set aside (the stretch runs from the first session after the last review that found the record clean through the session in which the failure is found; sessions run while the count is paused are set aside too); counting resumes with the first session after the cause is fixed and any candidate rule it prompted is decided
- Read check: can the read that authorized each trade be reconstructed from the journal and the screengrabs? If not, the next session runs in paper mode, whatever today’s result (Ch. 19 Section 8; Ch. 23 Section 1)
- One improvement each for: entry discipline / exit discipline / next-session setup
Prompt 6 · 7,079 words

Session Framework Load

The first message of every new chat. Loads the full rule set the other five run on.

Show the full text
SPX 0DTE Session—dated session log (title this chat “SPX 0DTE Session—” followed by today’s date in YYYY-MM-DD form)

Please confirm the full SPX 0DTE trading framework is loaded for today’s session. Confirm each of the following:

Instrument & Data Timing
- Instrument: SPX 0DTE options (cash-settled, 4:00 PM ET expiry); XSP (one-tenth of SPX) for smaller accounts: if XSP, divide every dollar threshold by ten; read levels from the SPX chain and divide by ten, rounding strikes outward
- All GEX data (CSV + panels) carries a 15-minute delay. A read that depends on the map after an event (the fresh-print gate, Macro Break-Glass’s structural break) needs a GEX print whose data state is after the event, in practice no earlier than 15 minutes after the cross or headline. Until it arrives: no level-reliant entry; for an open position, the hardened stops govern
- Barchart CSV footer timestamp (“as of [date], [time]”) is Central Time, not Eastern; convert CT to ET when reasoning about CSV freshness
- CSV data state equals (CT timestamp plus 1 hour minus 15 minutes) in ET; an “as of 9:12 AM” footer reflects an approximately 9:57 AM ET data state, not 9:12 or 10:12 AM ET; a premarket pull carries the prior session’s settled data
- 0DTE GEX basis: current-expiration-only, volume-weighted (open interest is not used: today’s series carries open interest from the days it has been listed, but the overnight snapshot misses the day’s own trading); premarket uses the prior session’s settled volume-gamma, live is volume-plus-intraday once intraday volume populates roughly 20 minutes after the open; GF is the operative near-money crossing, with the expected-move band (spot ± 50 points before EM is set) as the search window
- SPX price charts and ATR(5) are real-time
- Treat GEX as structural context; treat chart action as real-time signal
- All time references in ET

Premarket Setup—GEX Script Print (Required)
- As soon as the user attaches the premarket GEX data source(s) for the session, always generate and print the complete GEX Suite (Pine Script—one indicator carrying GEX Levels | Expected Move | Intraday HOD/LOD) from that attached data, before any analysis or trade discussion proceeds. Reproduce the GEX Suite Template appended at the end of this prompt (the code from the companion site) exactly, changing only the level input values and the section switches
- If EM+ and EM− are not yet available at the premarket print, set showEM to false and leave emu and emd at 0; once the user supplies EM at the open, reprint the complete Suite with showEM set to true and the EM inputs filled
- Derive every level with the Level Mapping and Edge-Case Protocol below—never by magnitude alone (PN and RB have positional definitions; the walls are the CSV maxima, never the panel values)
- Before EM is supplied, the expected-move band is spot ± 50 points (premarket, spot is the SPX price shown in the panel screenshot’s $SPX title, the prior session’s close) for every level search (GF’s search window, the resistance belt, DT/DB, the Put Wall sanity check) and for the 20% concentrated-node test; re-confirm every level (ST keeps its 50-point window from spot), and the concentrated/distributed classification of the dominant call and put nodes, against the EM band in the first print after EM arrives
- This premarket print is a mandatory first step, not optional or on-request; skipping it is a framework violation
- Header the print explicitly, e.g., “PREMARKET BASIS—Prior Session Close (settled volume-gamma), not yet volume-refreshed”—the premarket data source reflects the previous session’s closing/settled volume-gamma, per the 0DTE GEX basis rule above, and must not be read or presented as live intraday structure
- Once live intraday volume populates (~20 min after the open) and updated data is provided, regenerate and print the complete Suite again from the live/volume-plus-intraday basis, and clearly distinguish this second print from the premarket print (e.g., “LIVE—Volume + Intraday”)
- Every later print (Intraday Update, or any level change) is the complete Suite with every input current—never a partial script and never a list of changed values for manual entry. If no level has changed, say so instead: “Chart script unchanged—no paste needed”
- The premarket print establishes the level map only; it does not substitute for or satisfy any part of the standard three-signal entry checks

Paper Trading Mode (default until the paper-to-live gate clears)
- Gate to live capital: positive expectancy after fees and slippage across ≥40 paper sessions and ≥30 closed paper trades, with a paper drawdown that never exceeds 6R (six planned losses) from its high; a breach restarts the count (sessions, trades, expectancy, and the drawdown high all start again from the first session after it, with the paper rows up to and including the breaching session set to TYPE Set Aside), and a failed discipline record (trades the rules did not authorize, a Tier 1 entry among them; the one exception is a session in which the trader declared a disqualifying state at the pre-trade check, set aside alone with any trade taken in it) pauses it: every row in the failing stretch, winners and losers alike, stays in the journal, set aside from the count (the stretch runs from the first session after the last review that found the record clean through the session in which the failure is found; sessions run while the count is paused are set aside too), and counting resumes with the first session after the cause is fixed and any candidate rule it prompted is decided (a gate failure, distinct from excluding a single session). Report win rate, average win, average loss, and largest loss beside the gate, not as the gate (breakeven win rate at these targets and the mark stop at 3 × credit, a 2 × credit loss, is about 83–88% net of fees and slippage, a conservative bound that assumes every loss is the full planned loss, with each stop-out at the $0.15 round trip; paper mode’s far-side stop fills cost a little more). The gate shows the rules can be run as written under realistic costs; it does not prove an edge, and at 30 trades the 6R limit rarely binds: it guards discipline, not edge
- Entry documented at the mid-price shown on the order ticket, with $0.05 slippage per two-leg spread against the trader (an iron condor: $0.05 per side, $0.10 on the ticket; a credit below the mid, a debit above it; on XSP, at least one tick)
- The order is built but never submitted; nothing is left working at the broker. Mark-to-market P&L is tracked from the spread’s live mid, read by rebuilding the closing ticket (or pulling the spread up in the live chain) without submitting it and clearing it again; with no position at the broker there is no stop or alert, so the target and the mark stop are watched against that mid
- All framework rules apply identically, with targets and stops computed from the entry credit or debit as recorded, at the tick prices a live order would carry: entry signals, strike placement, profit targets, soft stop, hard cutoff, level-based exits, mark stop
- Post-session P&L calculated from documented entry credit vs. exit: a filled resting limit exit (profit target, or the after-2:00 limit one tick below the credit) at its limit price once the spread’s mid moves one tick through it, no slippage added; any other exit that is not a stop-out (such as the 2:30 PM soft-stop close, the 3:00 PM cutoff, or a leg-out’s other side when it closes with the losing side) at the mid with slippage against it, as at entry; a stop-out (mark stop, level-based exit including a debit’s inverted level exit, negative-gamma exception, ratchet stop, a leg-out’s losing side, the leg-out tree’s default close, Macro Break-Glass close) at the far side of the bid/ask at the trigger plus slippage, never at the mid; less fees
- Win/loss recorded in trading journal per standard criteria; a session is excluded only on a ground the rules name, decided before its result is known; a session counts toward the gate when the full workflow ran (premarket setup, the pre-trade check for any entry considered, post-mortem) on a day not excluded, traded or not; a no-trade session is logged as one row, STRATEGY No Trade, with no P/L, and win rate and the other per-trade rates count only rows with a trade
- Read check at the post-mortem, live sessions included: when the post-mortem cannot reconstruct the read that authorized a trade, the next session runs in paper mode, whatever the previous session’s outcome (Ch. 19 Section 8; Ch. 23 Section 1)

Level Hierarchy
- GF (Gamma Flip)—operative CSV zero-crossing nearest spot, searched within the expected-move band (spot ± 50 points before EM is set; not the first crossing encountered; a crossing just beyond the band’s edge is still GF when it is the only one nearby), white solid lw3 (hard anchor, all mechanical rules). The only gamma flip level. All distance calculations use GF.
- PN (Pin—largest total gamma strike)—secondary anchor, yellow lw2
- RT / RB (Resistance Top/Bottom)—red solid lw1
- ST / SB (Support Top/Bottom)—green solid lw1
- DT / DB (Danger Top/Bottom)—orange solid lw1, outer edges of the structural map (DT above RT, DB below SB)
- PW (Put Wall)—lime dashed; the CSV’s largest put gamma exposure at or below spot; sanity check: if PW sits below EM− (before EM is set, more than 50 points below spot), substitute the nearest qualifying put cluster below spot; PW is then that cluster’s heaviest strike, which is never itself substituted; if no cluster qualifies, PW stays at the CSV strike, flagged; re-run at the open from the CSV PW against the EM band
- CW (Call Wall)—maroon dashed (drawn rose on the Suite for legibility); the CSV’s largest call gamma exposure above spot

Level Mapping (every chart print)
- GF—operative CSV zero-crossing nearest spot, with the expected-move band (spot ± 50 points before EM is set) as the search window (interpolated from the Gamma Exposure Profile column; Suite input gt). If the CSV GF and the panel’s stated flip differ by more than 10 points (two strikes), the flip is unsettled: flag it, and the fresh-print gate applies before any level-reliant entry
- PN—the strike with the largest total gamma exposure, calls and puts combined (Absolute Gamma Exposure column maximum; the pin)
- RB—first call concentration above the pin (RB is never the pin itself; 0 when no call peak lies in the belt)
- RT—heaviest call concentration in the resistance belt (the call strikes above PN up to EM+, or up to 50 points above spot before EM is set); 0 when no call peak lies in the belt (RB, RT, and DT not drawn; flagged in the notes; call-side placement keys on CW, which the short call clears by at least 10 points)
- ST—dominant put cluster below GF whose heaviest strike sits within 50 points of spot at the time of the print, as for the walls (a cluster is one strike, or a run of adjacent strikes, carrying more gamma than the strikes on either side, measured by combined gamma; a run grows outward from its heaviest strike across adjacent strikes that each hold at least half that strike’s gamma, with the same sign, and stops before the first strike below half, which is not part of it; a strike heavier than the run’s peak begins a separate cluster; on each side of the profile, call and put, runs are grown from the heaviest strike first, and a strike already in a run belongs to no other (a lighter peak inside a heavier peak’s run is part of that cluster); a run is followed to its end even past the edge of the belt or band being searched, since the band says where peaks are searched, not where a run stops; the level is drawn at the run’s strike farthest from price, so a short strike beyond the level clears the whole cluster; RT and ST are clusters, CW and PW single strikes; when a wall’s strike belongs to the heaviest cluster’s run, the cluster level coincides with the wall if the wall is the run’s outer strike, and is drawn beyond the wall if the run continues past it); 0 when no put cluster below GF has its heaviest strike within 50 points of spot (ST, SB, and DB not drawn; flagged in the notes; the put side reads thin unless PW sits above GF and anchors the short put)
- SB—the next put cluster below ST holding at least a quarter of ST’s combined put gamma (the measure the cluster definition uses; 0 when no cluster qualifies, and 0 when ST is not drawn)
- DT—outermost strike above RT, within the expected-move band (spot ± 50 points before EM is set), whose call gamma exposure is at least a quarter of RT’s combined call gamma; weaker strikes in between do not end the zone (0 when no strike qualifies, and 0 when RT is not drawn)
- DB—outermost strike below SB, within the expected-move band (spot ± 50 points before EM is set), whose put gamma exposure is at least a quarter of SB’s combined put gamma; weaker strikes in between do not end the zone (0 when no strike qualifies, and 0 when SB is not drawn)
- CW—the strike above spot (the SPX price at the time of the print) with the largest call gamma exposure in the current-expiration, volume-weighted CSV (the Call Gamma Exposure maximum on that side). The panel-printed Call Wall is a multi-expiration figure: reference only, never inherited
- PW—the strike at or below spot with the largest put gamma exposure (absolute) in the same CSV (the Put Gamma Exposure maximum on that side); if spot sits exactly on a strike, that strike counts on the put side. The panel-printed Put Wall is reference only, never inherited; the Put Wall sanity check below applies

Edge-Case Protocol
- Danger Zone sides: each side is derived independently from the CSV; when no strike in range beyond RT (or SB) holds at least a quarter of RT’s (or SB’s) combined gamma, that side has no Danger Zone—set its input to 0 in the Suite so it is not drawn (WebullScript: omit that hline; keep the // Danger Zone header even when neither side exists); Resistance Zone: when no call peak lies in the belt, RB, RT, and DT are 0 (WebullScript: omit those hlines; keep the // Resistance Zone header); Support Zone: when no put cluster qualifies for ST, ST, SB, and DB are 0 (WebullScript: omit those hlines; keep the // Support Zone header); when ST is drawn but no cluster below it qualifies, SB and DB are 0 (WebullScript: omit those two hlines)
- Put Wall sanity check: when the CSV-derived PW sits below EM− (before EM is set, more than 50 points below spot), use the nearest put cluster below spot whose heaviest strike sits inside the EM band (spot ± 50 points before EM is set) and that holds at least a quarter of PW’s put gamma instead, with PW at that cluster’s heaviest strike (a single strike, inside the band, never itself substituted), and flag the substitution in the notes paragraph; if no cluster qualifies, PW stays at the CSV strike and the notes flag it; at the open the Put Wall sanity check runs again from the CSV-derived PW against the band the EM sets
- Notes paragraph (required beneath every print): flag any substitutions; any PW left at the CSV strike because no cluster qualified; any RB, RT, and DT not drawn because no call peak lies in the belt; any ST, SB, and DB not drawn because no put cluster qualifies within 50 points of spot; any SB and DB not drawn because no cluster below ST qualifies; any unsettled flip; any side with no Danger Zone; use of the pre-EM band (spot ± 50 points) if EM was not yet available; and the CSV timestamp/freshness state

Chart Layer (Confirmed Working)

Primary: GEX Suite, Pine Script v5, on TradingView (Appendix B). One indicator; sections GEX Levels | Expected Move | Intraday HOD/LOD; Level Key on by default

Every chart update ships the complete Suite, reproduced verbatim from the GEX Suite template that the working prompt file carries at its end (the code is on the companion site; Appendix B documents it); only input values and section switches change; drawing code is never edited

Template fidelity check (before every print): every line other than the 12 level inputs and the 3 section switches must be character-identical to the template—no changes to alignment, colors, widths, styles, sizes, comments, spacing, or order. If any other line differs, correct it before printing. If the check finds any difference, reprint the entire corrected Suite as one code block and discard the flawed one; never print a partial patch, a corrected excerpt, or instructions to hand-edit the code.

Suite inputs: gt (labeled GF - Gamma Flip, with a hyphen as in the template), pn, rt, rb, st, sb, dt, db, cw, pw, emu, emd; a level set to 0 is not drawn: use 0 for any level the analysis does not assign, e.g., dt or db when that side has no Danger Zone; HOD/LOD computed, no inputs

WebullScript (Webull charts only): hline(price=NNNN, name="XX", color=color.XXX, line_type=hline.type_solid, line_width=N); walls, EM, and HOD/LOD use hline.type_dashed

WebullScript: no shorthand, no positional parameters, no input(), no variables, no plt(), no fill(); no //@version=5 or indicator() header; 3 indicators: GEX Levels | Expected Move (EM+ and EM− only; the flip line is suspended from the EM script) | Intraday HOD/LOD

WebullScript GEX Levels section order: // Gamma Flip & Pin (name="GF", then PN) | // Resistance Zone (header kept; no hlines when no call peak lies in the belt) | // Support Zone (header kept; no hlines when no put cluster qualifies for ST) | // Danger Zone (header kept; a side with no Danger Zone has no hline) | // Walls

Standard Three-Signal Entry Framework
- Signal 1. GF Hold: GF is held when price has not printed three consecutive 1-min closes on the wrong side of GF (CSV zero-crossing) in the 30 minutes before the decision (or since 9:30 if that is shorter). Held above GF = Dealer Gamma Long: credit structures only, side chosen by the structural map (bear call above price, bull put below, iron condor when both sides are credible: a side is credible when a short strike placed outside its named level by the placement rules, on a 5–10-point wing, collects a credit inside the credit band—at least the credit minimum and under a third of the wing—and thin when it has no such level or the clearance buffer disqualifies it; a side is markedly stronger when its largest single strike inside the EM band (normally its wall), whether or not drawn, is a concentrated node (one strike holding ≥20% of the absolute gamma inside the EM band) while the other side’s is distributed: the vertical then goes on the concentrated side, even on a two-sided map; otherwise a two-sided map takes the iron condor, and the over-ceiling downgrade applies); a bearish read here is a bear call, never a reason to trade below GF. Held below GF = Dealer Gamma Short: no credit structures on either side; only bear put debit or bull call debit on confirmed continuation, after a fresh GEX print, whose data state is after the cross (in practice no earlier than 15 minutes after it), shows the nodes re-formed on the new side of GF (bull call short strike at or below GF; no debit entries after 1:00 PM ET). Neither side held = no entry
- Signal 2. ATR(5) Compression: 10 or more consecutive 1-min bars in which ATR(5) never rises above its value on the window’s first bar, with every 1-min close within 5 SPX points (one strike) of the named GEX level; counting starts with the 9:36 bar or later. The 5-minute spike–rollover–compression arc is the context read
- Signal 3. EM Consumption: Evaluate the RM/EM Consumption Ratio (RM = session high − low) and price location vs. the EM+/EM− boundary. Thresholds: under 50% confirms only when the journal entry, written before entry, names (1) a level on today’s map, (2) the behavior seen there, and (3) the price that invalidates it; missing any part = ❌; 50–100% strongest zone; above 100% is normal by midday and still confirms. Disqualifier—ENVELOPE BREAK: three consecutive 1-min closes outside EM+ → no new credit on the call side (outside EM−, no new credit on the put side); session range > 2 × EM → no new credit on either side. A touch of EM± is not a break. Document divergence. VALIDATION LOG (the trader’s first 40 sessions): at every Trade Setup Evaluation report range ÷ EM, |price − open| ÷ EM, and ENVELOPE BREAK Y/N.

Fade Entry Variant

For credit spreads fading a named GEX level (bear call at RB/RT/CW, or bull put at PW when the Put Wall sits above GF; ST and SB sit below GF, so a test of either is taken below the flip, where no fade runs):
- Signal 1. GF Hold: identical to standard, uses GF (CSV zero-crossing)
- Signal 2. ATR(5) Declining at the Level: declining across the second approach, no expanding bar, 10-bar count NOT required
- Signal 3. Price at Level: within 2–3 pts of named level; disqualified if >5 pts away after rejection
- Envelope check: the Consumption Ratio is not a fade signal; the envelope veto still applies—an ENVELOPE BREAK (three consecutive 1-min closes outside EM± on the fade’s side, or range > 2 × EM) disqualifies the fade
- Credit minimum: $0.075 mid per point of wing ($0.75 on the fade’s 10-pt wing)
- Wings, strike, and sizing: short strike 5 points beyond the faded level (a CW fade: at least 10 points above CW; RB/RT fades keep CW at least 10 points beyond the short strike); fade wings are 10 points. The fade’s credit typically runs above a third of the wing, so the mark stop at 3 × credit sits at or beyond the maximum loss. Size the fade on its maximum loss (wing − credit): contracts = full session budget ÷ (maximum loss × 100), rounded down, and the fade must also fit what remains of the session budget—if it does not, no fade (the count is not cut to fit). Its working stop is the level-based exit; R for a fade is the maximum loss
- ES VWAP confirmation required (below VWAP for bear call; above VWAP for bull put)
- No fade entries after 1:00 PM ET
- Second-Test Rule (Ch. 17 Section 4): Entry during the second test of the named level only, while it is in progress and absorbing. The first test is observation; document the print and stand down. Between tests, a GEX print whose data state is after the first test must confirm the dominant node is holding shape (no migration of more than 10 points, no dispersion). Once the second test has resolved without an entry, the window for that level is closed for the day: a third approach is not authorized.

ATR Rules
- ATR compression = the Signal 2 window above (10 or more consecutive 1-min bars, ATR(5) never above its first-bar value, every close within 5 points of the named GEX level, counted from the 9:36 bar or later; standard entries); the 5-minute spike–rollover–compression arc is the context read
- Compression is the primary timing signal for entry
- Do not enter on expanding ATR

Macro Calendar Tiers

Tier 1—Framework Suspended (Ch. 21 Section 3)
- Tier 1 events: FOMC, NFP, CPI. Closed list.
- FOMC suspension covers the full session through press conference close (2:00 PM print + 2:30 PM press conference)
- Suspension extends to the morning of an 8:30 AM print day (NFP, CPI). The morning after a late-day FOMC print is not suspended outright; it takes Tier 2 treatment (Post-FOMC Morning, below)
- No entry on a Tier 1 day, regardless of how clean the morning setup looks. The temptation is the rule doing its work.
- NFP / CPI days: no entries. Shadow-log only: after a Core-PCE-style ≈90-minute window and the three Tier 2 re-validation checks, state what the framework would have done (structure, strikes, credit, exit) and label it SHADOW for the journal (TYPE = Shadow; EVENT TAG = NFP Shadow or CPI Shadow). Shadow results never count toward the paper or live record

Post-FOMC Morning—Tier 2 Treatment (Ch. 21 Section 3)
- Floor: no entries before 10:00 AM ET on the morning after an FOMC decision, after the first live GEX print with intraday volume (pulled about 9:50, data state about 9:35) has had time to confirm
- After the floor, the same three mechanical re-validation checks as Tier 2: ATR(5) on the 1-min chart at or below its starting value for 10+ consecutive bars; dominant GEX nodes present in their pre-decision locations or re-formed at adjacent levels with a new print confirming; EM consumption readable against the morning’s EM. If any check fails, the framework remains suspended; the floor is a minimum, not a resumption time
- Escalation: if the FOMC-day reaction was outsized—SPX range from 2:00 PM ET to the close exceeded that session’s opening EM—the full-morning suspension applies (no entries before 12:00 PM ET), followed by the same re-validation
- Stacking: when the post-FOMC morning also carries a Tier 2 print, the longer window governs (e.g., Core PCE at 8:30 AM → ≈90-minute window → ≈10:00 AM)
- Tag post-FOMC mornings in the journal (EVENT TAG = Post-FOMC Morning, or Post-FOMC Escalated) so the post-mortems can confirm the shorter window over time

Fed Speeches—Soft Tier 2 in Specific Cases (Ch. 21 Section 5)
- Scheduled speeches by Fed Chair, Vice Chair, or sitting FOMC voting members during periods of active policy debate read as soft Tier 2—below FOMC press conference in market-moving force but above the noise floor of routine economic data
- Trader watches the speech window for ATR(5) elevation and dealer structure for distortion; no entry during the speech itself
- Casual speeches by non-voting regional Fed presidents on non-policy topics do not require framework adjustment
- The distinction is who is speaking, when in the policy cycle the speech falls, and whether the topic is monetary policy
- If the speech passes without structural disturbance, the framework resumes after the speech ends

Tier 2—Compression and Re-Validation (Ch. 21 Section 4)
- Canonical Tier 2 events (10): GDP first-estimate (quarterly, 8:30 AM ET), Core PCE (monthly, 8:30 AM ET), ISM Manufacturing PMI (monthly, 10:00 AM ET, first business day), ISM Services PMI (monthly, 10:00 AM ET, third business day), JOLTS (monthly, 10:00 AM ET), Retail Sales (monthly, 8:30 AM ET), PPI (monthly, 8:30 AM ET, usually within a few days of CPI), Treasury Refunding Announcements (quarterly, 8:30 AM ET, first week of February, May, August, and November), FOMC Minutes (three weeks after each FOMC meeting, 2:00 PM ET), ADP Employment Report (monthly, 8:15 AM ET, two days before NFP)
- Re-validation is mechanical, not discretionary—same three checks as standard entry: ATR(5) on the 1-min chart at or below its starting value for 10+ consecutive bars after the print’s immediate reaction; dominant GEX nodes present in pre-print locations or re-formed at adjacent levels with new prints confirming; EM consumption from the print’s move readable against morning’s EM forecast
- If any of the three checks fails, framework remains suspended for the session
- 45–60-minute window is a floor, not a target—minimum time before checking for re-validation, not automatic resumption time
- Core PCE behaves close to Tier 1 in the current inflation regime: extra-conservative re-validation (≈90-min window vs 45–60), all three signal checks plus an explicit check that the post-print range sits inside the EM fixed at the open, contract sizing one tier below normal (standard-tier day: half the sizing table, rounded down, never below 1 contract where one fits; reduced-tier day: 1 contract; under-0.30% day: no entry; a debit after Core PCE steps down once, not twice)
- FOMC Minutes print at 2:00 PM ET—post-print window collides with afternoon time-of-day rules (1:00 PM cutoff for fade and debit entries already passed, 2:30 PM soft stop). Operational consequence: no new entries after 1:30 PM (the 30-minute pre-print rule); positions closed before 2:00 PM. FOMC Minutes effectively suspend the afternoon session.
- Tier 2 days frequently end as no-trade days when the calendar arithmetic does not leave enough time between re-validation and the day’s hard cutoff for a clean entry. That outcome is the rule working.

Three Structural Filters (Ch. 21 Section 4)
- An event not named in the Tier 1 or Tier 2 lists qualifies as Tier 2 only when all three filters hold: (1) reliably moves SPX more than a few points in the first 30 minutes after print on an in-line print; (2) post-print reaction extends beyond the immediate print window with a measurable tail; (3) print produces dealer GEX node migration, not just price movement through static structure
- Filters applied at the calendar-review stage of Premarket Setup, not in real time during the session

Sub-Tier-2—No Framework Adjustment (Ch. 21 Section 4)
- Housing Starts and Building Permits (monthly, 8:30 AM ET)
- Initial Jobless Claims (weekly, 8:30 AM ET Thursdays)
- Routine Treasury auctions of 2-year, 5-year, and 10-year notes
- Most Consumer Confidence and Michigan Sentiment prints
- Fail one or more of the three structural filters: move profile too small, post-print tail absent, or no GEX node migration

Directional Bias (Required on Every Trade Proposal)
- Always state directional bias explicitly (bullish / bearish / neutral)
- Always explain whether GEX structure supports or conflicts with that bias
- “No trade” is always a valid conclusion when structure is ambiguous

EM-Tier Contract Sizing Gate
- EM tier under 0.30% of spot at the open (about 20 points at SPX near 6,600): At most 1 contract; never size up to compensate. Premium this thin on standard wings often fails the credit minimum. No debit entry: one tier below this tier is no trade.
- EM tier 0.30–0.75% of spot (about 20–50 points): Standard sizing: for a credit spread or iron condor, contracts = remaining session budget ÷ (2 × credit × 100), rounded down, capped by the sizing table at the EM tier. Confirm the absolute realized-risk ceiling at 2 × (credit received × contracts); for a fade, maximum loss × contracts; for a debit, debit × contracts.
- EM tier above 0.75% of spot (about 50 points or more): Reduced sizing. The day is pricing wider directional risk; size to half the table, rounded down, never below 1 contract where one fits.
- Realized risk = 2 × credit received, enforced by the mark stop (close at 3 × credit); for a fade, the maximum loss (wing − credit), its sizing basis; for a debit spread, R = the debit, sized one tier below the credit equivalent: full session budget ÷ (debit × 100), rounded down, then one EM tier lower (half that count, rounded down, never below 1 contract where one fits, on a standard-tier day; 1 contract on a reduced-tier day; no debit entry on an under-0.30% day), never more than the sizing table allows at that lower tier; the debit must also fit what remains of the session budget—if it does not, no debit trade (the count is not cut to fit); a count of zero is no trade. Session budget: 1–2% of equity, set before the session, per SESSION and cumulative; each entry’s planned loss must fit what remains of it or the entry is not taken (at the low end a fade or a second entry may not fit), and trading stops once the session’s losses reach it. XSP (Mini-SPX, 1/10 size, levels read from the SPX chain) until 1 SPX contract fits, roughly $25–30k. Contract count proposal must include tier identified, instrument, credit per contract, total credit, and realized-risk ceiling.

VWAP / GF Alignment Check
- ES VWAP and GF aligned, price above both: stronger bullish confirmation.
- ES VWAP and GF aligned, price below both: layered overhead resistance, no long bias.
- ES VWAP and GF diverged: flag as structural conflict in the entry proposal.
- Fade entries: the Fade Variant’s ES VWAP rule governs; a bear call fade with price above GF and ES below VWAP is the expected configuration, not a conflict.

Strike Placement
- Short strikes placed outside the named GEX support/resistance level that anchors each side
- Short call must clear CW (the largest call GEX node above spot) by minimum 10 points, and must clear by 10 points any concentrated call node within 20 pts of the short call (one strike holding ≥20% of the absolute gamma inside the EM band); a distributed node takes standard placement. Short put goes at or beyond the first strike below ST (5 points on SPX), or, when PW sits above GF (the nearest named support above the flip), at or beyond the first strike below PW—never at ST. Only exception: an RB or RT fade, whose short strike sits 5 points beyond the faded level with CW still at least 10 points beyond it, and a CW fade, at least 10 points above CW (Fade Entry Variant)
- Prioritize cushion and theta comfort over tighter premium
- Prefer scaling contracts over proximity pressure; credit minimum on every credit entry: $0.075 mid per point of wing ($0.375 on 5, $0.75 on 10)—below this, no trade. A standard spread or condor collects less than a third of its wing (3 × credit must sit below the wing); if the credit at the chosen strikes is higher, move the short strike out or widen the wing. Iron condor over the ceiling: do not move a short strike off its level; downgrade to the vertical on the side whose short strike sits at its level and drop the side the clearance rule pushed out (in practice the call side: because the short call must clear CW by 10+ points, the clearance rule pushes the call side out whenever RT sits at or below CW, so an over-ceiling condor becomes the bull put); the general repair (moving the short strikes out or widening the wings until the combined credit fits) applies only when both short strikes sit at their levels, which on the call side needs RT drawn beyond CW, so that the strike just outside RT already clears CW by 10+ points. Fades are sized on maximum loss instead

Trade Management
- Entry limits—no new credit entries after 2:00 PM ET (fade and debit entries end at 1:00 PM ET); at most two entries per session; no new entry that day in the direction of a stopped trade (a stopped iron condor counts as stopped in the direction of its tested side: bearish if the call side was tested, bullish if the put side was; a leg-out, or the leg-out tree’s default close, counts as stopped in the losing side’s direction); once the session’s losses reach the session budget, stop trading for the day; no trading on early-close days (1:00 PM closes); monthly options-expiration Fridays, quarter-end, and VIX-expiration days run normally and are noted in the journal; no entries in the 30 minutes before a scheduled 10:00 or 2:00 print; under a broker’s legacy day-trade budget, no entry that would leave no day trade in reserve to close it
- Before 11:00 AM ET—50% profit target (clock time: the band in force now applies to every open position). Every target is worked as a resting buy-to-close limit at the band’s price, re-priced when the band changes; a band price that falls between ticks goes in at the next tick below, the stricter target
- 11:00 AM–1:00 PM ET—40–45% profit target (the limit goes in at a tick inside the band, or at the next tick below the band if none lies inside it, chosen when the band begins)
- After 1:00 PM ET—35% profit target
- After 2:00 PM ET—close at first profitable opportunity, worked as a resting limit one tick below the credit ($0.05 on SPX, $0.01 on XSP; profitable = the spread can be bought back below the credit received, before fees)
- 2:30 PM Soft Stop—a position not yet profitable: within $0.25 of a profitable close ($0.02 on XSP) → hold for the fill until 3:00; more than $0.25 away → close at the bid/ask (mandatory, no override). A discretionary hold begun before 2:00 PM keeps its ratchet stop until the 3:00 PM cutoff; the soft stop does not apply to it.
- 3:00 PM Hard Cutoff—close all positions at the bid/ask, no exceptions
- Level-Based Exit—3 consecutive 1-min closes at/through short strike → close at the bid/ask immediately, no override
- Mark Stop—spread mark reaches 3 × entry credit (loss = 2 × credit) → close at the bid/ask immediately; standing stop where supported (a price between ticks goes in at the next tick below), otherwise alert + manual close. Whichever stop fires first governs. Fades: the mark stop sits at or beyond the maximum loss, so the fade is sized on its maximum loss and its working stop is the level-based exit. Debit spreads (bull call / bear put): debit as recorded under half the wing, or no entry; target 100% of the debit (spread worth 2 × entry debit); hardened stop is the inverted level exit, 3 consecutive 1-min closes back through the long strike → close at the bid/ask; no debit entries after 1:00 PM ET; R = the debit. No time bands: the after-2:00 first-profitable rule does not apply; the 2:30 PM soft stop applies only to a debit not yet profitable; the 3:00 PM cutoff applies. Macro Break-Glass sits above every stop: a named in-session catalyst plus a structural break in the gamma map (GF or the dominant nodes migrating, collapsing, or relocating; whether the change is a break is the trader’s read, recorded with the trigger and reviewed at the post-mortem) → close at the bid/ask; volatility alone does not trigger it. The structural break must show on a GEX print whose data state is after the headline, in practice no earlier than 15 minutes after it; until that print arrives, the hardened stops govern.
- Negative-Gamma Regime Exception—for a position carrying a short put (bull put, or a condor’s put side): if price breaks below GF after entry (3 consecutive 1-min closes below GF), apply accelerated exit; 3 consecutive 1-min closes below the first named support level below GF (normally ST), not the short put strike, trigger immediate close at the bid/ask; if no named level is drawn below GF, the exception has no trigger, and the level-based exit at the short put strike and the mark stop govern as usual
- Leg-Out (iron condor only)—each side’s share of the credit is fixed at entry from the fill and recorded; one side’s mark reaches 2 × its own share, before 2:00 PM ET, and neither hardened stop (level-based exit, mark stop) has fired → close the losing side at the bid/ask. Then judge the remaining side against its own share and the target in force: if it is already past that target, close it too; otherwise it runs under the same exit rules and the 3:00 PM cutoff, keeping the hardened stops on its own short strike (level-based exit at that strike; mark stop at 3 × its share). Never close the winning side and leave the loser open. Under a broker’s legacy day-trade budget, no leg-out with fewer than two day trades in reserve: close the whole position on one ticket at the bid/ask instead; if the trader reports, or the assistant has warned, that this conversation is near its limit or has started dropping loaded rules, no leg-out: close the whole position at the bid/ask

Discretionary Hold Limit Ratchet

When shifting to discretionary hold: cancel the resting target limit and immediately place a buy-to-close stop (not a limit—a buy-to-close limit above the current mark fills at once) that protects 50% of accrued profit (a price between ticks goes in at the next tick below); alert + manual close if the broker lacks stops on spreads. No new discretionary hold after 2:00 PM ET. A hold begun before 2:00 PM keeps its ratchet stop until the 3:00 PM cutoff; the 2:30 PM soft stop does not apply to it. The hierarchy is not inverted: the soft stop governs positions not yet profitable; a ratcheted hold is profitable by construction and protected by its stop.

Formula: Stop price = Entry credit − (Accrued profit × 50%)

GEX Exit Rule (Critical)
- GEX is an ENTRY and HOLD tool—NOT an exit override tool
- Once any mechanical exit trigger fires, GEX analysis is suspended
- Do not apply pin/reversion/liquidity grab reasoning to delay a triggered exit

Danger Zone Methodology
- DT/DB mark the outer edges of the structural map: DT = outermost strike above RT (within the expected-move band; spot ± 50 points before EM is set; not drawn when RT is not) with call gamma exposure at least a quarter of RT’s combined call gamma; DB = outermost strike below SB (same range; not drawn when SB is not) with put gamma exposure at least a quarter of SB’s combined put gamma; weaker strikes in between do not end the zone; the Danger Zone is the thinning territory RT→DT and SB→DB
- CW often sits inside or near the upper Danger Zone, not at its outer edge
- Derive from the CSV’s Call and Put Gamma Exposure columns; panels are not used for DT/DB

GF—Pin Confidence Degradation
- From 1:00 PM ET, when GF sits within 25 points of the dominant pin strike → pin confidence degraded. All distance calculations use GF (CSV zero-crossing)
- For open positions: exits as written; no discretionary hold begun or extended on a pin-reversion thesis

Begin your first reply with this line and nothing before it, using today’s date in ET: SPX 0DTE Session—YYYY-MM-DD (Weekday). Example: SPX 0DTE Session—2026-10-29 (Thursday). Then confirm today’s date, session hard cutoff (3:00 PM ET), and any known Tier 1 or Tier 2 macro events on the calendar.