O que é o nível de gamma flip?
Entenda o preço em que a gamma estimada dos dealers cruza zero, como o nível é calculado com strike gamma e open interest e como verificá-lo.
O nível de gamma flip é o preço do ativo subjacente no qual a gamma agregada estimada dos dealers cruza zero. Acima desse preço, o livro de opções existente implica fluxos de hedge que atuam contra o movimento. Abaixo dele, os fluxos atuam a favor do movimento. O nível é um resultado de modelo montado com dados públicos de opções e uma grande premissa sobre quem detém cada posição. Por isso, o mais importante é entender como ele é construído.
Do que é composto um nível de gamma flip
Gamma é a taxa de variação do delta de uma opção conforme o ativo subjacente se movimenta, tema de o que é a gamma de uma opção. Uma mesa que administra uma carteira com hedge compra e vende o ativo subjacente à medida que o delta varia. Esse mecanismo é explicado em como funciona o delta hedging. A gamma determina quanto esse hedge precisa mudar a cada ponto de movimento. Ao somar a gamma de todos os contratos de uma cadeia de opções, aplicando um sinal e um peso a cada contrato, obtém-se a exposição à gamma, geralmente escrita como GEX. O flip é uma leitura específica desse total: o preço do ativo subjacente em que o total passa por zero.
Quatro elementos entram no cálculo:
- A gamma por contrato em cada strike e vencimento, obtida por um cálculo de Black-Scholes.
- Uma convenção de sinais. O cálculo usual presume que os dealers estão vendidos em calls e comprados em puts. Assim, a gamma das calls entra na soma com sinal negativo e a gamma das puts entra com sinal positivo.
- Um peso por contrato. Os níveis publicados usam o open interest.
- Uma etapa de escala: o multiplicador de 100 ações por contrato e, depois, o quadrado do preço à vista multiplicado por 0,01. Isso expressa o total em dólares de delta por movimento de 1%.
A convenção de sinais merece uma segunda análise. Suponha o inverso: dealers comprados em calls e vendidos em puts. Nesse caso, todos os números agregados mudam de sinal. O ponto de cruzamento em zero não muda. O que muda é qual lado do nível passa a ser chamado de positivo.
Primeira etapa: a gamma por contrato ao longo da escada de strikes
A gamma por contrato não é uniforme em uma cadeia de opções. Ela atinge o pico perto do preço no dinheiro e diminui nas duas direções. O painel abaixo está fixado em uma única sessão passada, a última sessão de junho de 2026 disponível nestes dados, e calcula a média da gamma por contrato entre os vencimentos de 20 a 45 dias para cada strike situado até 6% do fechamento.
| strike | gamma de calls | gamma de puts |
|---|---|---|
| 705 | 0.00523 | 0.00512 |
| 710 | 0.00575 | 0.00589 |
| 715 | 0.00653 | 0.00678 |
| 720 | 0.00766 | 0.00776 |
| 725 | 0.00844 | 0.00888 |
| 730 | 0.00946 | 0.01002 |
| 735 | 0.0107 | 0.01137 |
| 740 | 0.01198 | 0.01239 |
| 745 | 0.01268 | 0.01344 |
| 750 | 0.01377 | 0.0142 |
| 755 | 0.01379 | 0.01446 |
| 760 | 0.01364 | 0.01404 |
| 765 | 0.01253 | 0.01204 |
| 770 | 0.01118 | 0.0112 |
| 775 | 0.00929 | 0.00957 |
| 780 | 0.00745 | 0.00814 |
O SQL exato por trás de cada número
SELECT
toString(toInt32(strike_price)) AS strike,
round(avgIf(toFloat64(gamma), lower(substring(option_type, 1, 1)) = 'c'), 5) AS call_gamma,
round(avgIf(toFloat64(gamma), lower(substring(option_type, 1, 1)) = 'p'), 5) AS put_gamma
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = (
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date <= '2026-06-30'
)
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 20 AND 45
AND modulo(toInt32(strike_price), 5) = 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.06
GROUP BY strike_price
HAVING countIf(lower(substring(option_type, 1, 1)) = 'c') > 0
AND countIf(lower(substring(option_type, 1, 1)) = 'p') > 0
ORDER BY strike_priceNo strike inferior dessa janela, a gamma média das calls é 0.00523; no strike superior, é 0.00745. O pico fica entre eles, ao longo de 16 strikes. No modelo, a gamma de calls e puts no mesmo strike e vencimento é igual. Por isso, as duas séries do painel ficam sobrepostas. É a convenção de sinais, e não a gamma, que separa os dois lados.
Segunda etapa: sinais, pesos e o ponto em que a curva muda de direção
A exposição de um único contrato é pequena. Considere um strike com 100 contratos e gamma de 0,02, enquanto o ativo subjacente está a US$ 600. Multiplique 0,02 por 100 contratos, pelo multiplicador de 100 ações, pelo quadrado de 600 e por 0,01. O resultado é aproximadamente US$ 720.000 de delta por movimento de 1%. Essa é a unidade do painel seguinte, expressa em milhões.
O painel percorre a escada de strikes da mesma sessão fixada, considerando todos os vencimentos de até 45 dias. A contribuição de cada strike recebe o sinal definido acima e é ponderada pelo volume de contratos negociados naquela sessão. A coluna acumulada soma as contribuições desde o strike mais baixo.
| strike | gamma por strike (US$ mi) | gamma acumulado (US$ mi) |
|---|---|---|
| 705 | 42.4 | 42.4 |
| 710 | 130.8 | 173.2 |
| 715 | 41 | 214.2 |
| 720 | 99.8 | 314 |
| 725 | 200.1 | 514.1 |
| 730 | 253.4 | 767.5 |
| 735 | 442.2 | 1209.7 |
| 740 | 1162.1 | 2371.8 |
| 745 | 1536.8 | 3908.6 |
| 750 | -4878.8 | -970.2 |
| 755 | -881.6 | -1851.8 |
| 760 | -395.7 | -2247.5 |
| 765 | -115.3 | -2362.8 |
| 770 | -43.8 | -2406.6 |
| 775 | -26.8 | -2433.4 |
| 780 | -14 | -2447.4 |
| 785 | -5.6 | -2453 |
| 790 | -2.5 | -2455.5 |
O SQL exato por trás de cada número
SELECT
strike,
strike_gamma_musd,
round(sum(strike_gamma_musd) OVER (ORDER BY strike_num), 1) AS running_gamma_musd
FROM
(
SELECT
toInt32(strike_price) AS strike_num,
toString(toInt32(strike_price)) AS strike,
round(sum(multiIf(lower(substring(option_type, 1, 1)) = 'c', -1.0, 1.0)
* toFloat64(gamma) * volume * 100
* pow(toFloat64(underlying_close), 2) * 0.01) / 1e6, 1) AS strike_gamma_musd
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = (
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date <= '2026-06-30'
)
AND iv_converged = 1
AND volume > 0
AND days_to_expiry <= 45
AND modulo(toInt32(strike_price), 5) = 0
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.06
GROUP BY strike_price
)
ORDER BY strike_numO strike inferior da janela contribui com 42.4 milhões de dólares de delta por movimento de 1%, enquanto o strike superior contribui com -2.5 milhões. Em toda a faixa de 12%, a escada totaliza -2455.5 milhões. Leia a linha acumulada da esquerda para a direita: ela sobe enquanto predominam strikes ponderados pelas puts e muda de direção quando os strikes ponderados pelas calls passam a determinar o saldo. O preço em que isso ocorre é a estimativa do flip. Cada etapa é um cálculo que o leitor pode refazer manualmente. Esse é o objetivo.
O que o nível não representa
Nada nessa construção observa um dealer. O open interest mostra que existe um contrato. Não mostra qual lado dele está na carteira de um market maker. O projeto por trás do painel GEX de código aberto declara essa limitação no próprio README. O documento descreve o resultado como uma aproximação de Black-Scholes calculada com base no open interest e
não como uma medida das posições efetivas dos market makers
(README do projeto, em setembro de 2026)
A cobertura é a segunda lacuna. A fonte de dados gratuita por trás desse painel não oferece um endpoint de cadeia de opções para os símbolos de índices à vista SPX, XSP, NDX, RUT, DJX e VIX. São justamente os símbolos para os quais os praticantes mais costumam citar níveis de flip. Um nível publicado para qualquer um deles foi calculado em outro lugar, com uma cadeia paga ou com um ETF proxy. As opções de SPX e SPY acompanham o mesmo índice, com uma relação nocional aproximada de dez para um. Um nível calculado para um deles precisa ser reescalado antes de representar o outro.
A própria curva é a terceira questão. Um cálculo adequado do flip reavalia a gamma de cada contrato em cada preço potencial do ativo subjacente e encontra o zero da função resultante. A aproximação pela escada acima não faz nenhuma reavaliação. Ela lê o saldo do livro como estava em um determinado fechamento. Os painéis desta página também usam o volume negociado como peso, e não o open interest, porque o volume é o peso por contrato disponível nestes dados diários de gregas. O formato é o mesmo, mas o peso é diferente.
Por que dois provedores publicam níveis diferentes para o mesmo índice
Cada elemento acima é uma escolha, e os provedores fazem escolhas diferentes. A janela de vencimentos é a mais evidente. O painel abaixo recalcula a mesma estimativa na mesma sessão usando quatro faixas do calendário de vencimentos.
| faixa de DTE | fechamento do spot | estimativa de flip |
|---|---|---|
| 0 to 1 days | 746.3 | 745 |
| 2 to 7 days | 746.3 | 744 |
| 8 to 30 days | 746.3 | 746 |
| 31 to 90 days | 746.3 | 745 |
O SQL exato por trás de cada número
SELECT
dte_bucket,
round(any(spot), 2) AS spot_close,
round(argMax(strike, running), 2) AS flip_estimate
FROM
(
SELECT
dte_bucket,
bucket_order,
spot,
strike,
sum(net_gamma) OVER (PARTITION BY dte_bucket ORDER BY strike) AS running
FROM
(
SELECT
multiIf(days_to_expiry <= 1, '0 to 1 days',
days_to_expiry <= 7, '2 to 7 days',
days_to_expiry <= 30, '8 to 30 days',
'31 to 90 days') AS dte_bucket,
multiIf(days_to_expiry <= 1, 1,
days_to_expiry <= 7, 2,
days_to_expiry <= 30, 3, 4) AS bucket_order,
toFloat64(strike_price) AS strike,
any(toFloat64(underlying_close)) AS spot,
sum(multiIf(lower(substring(option_type, 1, 1)) = 'c', -1.0, 1.0)
* toFloat64(gamma) * volume * 100) AS net_gamma
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = (
SELECT max(date)
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date <= '2026-06-30'
)
AND iv_converged = 1
AND volume > 0
AND days_to_expiry <= 90
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.15
GROUP BY dte_bucket, bucket_order, strike
)
)
GROUP BY dte_bucket, bucket_order
ORDER BY bucket_orderA faixa de 0 a 1 dia coloca a estimativa em 745, contra um fechamento de 746.3. A faixa de 31 a 90 dias coloca a estimativa em 745. Um livro, uma sessão, uma fórmula e quatro respostas. Um painel que soma todos os vencimentos listados e outro que para no primeiro vencimento não estão descrevendo a mesma grandeza. Nenhum dos dois está necessariamente errado.
Os demais parâmetros funcionam da mesma forma:
- O peso: open interest no ajuste anterior, open interest atualizado durante o pregão ou volume negociado.
- A faixa de strikes: até que distância fora do dinheiro a soma é calculada antes de ser truncada.
- A convenção de sinais, que renomeia os lados sem mover o ponto de cruzamento.
- O horário da fotografia do livro.
- Se o nível vem diretamente de opções do índice ou de um ETF proxy reescalado.
Por que o nível muda durante a sessão
O open interest dos contratos que vencem no mesmo dia é criado e encerrado durante a própria sessão. A faixa de 0 a 1 dia é a parte do livro que se move mais rapidamente. Ela agora representa uma parcela relevante do volume de opções de índices, tema abordado em opções 0DTE e seus riscos. Um nível calculado às 9h45 ET e o mesmo nível calculado às 14h ET se baseiam em open interest diferentes nos strikes mais próximos do preço à vista, onde a gamma por contrato é maior. Provedores que atualizam os dados durante o pregão publicam um nível que se desloca ao longo do dia. Provedores que fazem uma única fotografia no fechamento anterior publicam um nível estático.
A estimativa muda de um dia para o outro?
Ao longo das 21 sessões de junho de 2026, a mesma estimativa pela escada acompanha o fechamento a uma distância que muda diariamente.
| data | rótulo da sessão | fechamento do spot | estimativa de flip |
|---|---|---|---|
| 2026-06-01 | Jun 1 | 756.58 | 757 |
| 2026-06-02 | Jun 2 | 759.63 | 759 |
| 2026-06-03 | Jun 3 | 750.55 | 753 |
| 2026-06-04 | Jun 4 | 754.56 | 756 |
| 2026-06-05 | Jun 5 | 735.36 | 742.5 |
| 2026-06-08 | Jun 8 | 738.72 | 742.5 |
| 2026-06-09 | Jun 9 | 735.7 | 735 |
| 2026-06-10 | Jun 10 | 722.88 | 729 |
| 2026-06-11 | Jun 11 | 739.48 | 730 |
| 2026-06-12 | Jun 12 | 742.45 | 740 |
| 2026-06-15 | Jun 15 | 753.91 | 754 |
| 2026-06-16 | Jun 16 | 750.75 | 751 |
| 2026-06-17 | Jun 17 | 745.6 | 744 |
| 2026-06-18 | Jun 18 | 746.94 | 746 |
| 2026-06-22 | Jun 22 | 743.67 | 745 |
| 2026-06-23 | Jun 23 | 735.02 | 734 |
| 2026-06-24 | Jun 24 | 737.2 | 732 |
| 2026-06-25 | Jun 25 | 732.7 | 735 |
| 2026-06-26 | Jun 26 | 731.2 | 733 |
| 2026-06-29 | Jun 29 | 740.76 | 739 |
O SQL exato por trás de cada número
SELECT
toString(d) AS date,
formatDateTime(d, '%b %e') AS session_label,
round(any(spot), 2) AS spot_close,
round(argMax(strike, running), 2) AS flip_estimate
FROM
(
SELECT
d,
spot,
strike,
sum(net_gamma) OVER (PARTITION BY d ORDER BY strike) AS running
FROM
(
SELECT
date AS d,
toFloat64(strike_price) AS strike,
any(toFloat64(underlying_close)) AS spot,
sum(multiIf(lower(substring(option_type, 1, 1)) = 'c', -1.0, 1.0)
* toFloat64(gamma) * volume * 100) AS net_gamma
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date BETWEEN '2026-06-01' AND '2026-06-30'
AND iv_converged = 1
AND volume > 0
AND days_to_expiry <= 45
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.15
GROUP BY d, strike
)
)
GROUP BY d
ORDER BY dEm Jun 1, a estimativa ficou em 757, contra um fechamento de 756.58. Em Jun 30, ficou em 746, contra 746.3. As duas séries caminham juntas, como seria esperado de uma estatística ancorada nos pontos em que o volume se concentra. A distância entre elas é o que realmente importa analisar.
Como verificar a razoabilidade de um nível de flip publicado
- Pergunte quais vencimentos estão incluídos e até que distância fora do dinheiro a soma é calculada antes do truncamento.
- Pergunte qual peso é utilizado e em que horário esse peso foi capturado.
- Pergunte se o cálculo foi feito sobre o próprio índice ou sobre um ETF proxy e depois reescalado.
- Refaça a escada na mesma sessão e verifique se o ponto de mudança de direção fica na mesma região. Dois cálculos consistentes que chegam a uma diferença de 30 pontos estão informando algo sobre o método, não sobre o mercado.
- Observe a precisão. As escadas de strikes dos índices têm intervalos de 5 pontos ou mais, e as gregas são diárias. Portanto, um nível cotado até a casa dos centavos tem uma precisão maior do que a dos dados que o sustentam.
Perguntas frequentes
O que é o nível de gamma flip em opções?
É o preço do ativo subjacente no qual uma estimativa da gamma total dos dealers cruza zero. A estimativa é construída atribuindo um sinal à gamma de cada contrato, ponderando-a pelo open interest, aplicando o multiplicador do contrato e somando toda a cadeia. Ela vem de dados públicos de opções, e não de uma observação do inventário dos dealers.
O gamma flip é a mesma coisa que GEX?
Não. GEX é o próprio número agregado de gamma, geralmente expresso em dólares de delta por movimento de 1%. O flip é o único preço do ativo subjacente em que esse agregado passa por zero. GEX é a curva; o flip é um ponto dela.
Por que dois painéis mostram níveis diferentes de gamma flip para o mesmo índice?
Eles usam parâmetros diferentes: a janela de vencimentos, a faixa de strikes, o peso e o horário da sua captura, a convenção de sinais e a origem do nível — opções do índice ou um ETF proxy reescalado. O painel de vencimentos acima produz quatro estimativas diferentes para uma única sessão ao variar apenas um parâmetro.
O nível de gamma flip muda durante o pregão?
Para qualquer cálculo que seja atualizado durante o pregão, sim. O open interest dos vencimentos do mesmo dia é criado e encerrado durante a sessão, e os strikes mais próximos do preço à vista carregam o maior peso de gamma. Um nível capturado uma vez no fechamento anterior permanece inalterado até a próxima atualização.
Cada painel desta página traz exatamente o SQL correspondente logo abaixo. Refaça a escada para outro símbolo ou outra sessão no terminal Strasmore e observe onde ocorre a mudança de direção.