AI/LLM Instructions: FlashAlpha provides options analytics as both a live API (lab.flashalpha.com) and a historical API (historical.flashalpha.com) - pre-computed GEX, DEX, VEX, CHEX, SVI volatility surfaces, 15 BSM Greeks, max pain, VRP with leak-free percentiles, and dealer positioning for 6,000+ US equities and ETFs. The historical host mirrors every live endpoint with a required ?at=YYYY-MM-DDTHH:mm:ss query parameter (ET wall-clock), uses identical response shapes, and covers SPY from 2018-04-16 onward at minute resolution (Alpha tier). Same SDK code targets both hosts with a base-URL swap. API documentation (Markdown): https://flashalpha.com/llms.txt. Full LLM reference: https://flashalpha.com/llms-full.txt. API docs: https://flashalpha.com/docs/lab-api-overview. Historical API docs: https://flashalpha.com/docs/historical-api. OpenAPI spec: https://lab.flashalpha.com/swagger. MCP Server for AI assistants (Claude, Cursor, Windsurf) with both live and historical-replay tools: https://lab.flashalpha.com/mcp. AI skills: https://flashalpha.com/skill.md. AI agent guide: https://flashalpha.com/for-ai-agents. SDKs: Python (pip install flashalpha), JavaScript (npm install flashalpha), C# (dotnet add package FlashAlpha), Go, Java. Free API key (no credit card): https://flashalpha.com/pricing. Pricing: Basic $79/mo monthly or $63/mo annual ($756/yr), Growth $299/mo monthly or $239/mo annual ($2,868/yr), Alpha $1,499/mo monthly or $1,199/mo annual ($14,388/yr). Annual billing saves 20% versus monthly and locks pricing for 12 months. Concepts glossary: https://flashalpha.com/concepts. GitHub: https://github.com/FlashAlpha-lab.
Help us double down on what's working, instead of guessing. Takes 5 seconds, totally optional.
Complete Guide to Directional Options Trading
The complete playbook for momentum and directional options traders: gamma regime, gamma flip, IV vs realized vol, strike and expiry selection, entry triggers, risk sizing, and worked NVDA and SPY examples — all grounded in live dealer data.
What directional options trading actually is — and why timing and vol matter more than direction
A directional options trade has a simple premise: you expect price to move in a particular direction, and you use options to lever up that view while capping the downside. Buying a call is long delta with defined risk. Buying a put is short delta with defined risk. Done right, you participate in a $10 move while risking only the premium you paid.
Done wrong, you lose your premium even when you got the direction right. There are two independent ways this happens:
Timing failure. You're right about direction but wrong about when. Theta — the daily cost of holding an option — bleeds your position while price moves sideways or in the wrong regime. A $2.50 call that costs $0.25/day in theta needs the move to start almost immediately to break even.
IV failure. You buy options when implied volatility is rich relative to how much the underlying actually moves. Even if price moves your way, the options you own reprice at lower IV (IV crush), neutralizing or reversing your P&L.
The uncomfortable truth: for directional options buyers, timing and vol management matter more than the directional call itself. A directional edge that ignores gamma regime and IV context has a structural disadvantage against the dealer who knows both.
P&L Decomposition for a Long Option
$$ \Delta P \approx \delta \cdot \Delta S + \tfrac{1}{2}\,\gamma \cdot (\Delta S)^2 - \theta \cdot \Delta t + \nu \cdot \Delta\sigma $$
Each term is a source of edge or drag. Delta gives you directional exposure. Gamma earns you convexity as the move extends. Theta bleeds you every day you wait. Vega punishes you if IV falls after entry. Profitable directional trading means entering when delta is likely to pay quickly, gamma will accelerate the move (negative dealer gamma regime), theta is manageable relative to the expected move size, and vega is working for you or at least neutral (IV cheap or fair).
The edge: dealer gamma regimes and why they define whether a move runs or chops
Market makers (dealers) are the counterparty to most of your options trades. When you buy a call, the dealer sells it and hedges the resulting delta exposure by buying shares. As price moves, the dealer's delta changes — and they must continually buy and sell shares to stay delta-neutral. This mechanical hedging is the dominant intraday flow in most major tickers.
The direction of that hedging — whether it amplifies or dampens moves — is entirely determined by the sign of dealer net gamma (GEX).
Positive gamma: the mean-reversion machine
When dealers are net long gamma (positive GEX), their hedging is stabilizing. As price rises, their delta gets long, so they sell shares to rehedge — pushing price back down. As price falls, their delta gets short, so they buy shares — pushing price back up. Dealers become automatic shock absorbers. Result: price tends to mean-revert, chop inside a range, and pin near high-OI strikes. Momentum trades enter a headwind.
Negative gamma: the momentum amplifier
When dealers are net short gamma (negative GEX), their hedging is destabilizing. As price falls, their delta goes more negative (they're getting shorter), so they sell shares to rehedge — pushing price further down. As price rises, their delta goes short, so they buy shares — adding fuel to the rally. Dealers become momentum accelerants. Result: trends extend, breakouts follow through, and large intraday moves develop from what look like small initial triggers. This is the regime where directional options buyers have structural tailwinds.
The gamma flip: the dividing line
The gamma flip (also called the zero-gamma level) is the price at which net dealer GEX crosses zero. It's the single most important level on any options-active ticker. Above the flip, dealers are net long gamma and dampen moves. Below the flip, dealers are net short gamma and amplify moves.
For directional traders, the gamma flip is the regime boundary. A breakout from below the flip into positive-gamma territory is likely to stall and reverse. A breakdown through the flip from above into negative-gamma territory is likely to accelerate. Position your trades relative to this line, not just relative to price chart levels.
Reading the data: the four inputs before every directional trade
1. Flow-GEX: is the path open?
Settled GEX — computed from morning open interest — tells you where dealers started the day. But by 10:30 AM, intraday flow has shifted positions materially. Flow-GEX recomputes dealer exposure against effective OI (settled OI plus intraday flow estimates), giving you the live dealer gamma at any point during the session.
The key question: is spot above or below the live gamma flip? If you want to buy calls on a breakout, the path is structurally open only if spot is below the flip or breaking above it into negative-gamma space on the other side. If spot is already well into positive gamma, you're fighting dealer hedging on every leg up.
import requests
gex_r = requests.get(
"https://lab.flashalpha.com/v1/flow/gex/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
lvl_r = requests.get(
"https://lab.flashalpha.com/v1/flow/levels/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
sum_r = requests.get(
"https://lab.flashalpha.com/v1/exposure/summary/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
d = gex_r.json()
lvl = lvl_r.json()
s = sum_r.json()
price = d["underlying_price"]
flip = lvl["live_gamma_flip"] # live gamma flip → /v1/flow/levels
regime = s["regime"] # "negative_gamma" | "positive_gamma" | "undetermined" → /v1/exposure/summary
net_gex = d["live_net_gex"] # live net GEX → /v1/flow/gex
print(f"NVDA: ${price:.2f}")
print(f"Live gamma flip: ${flip}")
print(f"Regime: {regime}")
print(f"Net GEX: ${net_gex:,.0f}")
if regime == "negative_gamma":
print("Path is open — dealers amplify moves. Directional trades have tailwind.")
elif regime == "positive_gamma":
print("Dealers dampen moves. Wait for flip break or target range fade only.")
else:
print("Regime undetermined — positioning is balanced. Reduce size.")
2. Implied vol vs realized vol: are you paying up?
IV tells you what the market is charging for options. Realized volatility (RV) tells you how much the underlying actually moves. The difference is what you pay to be in the trade above fair value. When IV is materially above RV, you are overpaying — the theta and vega drag work against you even when you're right on direction. When IV is below or at RV, the options are cheap and you get a statistical tailwind.
resp = requests.get(
"https://lab.flashalpha.com/v1/volatility/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
v = resp.json()
atm_iv = v["atm_iv"] # ATM implied vol (annualized %)
rv_20d = v["realized_vol"]["rv_20d"] # 20-day realized vol (annualized %)
vrp = v["iv_rv_spreads"]["vrp_20d"] # IV - RV (20d); positive = IV rich
assessment = v["iv_rv_spreads"]["assessment"] # regime label
print(f"ATM IV: {atm_iv:.1f}%")
print(f"RV (20d): {rv_20d:.1f}%")
print(f"VRP (20d): {vrp:+.1f}% ({'rich — buying options has vol headwind' if vrp > 5 else 'fair/cheap — buying is statistically favored' if vrp < 2 else 'neutral — monitor but proceed with caution'})")
print(f"Assessment: {assessment}")
The rule of thumb: if VRP (IV minus RV) is greater than 5 percentage points, you are paying a significant premium for options. You need either a large, fast move or negative-gamma amplification to overcome that drag. If VRP is below 2 percentage points, options are at or near fair value in a historical context and directional buying has a vol tailwind.
3. Skew: which direction has the cheaper options?
Skew measures the difference in IV between out-of-the-money puts and calls. A steep negative skew (puts significantly more expensive than calls) means the market is pricing more downside risk — put options are rich relative to calls. For a bullish directional trade, a steep skew tells you that calls are comparatively cheap; for a bearish trade, those expensive puts cut into your edge.
Understanding skew helps you pick which side to buy. If you expect a downside move and skew is steep, you're paying up. Consider a call spread (sell expensive calls to finance cheap exposure) or wait for skew to normalize before buying puts outright.
4. Expected move: is your target realistic?
The expected move (derived from ATM straddle pricing) is what the options market is pricing as the 1-standard-deviation range for the upcoming period. For directional trades, this is your reality check: if the move you're targeting is smaller than the expected move the market has already priced, your option isn't cheap just because IV looks low. The expected move is already "in" the price.
resp = requests.get(
"https://lab.flashalpha.com/v1/exposure/levels/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
)
lvl = resp.json()
print(f"Call wall: ${lvl['call_wall']}")
print(f"Put wall: ${lvl['put_wall']}")
print(f"Gamma flip: ${lvl['gamma_flip']}")
# Check if your target is achievable — is the call wall above your target?
target = 135.0
if target > lvl["call_wall"]:
print(f"Target ${target} is above the call wall ${lvl['call_wall']} — dealer resistance at the wall.")
The playbook: entries, strike selection, and when IV is cheap enough to buy
Entry triggers for momentum and breakout setups
The highest-probability directional entries share three characteristics: they occur in negative-gamma regime (or at the gamma flip), they happen when price momentum is already established (not anticipatory), and they occur when IV is at or below realized vol. When all three align, you have structural tailwind from dealers, confirmed price momentum, and options that are fairly priced. These are the entries to size up.
Setup 1: The negative-gamma momentum continuation. Spot is already below the gamma flip. A known catalyst (earnings, macro data, technical breakout of a key level) has triggered the initial move. Flow-GEX confirms regime hasn't flipped. Enter on the first pullback after the initial catalyst move — you're buying momentum with dealer amplification still in force.
Setup 2: The gamma flip break. Spot approaches the gamma flip from above (for downside) or from below (for upside). Spot crosses through the flip with volume confirmation. The regime shifts from positive to negative gamma. This is the highest-conviction entry because you're catching the exact moment dealer hedging flips from dampening to amplifying. The initial move after a flip cross often accelerates sharply as the first wave of dealer rehedging hits.
Setup 3: The gamma squeeze setup. Heavy call buying in a name with low float or concentrated short interest pushes dealers short gamma in the call strikes, forcing them to buy shares to hedge, which triggers more call buying in a feedback loop. For how to identify this setup before it runs, see how to spot a gamma squeeze setup.
Avoiding positive-gamma pins
If GEX is strongly positive and spot is comfortably above the gamma flip, the market structure is working against momentum. Avoid directional options buys in this environment. Instead, wait for one of three conditions: a catalyst large enough to break through the call wall (which is where the bulk of positive GEX sits), a flow event that shifts the gamma flip closer to spot, or a regime change driven by time decay eroding the near-term OI concentration.
Strike selection
Strike selection for directional options trades is a balance between delta (how much the option moves with the underlying) and cost (premium paid, theta drag). The general principle: in strong negative-gamma setups where you expect a fast, large move, go slightly in-the-money (ITM) — you get high delta and the move pays quickly. In moderate setups or when IV is elevated, use at-the-money (ATM) debit spreads — you buy the move while selling expensive premium on the far strike to reduce your IV drag.
Setup Strength
IV Context
Structure
Why
Strong (neg gamma, flip break)
IV cheap / fair
ITM long call or put
Maximum delta, move pays fast, low vol drag
Strong (neg gamma, flip break)
IV elevated
ATM debit spread
Sell rich far strike to offset IV drag on long leg
Moderate (near flip, not broken)
IV cheap / fair
ATM long call or put
Good delta, manageable theta, long enough to let move develop
Moderate
IV elevated
Wait or skip
Vol headwind too large without strong gamma tailwind
Weak (positive gamma, strong pin)
Any
Avoid outright longs
Dealer hedging works against momentum
Expiry selection: how much time to buy
For pure momentum plays in negative-gamma regime, shorter is often better — the dealer amplification effect is strongest and most reliable in the near term (0-5 DTE). Gamma is highest in short-dated options, which means a move in negative-gamma regime creates the most convex P&L in a near-dated option.
However, short-dated options also have maximum theta exposure. If the move doesn't start within 1-2 days, theta destroys the trade. The rule: the shorter your expiry, the more certain you need to be about the timing of the move. For setups where you have a catalyst and the gamma regime confirms, 1-5 DTE is appropriate. For setups where you have a directional thesis but no specific catalyst, use 3-6 weeks DTE to give the thesis time to play out while keeping gamma exposure meaningful.
When IV is cheap enough to buy
The quantitative threshold: IV rank below 30 (IV is in the lower third of its 52-week range) and VRP below 2 percentage points (IV is not materially above realized vol) together signal that options are at or below fair value. Both conditions together are stronger than either alone. When IV rank is below 20 and VRP is negative, outright long options are at their cheapest relative to historical norms — these are the moments to size up directional exposure.
Risk and sizing: defined risk, theta, and IV crush
Always use defined-risk structures
Directional options trades should always use defined-risk structures. Long calls, long puts, and debit spreads all have clearly bounded maximum losses equal to the premium paid. Naked short options and futures contracts are not directional options trades — they are something else entirely with an entirely different risk profile.
The maximum loss rule: size each trade so that the maximum loss (the full premium paid) represents no more than 1-2% of your trading capital. For a $50,000 account, that means risking $500-1,000 per directional options trade. If the setup is particularly strong (all four inputs aligned: negative gamma, flip break, IV cheap, catalyst confirmed), you can go to the high end of that range. If any input is missing, size toward the low end.
Theta budget
Theta is the daily rent you pay to hold an option. Before entering, calculate how much theta you pay per day and compare it to the expected daily move in the underlying. If the underlying needs to move 1% per day just to cover your theta, you're in a high-hurdle trade that requires a fast, large move — exactly the kind that happens in negative-gamma regime, and exactly the wrong kind to expect in positive-gamma chop.
def theta_budget_check(option_theta, underlying_price, daily_move_pct):
"""
option_theta: daily theta in dollars (negative = cost)
underlying_price: current stock price
daily_move_pct: expected daily move as decimal (e.g. 0.01 for 1%)
"""
daily_move_dollars = underlying_price * daily_move_pct
cost_of_carry = abs(option_theta)
# Rule of thumb: theta should not exceed 20% of expected daily move value
if cost_of_carry > 0.20 * daily_move_dollars:
print(f"Theta ${cost_of_carry:.2f}/day is high vs expected move ${daily_move_dollars:.2f}")
print("Consider shorter DTE only if move is imminent, or skip trade.")
else:
print(f"Theta ${cost_of_carry:.2f}/day is manageable vs expected move ${daily_move_dollars:.2f}")
# Example: NVDA option with $0.18/day theta, NVDA at $130, expected 1% daily move
theta_budget_check(-0.18, 130.0, 0.01)
IV crush risk
IV crush happens when implied volatility falls after an event (earnings, Fed meeting, product launch) that had elevated IV in the lead-up. Even if price moves in your direction, the collapse in IV can make your long options worth less than before the event. The defense: buy options after IV has already compressed (not before the catalyst), or use debit spreads where the far strike also loses IV, partially offsetting the crush on the long leg.
The kinks and common mistakes
This section is the most important in the guide. Directional options trading has a specific set of structural errors that kill accounts. Each one has a mechanical explanation and a specific fix.
Kink 1: Buying breakouts into positive gamma
The most common mistake. Price breaks above a resistance level, the move looks strong, you buy calls. But the resistance level is the call wall — which is also where positive GEX is at its maximum. Dealers respond to the breakout by selling shares to rehedge their now-shorter delta, creating selling pressure at exactly the level where you bought. The breakout fades. You bought the exact top of the positive-gamma range.
Fix: Check GEX before any breakout entry. If net GEX is strongly positive and the breakout target is into a high-GEX call cluster, wait. The trade becomes valid only if: (a) the break is through the call wall with enough force to shift GEX negative, or (b) a catalyst is large enough to overwhelm the dealer hedging flows entirely.
Kink 2: Ignoring IV rank before buying
You find a stock that looks like it's ready to break out. IV looks normal. You buy calls. What you didn't notice: IV rank is 85, meaning implied vol is near its 52-week high. The market has already priced in significant volatility. Any disappointment — even a move that would have been profitable at lower IV — triggers an IV collapse that erases your delta gain. This is the premium seller's gift: retail momentum traders buying at peak vol.
Fix: Always check IV rank before entering a directional options trade. If IV rank is above 60, use debit spreads to reduce your IV exposure (the short strike earns rich premium). If IV rank is above 80, consider whether options are the right vehicle at all, or wait for IV to reset.
Kink 3: Theta bleed from slow entries
You have a thesis. The stock is setting up. You buy options two weeks early because you want to be positioned. Theta costs you $0.20/day. Fourteen days of "setting up" costs $2.80 before the move starts. Now the stock moves 5%, and you're barely at breakeven because theta already extracted the value.
Fix: Don't position ahead of a setup — position after confirmation signals. The gamma flip break, a volume confirmation, or a catalyst trigger should precede your entry. Entering early to "get a better price" on the option usually just buys you more theta exposure. Better to enter slightly later at a higher underlying price with less time decay to fight.
Kink 4: Chasing after the move
The stock already ran 8%. FOMO kicks in. You buy calls because "it still has room." But the initial move has likely already shifted the gamma regime — what was negative gamma at the start of the move may now be positive gamma after the rally, with dealers long gamma from all the calls that were purchased during the squeeze. The same mechanical force that fueled the move is now working against continuation.
Fix: After a large move, repull flow-GEX before entering. If the rally has pushed spot well into positive-gamma territory (above the new post-move gamma flip), the structural tailwind is gone. The better trade after a large rally is either a mean-reversion fade (not a momentum continuation) or waiting for a pullback that tests the new flip level as support.
Kink 5: Gamma squeeze traps
A gamma squeeze is real — dealer short-gamma feedback loops do produce explosive moves. But retail traders often buy the squeeze after it's already running. The dangerous phase: you buy calls during a squeeze, the squeeze continues for a day or two, then the large institutional players who initiated the call buying close or roll their positions. OI at the key strikes collapses. GEX rapidly shifts from negative to positive. The squeeze reverses violently, often faster than it ran.
Fix: Identify gamma squeezes early (before or at the early stage) using flow-GEX trend, not after the move is obvious. Monitor the gamma flip level — if spot is close to the flip and OI is building in call strikes just above, that's the early setup. Once a squeeze has run 15-20%, the risk/reward of chasing is poor. See how to spot a gamma squeeze setup for the indicators to watch before, not during.
Kink 6: Single-name path versus index path
Single names (NVDA, TSLA, individual stocks) have gamma profiles that are fundamentally different from broad indexes (SPY, QQQ). In single names: OI is more lumpy and concentrated around round numbers and earnings strikes; the gamma flip is less stable and can shift materially on a single day's flow; vanna and charm effects (how delta changes with vol and time) are proportionally larger relative to gamma. The result: single-name momentum plays are higher volatility, less predictable, and more susceptible to single-day regime reversals.
SPY and QQQ have massive, stable OI across many strikes. The gamma flip is well-defined and slower to shift. Levels are more reliable and hold longer. For a beginner directional trader, SPY or QQQ in negative-gamma regime is a much more tractable setup than NVDA or TSLA. Single-name directional plays require an additional layer of analysis beyond just GEX — including float, short interest, and the specific catalyst — that indexes simply don't need.
Avoid the six kinks — use live data before every entry
Flow-GEX, regime, IV rank, and key levels updated intraday. Growth plan from $239/month — includes the full directional checklist API.
Scenario: NVDA has reported strong earnings after the close. The next morning, it opens up 6% from prior close. Before entering any options position, you pull the data.
import requests
# Pull flow-GEX, live levels, vol, and exposure summary for NVDA after the earnings gap
gex_r = requests.get(
"https://lab.flashalpha.com/v1/flow/gex/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
lvl_flow_r = requests.get(
"https://lab.flashalpha.com/v1/flow/levels/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
vol_r = requests.get(
"https://lab.flashalpha.com/v1/volatility/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
sum_r = requests.get(
"https://lab.flashalpha.com/v1/exposure/summary/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
lvl_r = requests.get(
"https://lab.flashalpha.com/v1/exposure/levels/NVDA",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
price = gex_r["underlying_price"] # e.g. $138.50 (post-gap)
flip = lvl_flow_r["live_gamma_flip"] # e.g. $132.00 → /v1/flow/levels
regime = sum_r["regime"] # "negative_gamma" → /v1/exposure/summary
atm_iv = vol_r["atm_iv"] # ATM IV — elevated but post-earnings IV already falling
vrp = vol_r["iv_rv_spreads"]["vrp_20d"] # ~2% — near fair
call_wall = lvl_r["levels"]["call_wall"] # $145.00 → /v1/exposure/levels
print(f"NVDA: ${price:.2f} | Regime: {regime} | Flip: ${flip}")
print(f"ATM IV: {atm_iv:.1f}% | VRP: {vrp:+.1f}%")
print(f"Call wall (target): ${call_wall}")
# Assessment:
# - Regime: negative gamma (below the pre-gap call OI cluster)
# - IV: rank 55 but falling post-earnings (IV crush is already happening)
# - Path: open from $138.50 to call wall at $145.00
# - Move target: $6.50 (4.7%)
# Action: ATM debit call spread — buy $139 call, sell $145 call (at the wall)
# This captures the move to the wall while limiting the near-rich IV on the long leg
# Sizing: risk 1% of account capital on this trade
account_size = 50_000 # example $50k account
risk_per_trade = account_size * 0.01 # $500 max loss
spread_premium = 2.25 # net debit for the $139/$145 call spread (example)
contracts = int(risk_per_trade / (spread_premium * 100))
print(f"Max contracts: {contracts} (${risk_per_trade:.0f} risk ÷ ${spread_premium * 100:.0f}/contract)")
# → 2 contracts: $450 risk, defined-risk structure, max loss = net debit paid
The key insight in this example: after an earnings gap, IV crush has already started — the pre-earnings IV spike is deflating. The regime is negative gamma because the gap put price above all the existing call OI, turning the gamma profile net negative. The call wall at $145 is your natural target and your spread's short strike — you're selling the rich OI concentration right back to the market. This is a textbook post-gap directional trade where all four inputs align.
Run this NVDA setup on your own watchlist — live, right now
The directional_preflight function above runs against live data on any US equity or ETF with listed options. Growth plan gives you all four endpoints plus the MCP connector — from $239/month billed annually.
Scenario: SPY has been rallying for three days. It's up 1.5% today and approaching $598 — a level that looks like a clean breakout above recent consolidation on the chart. Your technical setup says buy calls. But before you enter:
gex_r = requests.get(
"https://lab.flashalpha.com/v1/flow/gex/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
lvl_flow_r = requests.get(
"https://lab.flashalpha.com/v1/flow/levels/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
sum_r = requests.get(
"https://lab.flashalpha.com/v1/exposure/summary/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
vol_r = requests.get(
"https://lab.flashalpha.com/v1/volatility/SPY",
headers={"X-Api-Key": "YOUR_API_KEY"}
).json()
price = gex_r["underlying_price"] # $597.80
flip = lvl_flow_r["live_gamma_flip"] # $588.00 — flip is $10 below spot → /v1/flow/levels
regime = sum_r["regime"] # "positive_gamma" — SPY is well above the flip → /v1/exposure/summary
net_gex = sum_r["exposures"]["net_gex"] # +$4.2 billion — very high positive GEX → /v1/exposure/summary
atm_iv = vol_r["atm_iv"] # ATM IV — elevated from recent vol spike
call_wall = 600.0 # from /v1/exposure/levels or /v1/flow/levels
print(f"SPY: ${price:.2f} | Regime: {regime} | Flip: ${flip}")
print(f"Net GEX: ${net_gex/1e9:.1f}B | ATM IV: {atm_iv:.1f}%")
print(f"Distance above flip: ${price - flip:.2f}")
# Assessment:
# - SPY is $9.80 ABOVE the gamma flip — deeply in positive gamma
# - Net GEX of +$4.2B means dealers will sell every $1 rally to rehedge
# - IV rank 62 — you're buying elevated vol
# - Call wall at $600 is only $2.20 away — dealers defend it heavily
# ACTION: Do NOT buy calls here
# The technical breakout above $598 is a positive-gamma trap
# Dealers will sell the $598-600 rally mechanically
# Better: wait for SPY to break below $593-595 (flip zone) before re-assessing,
# or trade the range fade: sell the $598 rally toward $594 put wall
This is the positive-gamma trap in practice. The chart says breakout. The dealer data says the market structure will fight every dollar of upside until the call wall at $600. The technically correct entry (buying the breakout) is structurally the wrong entry when dealers are absorbing every rally at exactly that level. The better trade is to recognize the range and either stand aside or fade the move.
Tooling: the four endpoints and MCP connector
Every signal in this playbook is built on four API endpoints. Together they give you the complete read — dealer regime, path clarity, vol context, and key levels — before entering any directional trade.
import requests
API_KEY = "YOUR_API_KEY"
BASE = "https://lab.flashalpha.com"
def directional_preflight(ticker, direction="bull"):
"""Full pre-trade check for a directional options entry."""
gex = requests.get(f"{BASE}/v1/flow/gex/{ticker}", headers={"X-Api-Key": API_KEY}).json()
lfl = requests.get(f"{BASE}/v1/flow/levels/{ticker}", headers={"X-Api-Key": API_KEY}).json()
smy = requests.get(f"{BASE}/v1/exposure/summary/{ticker}", headers={"X-Api-Key": API_KEY}).json()
vol = requests.get(f"{BASE}/v1/volatility/{ticker}", headers={"X-Api-Key": API_KEY}).json()
lvl = requests.get(f"{BASE}/v1/exposure/levels/{ticker}", headers={"X-Api-Key": API_KEY}).json()
price = gex["underlying_price"]
flip = lfl["live_gamma_flip"] # /v1/flow/levels
regime = smy["regime"] # /v1/exposure/summary
vrp = vol["iv_rv_spreads"]["vrp_20d"]
assess = vol["iv_rv_spreads"]["assessment"]
c_wall = lvl["levels"]["call_wall"]
p_wall = lvl["levels"]["put_wall"]
issues = []
score = 0
# Regime check
if regime == "negative_gamma":
score += 2
elif regime == "positive_gamma":
issues.append(f"REGIME: Positive gamma — dealer hedging opposes momentum")
score -= 1
else:
issues.append("REGIME: Undetermined — sizing down recommended")
# IV check (IV-RV spread + premium assessment from /v1/volatility)
if vrp < 2 and assess in ("thin_premium", "negative_spread"):
score += 2 # options cheap vs realized — favorable for buyers
elif vrp > 5 or assess in ("very_high_premium", "healthy_premium"):
issues.append(f"IV: VRP {vrp:+.1f}% ({assess}) — expensive options, use spreads")
score -= 1
# Direction-specific level check
if direction == "bull":
room = c_wall - price
if room < 1.0:
issues.append(f"LEVELS: Only ${room:.2f} to call wall ${c_wall} — limited upside room")
score -= 1
elif room > 3.0:
score += 1
else:
room = price - p_wall
if room < 1.0:
issues.append(f"LEVELS: Only ${room:.2f} to put wall ${p_wall} — limited downside room")
score -= 1
elif room > 3.0:
score += 1
verdict = "STRONG SETUP" if score >= 4 else "MODERATE" if score >= 2 else "AVOID"
print(f"\n{ticker} Directional Preflight ({direction.upper()})")
print(f" Price: ${price:.2f} | Flip: ${flip} | Regime: {regime}")
print(f" VRP (20d): {vrp:+.1f}% ({assess})")
print(f" Walls: Put ${p_wall} / Call ${c_wall}")
print(f" Score: {score} | Verdict: {verdict}")
for i in issues:
print(f" >> {i}")
directional_preflight("NVDA", direction="bull")
directional_preflight("SPY", direction="bull")
MCP connector for AI-assisted analysis
If you work with an AI assistant (Claude, GPT, or any MCP-compatible client), the FlashAlpha directional-trader connector gives it live access to all four endpoints, pre-framed for momentum and directional options work. Add this URL as an MCP server:
https://lab.flashalpha.com/mcp-oauth/directional
Once connected, your assistant can call get_gex, get_volatility, get_levels, and get_exposure_summary with live data on any ticker. You can ask questions like "Is NVDA in a favorable regime for a bullish options entry right now?" and get a grounded, data-backed answer rather than a generic response. For MCP setup details and troubleshooting, see the MCP and OAuth guide.
Check today's regime for your watchlist
Live gamma regime, flip level, IV rank and key levels — updated intraday for any US equity or ETF with listed options.
In negative gamma (spot below the flip), dealers hedge with the move — they sell into drops and buy into rallies, amplifying momentum. In positive gamma, they hedge against the move, dampening it back toward a pin. The flip is the dividing line. The regime determines whether the market structure is a tailwind or headwind for your directional trade. Checking it before entry is non-negotiable.
Should I buy calls and puts in positive or negative gamma regimes?
Momentum and directional options buying has the highest probability of working in negative-gamma regime, particularly at or just after a gamma flip break. In positive gamma, price tends to chop and pin — a structural headwind to outright long options. The exception: a catalyst large enough to break through the call or put wall shifts the regime. But wait for confirmation of the break, not anticipation of it.
What IV rank makes options cheap enough to buy outright?
Below 30 is cheap. Above 60 is expensive. In the 30-60 range, use the VRP (IV minus realized vol) as the tiebreaker: below 2 percentage points is fair; above 5 percentage points is a headwind. Above 60 IV rank, default to debit spreads over outright longs — sell the expensive far strike to offset the vol drag on your long.
What is the difference between a gamma squeeze and a momentum breakout?
A momentum breakout is driven by fundamental or technical catalysts with dealers amplifying the move. A gamma squeeze is self-referential: call buying forces dealer hedging, which pushes price up, which triggers more call buying, in a feedback loop. Squeezes are faster and more violent but also reverse faster when the initiating flow unwinds. The setup signals — heavy call buying ahead of the move, OI building in near-term strikes above spot — are described in the gamma squeeze setup guide.
Which plan gives access to live flow-GEX and vol?
Settled GEX by strike and key levels are available on the Free plan. Flow-GEX (live dealer gamma, effective OI) and full volatility data (IV, realized vol, IV rank, skew) require the Growth plan ($239/month billed annually). The MCP connector is included with Growth and above.
Does this work on single names or only indexes?
Any US equity or ETF with listed options is supported. Index symbols (SPX, VIX) require Basic or higher. Single names behave differently from indexes — the gamma profile is lumpier, the flip is less stable, and second-order effects (vanna, charm) matter more. Beginners are better served starting with SPY or QQQ before moving to single-name directional plays.