When Not to Sell Options: Negative-Gamma Days Hold Most of the Losses | FlashAlpha
research · 47 min read

When Not to Sell Options: Negative-Gamma Days Hold Most of the Losses

Selling same-day SPY and QQQ strangles from 2022 to 2026, negative-gamma days held 72% to 74% of SPY losses and 68% to 76% of QQQ losses, more than chance. Selling only on positive-gamma days lifted the Sharpe ratio of QQQ 0DTE strangles from +0.35 to +1.38.

F
Oct 23, 2026
47 min read
Research GEX GammaExposure 0DTE OptionSelling SPY QQQ

Short answer: check dealer gamma first, and trust only a certified gamma flip. Across 17,100 SPY and QQQ option-selling strategies, the strongest same-day rule was to sell only when net GEX is positive and price sits above FlashAlpha's certified gamma flip. It beat random timing on both ETFs (p = 0.005 on SPY, 0.006 on QQQ).

We sold same-day SPY and QQQ strangles every trading day from January 2022 to October 2026 and split the results by the previous close's gamma exposure (GEX). Negative-gamma days were 60% to 63% of SPY trades but held 72% to 74% of the dollar losses and 71% to 78% of the worst days. QQQ showed the same pattern. Selling only on positive-gamma days, every strangle we tested made money on both ETFs: Sharpe ratios of +1.02 to +1.38 on QQQ and +0.18 to +0.66 on SPY, at midpoint fills. On QQQ 0DTE strangles the filter lifted the Sharpe ratio from +0.35 to +1.38, and it still made money with full bid/ask fills (−0.47 to +0.72).

+0.35 to +1.38Sharpe of QQQ 0DTE strangles: every day vs positive-GEX days only
72% to 74%of SPY short-premium losses fell on negative-gamma days, which were 60% to 63% of trades
2 of 2ETFs where selling above a certified gamma flip with positive GEX beat random timing (p ≤ 0.006)
8 of 8tests where losses clustered on negative-gamma days more than chance (p ≤ 0.049)

Built on FlashAlpha. Every number in this study comes from four FlashAlpha endpoints, replayed minute by minute on the Historical API: GEX and the certified gamma flip, the option chain with greeks, stock quotes and the volatility risk premium. Each step below names the endpoint and fields it used, so you can run the same rule live.

The rule

Before selling short-dated premium on SPY or QQQ, read two numbers from FlashAlpha at the previous close: net gamma exposure (GEX) and the certified gamma flip.

  • Net GEX positive and price above a certified flip: sell. Dealers are long gamma and their hedging dampens moves. This was the strongest same-day filter in the 17,100-strategy screen, on both ETFs.
  • Net GEX negative: skip the trade or cut the size. Dealers are short gamma and their hedging can amplify moves. These days held most of the losses.
  • No certified flip: use net GEX alone. When the option book cannot support a flip, FlashAlpha says so in gamma_flip_status instead of publishing a guess.

FlashAlpha endpoint: GEX and certified gamma flip

LiveGET https://lab.flashalpha.com/v1/exposure/gex/SPY

ReplayGET https://historical.flashalpha.com/v1/exposure/gex/SPY?at=2026-10-22T15:55:00

One call returns the regime, the flip and its certification, all computed from the same option chain. The study read the previous session's 15:55 ET snapshot. Fields: net_gex, net_gex_label, gamma_flip, gamma_flip_status, underlying_price.

Cumulative P&L of selling a 0.25-delta 1-week strangle at 09:35 and buying it back at 15:55, every day versus only on positive-GEX days, for QQQ and SPY, January 2022 to October 2026. Selling every day loses money on both ETFs; selling only on positive-GEX days makes money on both.

Why the flip has to be certified

A gamma flip is a regime boundary: above it dealer hedging dampens moves, below it hedging amplifies them. A flip that jumps when one strike's quote widens flips your regime label on noise, which is worse than having no level at all.

FlashAlpha certifies a flip only when it passes three checks:

  • Coverage: at least 75% of the open interest between spot and the level carries usable gamma.
  • Quote quality: on expiry day, at least 75% of that open interest has two-sided quotes worth more than their spread.
  • Stress test: every strike's gamma is scaled by 0.75 and 1.25, and the level must stay put. In validation, 436,507 stress variants moved no certified level beyond its tolerance.

When a check fails, the API still returns the level, with gamma_flip_status naming the check that failed. This backtest used the flip only on days it was certified, which was about 80% of SPY sessions and 68% of QQQ sessions. On the other days, flip-based filters stood aside. How certification works and how to trade the regime label explain the fields in detail.

FlashAlpha endpoint: Stock quote

LiveGET https://lab.flashalpha.com/stockquote/SPY

ReplayGET https://historical.flashalpha.com/v1/stockquote/SPY?at=2026-10-22T09:35:00

Price above or below the flip compares the 09:35 ET stock quote with the previous close's certified flip. Fields: bid, ask, mid.

Where option sellers lost money

FlashAlpha endpoint: Option chain with greeks

LiveGET https://lab.flashalpha.com/optionquote/SPY

ReplayGET https://historical.flashalpha.com/v1/optionquote/SPY?at=2026-10-22T09:35:00

Every trade in this study was picked and priced from this endpoint: the contract nearest the target delta at 09:35 ET, with open interest of at least 250 and a spread of at most 20%, then closed on the quote at 15:55 ET. Fields: type, expiry, strike, bid, ask, delta, open_interest, lastUpdate.

Same-day short strangles, sold at 09:35 ET and bought back at 15:55 ET, split by the previous close's GEX. "p" compares the real negative-gamma calendar with the same calendar shifted to 63-plus sessions away, over a thousand times: how often random timing caught the losses at least as well.

Negative-GEX days: share of trades, of dollar losses and of the worst 5% of trades
ETFStrangleTradesDollar lossesWorst 5% of tradesp
QQQ0DTE, 0.10 delta54%71%66%0.031
QQQ0DTE, 0.25 delta55%68%67%0.049
QQQ1 week, 0.10 delta59%76%81%0.002
QQQ1 week, 0.25 delta60%75%77%0.013
SPY0DTE, 0.10 delta60%74%71%0.027
SPY0DTE, 0.25 delta63%72%76%0.032
SPY1 week, 0.10 delta62%73%78%0.008
SPY1 week, 0.25 delta63%73%75%0.027
On negative-GEX days, the share of dollar losses and of the worst 5% of trades exceeds the share of trades, for QQQ and SPY 0DTE and 1-week strangles.

The worst single trades tell the same story. For 0.25-delta 0DTE strangles, the worst loss on a positive-GEX day was −$734 on QQQ and −$959 on SPY, against −$3,272 and −$3,074 on negative-GEX days: a quarter to a third of the size.

Selling only on positive-gamma days

Same-day short strangles, one per day, midpoint fills plus $1 per contract. Sharpe ratio of monthly P&L, total P&L and win rate on positive-GEX days, maximum drawdown and worst trade.
ETFStrangleSharpe: every daySharpe: positive GEXP&L: positive GEXWin rate: positive GEXDrawdown: every dayDrawdown: positive GEXWorst trade: every dayWorst trade: positive GEX
QQQ0DTE, 0.25 delta+0.35+1.38$10,09973%−$6,402−$2,856−$3,272−$734
QQQ0DTE, 0.10 delta+0.04+1.06$4,31687%−$4,122−$1,535−$2,702−$833
QQQ1 week, 0.25 delta−0.25+1.14$4,09469%−$5,687−$845−$1,693−$538
QQQ1 week, 0.10 delta−0.40+1.02$2,40371%−$3,712−$445−$1,100−$378
SPY0DTE, 0.25 delta+0.26+0.54$2,98072%−$5,907−$2,276−$3,074−$959
SPY0DTE, 0.10 delta+0.20+0.66$2,18386%−$3,052−$1,377−$2,478−$760
SPY1 week, 0.25 delta−0.33+0.25$81463%−$4,724−$1,218−$1,434−$556
SPY1 week, 0.10 delta−0.55+0.18$32965%−$3,725−$690−$814−$320

The filter raised the Sharpe ratio and cut both the maximum drawdown and the worst trade in every case on both ETFs. QQQ gained the most: every filtered setup had a Sharpe ratio above +1.02. On SPY, 1-week strangles lost money when sold every day and made money when sold only on positive-GEX days.

How much fills matter

The figures above assume you sell at the midpoint, which limit orders on SPY and QQQ options often achieve. Worse fills cost money on every trade, so the table below shows each setup at four fill levels: every day / positive GEX only.

Sharpe ratio by fill: every day / positive GEX only. Near mid = a quarter of the way to bid/ask; halfway = half of the way; bid/ask = full spread. All include $1 per contract; all but mid add $0.01 per share.
ETFStrangleMidNear midHalfwayBid/ask
QQQ0DTE, 0.25 delta+0.35 / +1.38−0.08 / +1.03−0.22 / +0.93−0.47 / +0.72
QQQ0DTE, 0.10 delta+0.04 / +1.06−0.60 / +0.46−0.72 / +0.36−0.95 / +0.15
QQQ1 week, 0.25 delta−0.25 / +1.14−0.99 / +0.45−1.25 / +0.20−1.73 / −0.30
QQQ1 week, 0.10 delta−0.40 / +1.02−1.41 / +0.08−1.64 / −0.14−2.08 / −0.60
SPY0DTE, 0.25 delta+0.26 / +0.54−0.16 / +0.20−0.26 / +0.12−0.46 / −0.03
SPY0DTE, 0.10 delta+0.20 / +0.66−0.57 / +0.04−0.68 / −0.05−0.90 / −0.23
SPY1 week, 0.25 delta−0.33 / +0.25−1.12 / −0.49−1.31 / −0.69−1.66 / −1.07
SPY1 week, 0.10 delta−0.55 / +0.18−1.76 / −1.01−1.93 / −1.20−2.25 / −1.57

The positive-GEX filter came out ahead at every fill level. With the full spread, selling every day lost money in every case, so how you fill matters as much as when you sell.

All four fill levels come from the bid and ask in the option chain endpoint at the moment of each trade, so you can price your own fill assumption the same way.

17,100 strategies: where the gamma filter works

To check that the result is not a lucky pick, we ran every combination: 2 ETFs, 6 structures (short put, short call, short strangle, put and call credit spreads, iron condor), 6 deltas from 0.10 to 0.40, 4 expiries from 0DTE to 1 month, 6 exits (same day, next day, at expiry, or take profit once 25%, 50% or 75% of the credit is earned) and 15 GEX and VRP filters; 0DTE trades only close the same day. That is 17,100 strategies, each priced at midpoint fills with the bid/ask result alongside.

For each filter we asked one question: does it raise the average Sharpe ratio across all trade designs by more than the same calendar shifted to random dates? "p" is the share of random calendars that did as well.

  • Same-day trades: sell when gamma is strongly positive. Positive GEX with price above the certified gamma flip beat random calendars on both ETFs (p = 0.006 on QQQ, 0.005 on SPY), as did GEX in the top quarter of its 60-session range on SPY (p = 0.003). Plain positive GEX passed on QQQ (p = 0.002) but not on SPY (p = 0.21).
  • Positions held overnight or to expiry: low gamma readings helped a little. Opening when GEX sat in the bottom quarter of its range beat random calendars on QQQ (p = 0.012) and SPY (p = 0.029). One likely reason: premium is richest after sell-offs, and held positions collect it as markets recover. This result does not survive the adjustment below.
  • Negative GEX and high VRP did not help. As filters on their own, they did no better than random timing on either ETF, and same-day trades did worse.
  • Taking profit early cut the risk of held positions. Across the 180 held-to-expiry designs, buying back once half the credit had been earned cut the maximum drawdown in 179 of them (median 28% smaller), raised the win rate in all of them and raised the Sharpe ratio in 147. For SPY 0.10-delta 1-month short puts sold every day, the drawdown fell from $57,739 to $28,214, for $60,376 less total profit.

FlashAlpha endpoint: Volatility risk premium

LiveGET https://lab.flashalpha.com/v1/vrp/SPY

ReplayGET https://historical.flashalpha.com/v1/vrp/SPY?at=2026-10-22T15:55:00

The VRP filters read the previous close's 20-day volatility risk premium: implied minus realized volatility, in vol points. GEX rank filters compare the previous close's GEX with its own last 60 sessions from the GEX endpoint. Fields: vrp.vrp_20d, gex_conditioned.harvest_score.

We ran 84 of these tests (14 filters, 3 exit groups, 2 ETFs). The four same-day results above each have p below 0.01. Allowing for all 84 tests, the chance that they are false discoveries is about 12%, so treat them as strong leads rather than proof.

Pick an ETF, filter, structure and exit. Each cell is the Sharpe ratio at one delta and expiry; select a cell to chart it below.

QQQ, Positive GEX, short strangle, same-day exit: Sharpe ratio at midpoint fills.
Delta0DTE1 week2 weeks1 month
0.101.06507 trades1.02429 trades0.66155 trades−0.42490 trades
0.161.04502 trades1.02411 trades0.81153 trades−0.14495 trades
0.201.29497 trades0.93403 trades0.83152 trades−0.08493 trades
0.251.38477 trades1.14411 trades0.97152 trades0.02496 trades
0.301.50449 trades0.63415 trades0.97156 trades0.03499 trades
0.401.24401 trades0.98398 trades0.90155 trades0.13490 trades

All 17,100 option-selling strategies ranked by Sharpe

Every strategy with at least 60 trades, ranked by Sharpe ratio at midpoint fills. Open positions are valued every day at the 15:55 ET midpoint, so the Sharpe ratio and maximum drawdown include losses on trades that had not closed yet. Drawdown % is measured against the cash that fully funds the positions at their peak. "vs every day" is the Sharpe gain over selling the same trade every day. "Adjusted p" compares the strategy with the best of the 14 filters on random calendars for the same trade; below 0.05 would point to a real timing effect for that one strategy. Filter the list, sort any column, or chart a row.

Top 25 of 16,740 strategies with at least 60 trades, by Sharpe ratio at midpoint fills plus $1 per contract.
#StrategySharpe (mid)Sharpe (bid/ask)vs every dayAdjusted pTradesWin rateAvg P&LTotal P&LMax drawdown
1SPY · Every dayShort put, 0.10 delta, 1 month, held to expiry4.083.98n/an/a1,08697%+$147+$159,182−$57,7393.1%
2SPY · Every dayShort put, 0.10 delta, 1 month, take profit at 50%3.953.81n/an/a1,08699%+$91+$98,805−$28,2142.5%
3QQQ · Every dayShort put, 0.10 delta, 1 month, held to expiry3.873.73n/an/a1,06097%+$151+$159,998−$53,0783.1%
4SPY · Every dayShort put, 0.10 delta, 1 month, take profit at 25%3.723.49n/an/a1,08699%+$56+$61,053−$19,0432.3%
5SPY · GEX risingShort put, 0.10 delta, 1 month, held to expiry3.643.55−0.440.9653597%+$143+$76,286−$31,1763.0%
6SPY · Every dayShort put, 0.10 delta, 1 month, take profit at 75%3.573.47n/an/a1,08698%+$121+$131,624−$36,3302.6%
7QQQ · Price below gamma flipShort put, 0.10 delta, 1 month, held to expiry3.543.47−0.330.8638597%+$175+$67,418−$26,6382.5%
8QQQ · Every dayShort put, 0.10 delta, 1 month, take profit at 75%3.523.36n/an/a1,06098%+$123+$130,240−$35,1922.5%
9QQQ · Positive VRPShort put, 0.10 delta, 1 month, take profit at 75%3.523.42−0.000.5960999%+$134+$81,781−$33,0583.2%
10QQQ · Negative GEXShort put, 0.10 delta, 1 month, held to expiry3.503.41−0.370.8958497%+$158+$92,278−$42,7293.2%
11QQQ · Positive VRPShort put, 0.10 delta, 1 month, held to expiry3.483.39−0.400.9260998%+$161+$98,108−$32,9712.2%
12QQQ · Every dayShort put, 0.10 delta, 1 month, take profit at 50%3.403.22n/an/a1,06099%+$92+$97,451−$31,1702.9%
13QQQ · GEX risingShort put, 0.10 delta, 1 month, held to expiry3.363.22−0.510.9751296%+$144+$73,518−$33,9783.9%
14QQQ · Price below gamma flipShort put, 0.10 delta, 1 month, take profit at 75%3.363.29−0.150.7738598%+$143+$55,092−$13,2051.7%
15QQQ · Price below gamma flipShort put, 0.10 delta, 1 month, take profit at 25%3.363.23+0.060.57385100%+$73+$28,189−$9,7721.7%
16SPY · Price below gamma flipShort put, 0.10 delta, 1 month, take profit at 25%3.353.23−0.370.89516100%+$68+$35,020−$10,7981.6%
17SPY · Positive VRPShort put, 0.10 delta, 1 month, held to expiry3.333.27−0.751.0062498%+$157+$98,204−$29,9481.8%
18SPY · Positive VRPShort put, 0.10 delta, 1 month, take profit at 50%3.333.24−0.620.9962499%+$99+$61,833−$23,6562.3%
19QQQ · Every dayShort put, 0.10 delta, 1 month, take profit at 25%3.303.00n/an/a1,06099%+$57+$60,130−$24,8823.0%
20SPY · Positive VRPShort put, 0.10 delta, 1 month, take profit at 75%3.283.21−0.290.9562499%+$134+$83,620−$28,3342.2%
21SPY · Price below gamma flipShort put, 0.16 delta, 1 month, take profit at 50%3.263.18+0.470.2052398%+$154+$80,297−$20,6981.7%
22SPY · Price below gamma flipShort put, 0.16 delta, 1 month, take profit at 25%3.253.14+0.170.4652399%+$106+$55,642−$12,9731.6%
23SPY · Price below gamma flipShort put, 0.10 delta, 1 month, take profit at 50%3.233.16−0.711.0051699%+$106+$54,872−$16,0581.6%
24QQQ · Positive VRPShort put, 0.10 delta, 1 month, take profit at 50%3.223.09−0.170.8160999%+$98+$59,496−$31,1703.6%
25SPY · Negative GEXShort put, 0.10 delta, 1 month, held to expiry3.203.13−0.881.0066798%+$154+$102,604−$53,0123.4%

The top of the table is not a gamma trade. Selling a 0.10-delta, 1-month SPY put every day and holding it to expiry had the highest Sharpe ratio (+4.08), in a market that rose for most of the period, and 97% of its trades made money. It still shows why open positions matter: with up to 25 puts open at once, it fell $57,739 from its peak and lost $34,906 in a single day, although no closed trade lost more than $2,142. Every GEX and VRP filter lowered its Sharpe ratio.

What the account was worth, week by week

The solid line is total profit: closed trades plus every open position valued at that day's 15:55 ET midpoint from the option chain endpoint. The shaded band reaches each week's lowest day. For positions held overnight or to expiry, the dashed line shows profit on closed trades only, and the gap between the two is what open positions were worth. The grey line is the same trade sold every day.

Sharpe (mid)1.14
Sharpe (bid/ask)−0.30
Total P&L+$4,094
Trades411
Win rate69%
Max drawdown−$845

QQQ · Positive GEX: Short strangle, 0.25 delta, 1 week, same-day exit. Enable JavaScript to see the chart.

How we kept it honest

  • Written down first. The rules, fills, filters and pass criteria were fixed and committed before any SPY result was computed.
  • Tested out of sample. The idea came from QQQ. SPY was held back and tested once.
  • Priced from real quotes. Every trade was priced from archived bid and ask quotes at four fill levels, from the midpoint to the full spread, with a $1 commission per contract on every leg. The pre-registered tests used the stricter halfway fill. We chose to lead with midpoint fills after the results were in, so every headline figure is also shown at the other three fills.
  • Checked against luck. Each filter was compared with the same calendar shifted to random dates.
Pre-registered tests on SPY (the out-of-sample market), at the halfway fill fixed in advance. Pass requires all three criteria.
HypothesisSharpe higher in every caseDrawdown smaller in every caseSharpe gain (95% range)Result
1-week short strangles, positive GEXYesYes+0.68 (+0.10 to +1.65)Confirmed
0DTE short strangles, positive GEXYesYes+0.51 (−0.41 to +1.71)Not confirmed
Iron condors, positive GEXYesYes+0.92 (−0.27 to +3.41)Not confirmed
Positive GEX and positive VRPYesYes+0.56 (−0.06 to +1.54)Not confirmed

The 1-week strangle test passed every criterion on SPY. The 0DTE and iron condor tests improved in every case, but their gains were not large enough to rule out chance on SPY alone. Adding the variance risk premium to GEX did not help: days where implied volatility ran above recent realized volatility were, if anything, worse for same-day selling.

Use it live

The whole rule runs on four endpoints, one per step. The rule itself needs one call per day. FlashAlpha's GEX endpoint returns net_gex, gamma_flip and gamma_flip_status in the same response, computed from the same option chain, so the regime and the level always agree. The historical GEX endpoint replays the exact 15:55 ET reading this study used, certification included.

import requests

KEY = "YOUR_API_KEY"
LAB = "https://lab.flashalpha.com"
HIST = "https://historical.flashalpha.com"
H = {"X-Api-Key": KEY}

# 1. Regime and certified flip: yesterday's 15:55 ET reading (Historical API, Alpha plan)
gex = requests.get(f"{HIST}/v1/exposure/gex/SPY", params={"at": "2026-10-22T15:55:00"}, headers=H).json()

# 2. Spot at the open (stock quote)
spot = requests.get(f"{LAB}/stockquote/SPY", headers=H).json()["mid"]

# 3. Decide
certified = gex["gamma_flip_status"] == "available"
if gex["net_gex"] < 0:
    raise SystemExit("negative gamma: skip or cut size")
strongest = certified and spot > gex["gamma_flip"]

# 4. Pick a 0.25-delta put and call, 4 to 10 days out (option chain, Growth plan)
chain = requests.get(f"{LAB}/optionquote/SPY", headers=H).json()
def pick(kind, target=0.25):
    ok = [q for q in chain if q["type"] == kind and q["open_interest"] >= 250
          and q["ask"] > 0 and (q["ask"] - q["bid"]) / q["mid"] <= 0.20]
    return min(ok, key=lambda q: abs(abs(q["delta"]) - target))
put, call = pick("P"), pick("C")
print("strongest regime" if strongest else "positive GEX", put["strike"], call["strike"])

# 5. Close at 15:55 ET: read the same contracts from the option chain again

Full-chain GEX for SPY and QQQ is on the Growth plan. To reproduce this backtest, or run your own version of the 17,100-strategy screen, the Historical API on the Alpha plan replays GEX, the certified flip and the full option chain at any past minute.

How the backtest works

Every step of the backtest, the FlashAlpha endpoint and fields it read, and a Python script that rebuilds any of the 17,100 strategies from the Historical API.

Alpha members

This section is for Alpha members

Alpha members get every step of the backtest with the endpoint and fields it used, and a Python script that rebuilds any strategy in this study from the Historical API.

How much to trust it

  • Short strangles have unlimited risk. The filter reduced the worst days; it did not remove them.
  • One period of under five years and two ETFs. The SPY loss-concentration check was added after the pre-registered results were seen; it was run once, without tuning.
  • Iron condors, which cap risk, pay four spreads instead of two. Even at midpoint fills, they lost money in three of four cases with the filter.
  • Midpoint fills are a best case and are harder to get in fast markets. The fill table shows what worse fills do.
  • Short puts and strangles held for weeks can show large losses while open even when most of them expire worthless. Check the drawdown and worst day, not only the win rate.
  • The 17,100-strategy screen was run after the main results. Filters that use the gamma flip only include days with a certified flip (80% of SPY and 68% of QQQ sessions, fewer for QQQ in 2022), so part of their result can come from which days are left out.

Cite this research

FlashAlpha Research. "When Not to Sell Options: Negative-Gamma Days Hold Most of the Losses." 23 October 2026. https://flashalpha.com/articles/when-not-to-sell-options-negative-gamma-spy-qqq-short-premium-backtest

Frequently asked questions

Should you sell options on negative gamma days?

The evidence says skip or cut size. Selling same-day SPY and QQQ strangles from 2022 to 2026, negative-GEX days were 60% to 63% of SPY trades but held 72% to 74% of the dollar losses and 71% to 78% of the worst 5% of trades. On QQQ the figures were 54% to 60%, 68% to 76% and 66% to 81%.

Does gamma exposure predict volatility?

It predicts how much the market is likely to move, not which way. Dealers who are long gamma hedge against the move and dampen it; dealers who are short gamma hedge with the move and can amplify it. In this test, losses for option sellers clustered on negative-gamma days.

Is selling 0DTE strangles profitable?

Selling a 0.25-delta QQQ 0DTE strangle at 09:35 every day, filled at the midpoint, had a Sharpe ratio of +0.35. Selling only on positive-GEX days raised it to +1.38. On SPY the filter raised it from +0.26 to +0.54. Fills matter: with full bid/ask fills, selling QQQ every day lost money, while the positive-GEX days still made money (Sharpe +0.72).

How do I check the gamma regime before selling?

Read net GEX and the gamma flip for the symbol. FlashAlpha's GEX endpoint returns net_gex, net_gex_label, gamma_flip and gamma_flip_status in one response. Use the flip only when gamma_flip_status is available, which means it is certified. This study used the previous session's 15:55 ET reading, so the decision is made before the open.

What is a certified gamma flip?

A gamma flip that FlashAlpha has checked for open-interest coverage, quote quality and single-strike stress before publishing it as available. If a check fails, the level is still returned with gamma_flip_status naming the failed check, and a regime rule should not use it. In this backtest, selling same-day premium only when net GEX was positive and price was above a certified flip beat random timing on both SPY and QQQ.

Which option-selling strategy had the best Sharpe ratio?

Of the 17,100 SPY and QQQ strategies tested, selling a 0.10-delta, 1-month SPY put every day and holding it to expiry had the highest Sharpe ratio, +4.08 at midpoint fills with open positions valued daily, from 2022 to 2026. It also fell $57,739 from its peak while positions were open. GEX filters lowered its Sharpe ratio. GEX helped most for same-day trades: selling when gamma was strongly positive beat random timing on both ETFs.

Can I reproduce this backtest?

Yes. The Historical API on the Alpha plan replays GEX and the option chains at any past minute, which is everything this test used.

For option sellers on SPY and QQQ from 2022 to 2026, most of the losses and most of the worst days came when dealers were short gamma. Checking GEX before selling, and standing aside when it is negative, removed most of the drawdown on both ETFs and made every strangle setup we tested profitable at midpoint fills. Adding the certified gamma flip gave the strongest same-day rule of the 9,000 strategies we tested.

Live Market Pulse

Get fast visibility into market shifts with full-chain analytics over low-latency REST and MCP polling.

Intelligent Screening

Screen millions of option pairs per second using your custom EV rules, filters, and setups.

Export-Ready

Export structured signals to your own execution stack or broker integration - FlashAlpha delivers the analytics, you keep control of order routing.

Join the Community

Discord

Engage in real time conversations with us!

Twitter / X

Follow us for real-time updates and insights!

GitHub

Explore our open-source SDK, examples, and analytics resources!