¿Qué es el nivel de gamma flip?
Conoce el precio donde la gamma estimada de los dealers cruza cero, cómo se calcula con gamma por strike y open interest, y cómo verificarlo.
El nivel de gamma flip es el precio del subyacente en el que la gamma agregada estimada de los dealers cruza cero. Por encima de ese precio, el libro de opciones vigente implica flujos de cobertura que operan en contra del movimiento. Por debajo, implica flujos que lo amplifican. El nivel es un resultado de modelo elaborado con datos públicos de opciones y un supuesto importante sobre quién mantiene cada posición. Por eso, lo útil es entender cómo se construye.
De qué se compone un nivel de gamma flip
La gamma es la tasa a la que cambia la delta de una opción cuando se mueve el subyacente. Este concepto se explica en qué es la gamma de una opción. Un desk que gestiona un libro cubierto compra y vende el subyacente a medida que cambia su delta. El mecanismo se aborda en cómo funciona la cobertura de delta. La gamma determina cuánto debe cambiar esa cobertura por cada punto de movimiento. Si se suma la gamma de todos los contratos de una cadena de opciones, asignando un signo y un peso a cada uno, se obtiene la exposición a gamma, normalmente expresada como GEX. El flip es una lectura específica de ese total: el precio del subyacente en el que pasa por cero.
Intervienen cuatro elementos:
- La gamma por contrato en cada strike y vencimiento, calculada mediante Black-Scholes.
- Una convención de signos. La construcción habitual supone que los dealers están short calls y long puts. Por eso, la gamma de las calls entra con signo negativo y la de las puts, con signo positivo.
- Un peso por contrato. Los niveles publicados utilizan el open interest.
- Un ajuste de escala: el multiplicador de 100 acciones por contrato y después el precio spot al cuadrado multiplicado por 0.01. Esto expresa el total en dólares de delta por cada movimiento de 1%.
La convención de signos merece una segunda revisión. Si se supone lo contrario —dealers long calls y short puts—, cambia el signo de todos los valores agregados. El cruce por cero no se mueve. Lo que cambia es qué lado del nivel se considera positivo.
Paso uno: gamma por contrato a lo largo de la escalera de strikes
La gamma por contrato no es uniforme en toda la cadena. Alcanza su máximo cerca del precio at-the-money y disminuye en ambas direcciones. El panel siguiente corresponde a una sesión pasada fija: la última sesión de junio de 2026 incluida en estos datos. Muestra la gamma promedio por contrato para los vencimientos de 20 a 45 días, en cada strike situado dentro de 6% del cierre.
| precio de ejercicio | 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 |
El SQL exacto detrás de cada cifra
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_priceEn el strike inferior de esa ventana, la gamma promedio de las calls es 0.00523, y en el strike superior es 0.00745. El máximo se ubica entre ambos, a lo largo de 16 strikes. En el modelo, la gamma de una call y de una put con el mismo strike y vencimiento es idéntica. Por eso, las dos series del panel se superponen. Lo que separa ambos lados es la convención de signos, no la gamma.
Paso dos: signos, pesos y punto de giro de la curva
La exposición de un solo contrato es pequeña. Supongamos un strike con 100 contratos y una gamma de 0.02, mientras el subyacente cotiza en $600. Al multiplicar 0.02 por 100 contratos, por el multiplicador de 100 acciones, por 600 al cuadrado y por 0.01, se obtienen aproximadamente $720,000 de delta por cada movimiento de 1%. Esa es la unidad del panel siguiente, expresada en millones.
El panel recorre la escalera de strikes de la misma sesión fija para todos los vencimientos de hasta 45 días. La contribución de cada strike lleva el signo de la convención anterior, se pondera por el volumen negociado de contratos de esa sesión y la columna acumulada suma desde el strike más bajo hacia arriba.
| precio de ejercicio | gamma por ejercicio (M USD) | gamma acumulado (M USD) |
|---|---|---|
| 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 |
El SQL exacto detrás de cada cifra
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_numEl strike inferior de la ventana aporta 42.4 millones de dólares de delta por cada movimiento de 1%, y el strike superior aporta -2.5 millones. En toda la banda de 12%, la escalera suma -2455.5 millones. La línea acumulada se lee de izquierda a derecha: sube mientras dominan los strikes ponderados por puts y gira cuando los strikes ponderados por calls pasan a controlar el balance. El precio en el que gira es la estimación del flip. Todo el proceso es un registro de cálculos que el lector puede repetir manualmente. Ese es el objetivo.
Lo que el nivel no representa
Ningún elemento de esa construcción observa directamente a un dealer. El open interest indica que existe un contrato. No indica qué lado mantiene un market maker. El proyecto detrás de el dashboard de GEX de código abierto señala esta limitación en su propio README. Describe el resultado como una aproximación de Black-Scholes calculada a partir del open interest y
no como una medida de las posiciones reales de los market makers
(README del proyecto, a septiembre de 2026)
La cobertura es la segunda limitación. La fuente gratuita de datos que utiliza ese dashboard no ofrece un endpoint de cadenas de opciones para los símbolos de índices cash SPX, XSP, NDX, RUT, DJX y VIX. Son precisamente los símbolos sobre los que los operadores suelen citar niveles de flip. Un nivel publicado para uno de ellos se calculó en otra fuente, con una cadena de opciones de pago o con un proxy ETF. Las opciones de SPX y SPY siguen el mismo índice con una relación nocional aproximada de ten-to-one. Por eso, un nivel construido sobre uno debe reescalarse antes de utilizarlo para describir el otro.
La curva es la tercera limitación. Un flip correcto vuelve a valorar la gamma de cada contrato en cada precio candidato del subyacente y encuentra el cero de la función resultante. El proxy de escalera anterior no vuelve a valorar nada: lee el balance del libro tal como estaba al cierre de una sesión. Además, los paneles de esta página ponderan por volumen negociado y no por open interest, porque el volumen es el peso por contrato que contiene este conjunto diario de datos de griegas. La forma es la misma, pero el peso es diferente.
Por qué dos proveedores publican niveles diferentes para el mismo índice
Cada elemento anterior implica una decisión, y los proveedores las toman de manera distinta. La ventana de vencimientos es la decisión más relevante. El panel siguiente vuelve a calcular la misma estimación, en la misma sesión, usando cuatro segmentos del calendario de vencimientos.
| rango de DTE | cierre del spot | estimación 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 |
El SQL exacto detrás de cada cifra
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_orderEl segmento de 0 a 1 día sitúa la estimación en 745, frente a un cierre de 746.3. El segmento de 31 a 90 días la sitúa en 745. Un libro, una sesión, una fórmula y cuatro respuestas. Un dashboard que suma todos los vencimientos listados y otro que se detiene en el front month no describen la misma magnitud. Ninguno está necesariamente equivocado.
Los demás parámetros funcionan de la misma manera:
- El peso: open interest al cierre previo, open interest actualizado intradía o volumen negociado.
- La banda de strikes: hasta qué distancia fuera del dinero llega la suma antes de truncarse.
- La convención de signos, que cambia la etiqueta de los lados sin mover el cruce.
- La hora de la observación.
- Si el nivel proviene directamente de opciones sobre el índice o de un proxy ETF reescalado.
Por qué el nivel se mueve durante la sesión
El open interest de los contratos que vencen ese mismo día se crea y se cancela dentro de la sesión. El segmento de 0 a 1 día es la parte del libro que se mueve con mayor rapidez y ahora concentra una proporción importante del volumen de opciones sobre índices. Este tema se aborda en las opciones 0DTE y sus riesgos. Un nivel calculado a las 9:45 a. m. ET y el mismo nivel calculado a las 2:00 p. m. ET se basan en un open interest diferente en los strikes más cercanos al spot, donde la gamma por contrato es mayor. Los proveedores que actualizan intradía publican un nivel que cambia durante el día. Los que toman una única observación al cierre previo publican un nivel estático.
¿La estimación cambia de un día a otro?
Durante las 21 sesiones de junio de 2026, la misma estimación de escalera sigue al cierre con una distancia que cambia diariamente.
| fecha | etiqueta de sesión | cierre del spot | estimación 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 |
El SQL exacto detrás de cada cifra
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 dEl Jun 1, la estimación terminó en 757 frente a un cierre de 756.58. El Jun 30, terminó en 746 frente a 746.3. Las dos series se mueven juntas, como cabe esperar de un estadístico anclado en las zonas donde se concentra el volumen. La diferencia entre ambas es lo que realmente se está analizando.
Cómo comprobar la razonabilidad de un nivel de gamma flip publicado
- Pregunte qué vencimientos incluye y hasta qué distancia fuera del dinero llega la suma antes de truncarse.
- Pregunte qué peso utiliza y a qué hora se tomó esa observación.
- Pregunte si se calculó sobre el propio índice o sobre un proxy ETF y después se reescaló.
- Reconstruya la escalera para la misma sesión y compruebe si el giro aparece en una zona similar. Dos construcciones coherentes que quedan separadas por 30 puntos hablan del método, no del mercado.
- Revise la precisión. Las escaleras de strikes de los índices suelen estar espaciadas cada 5 puntos o más, y las griegas son diarias. Por eso, un nivel cotizado con precisión de centavos es más exacto que cualquier dato que lo sustenta.
Preguntas frecuentes
¿Qué es el nivel de gamma flip en opciones?
Es el precio del subyacente en el que una estimación de la gamma total de los dealers cruza cero. La estimación se construye asignando un signo a la gamma de cada contrato, ponderándola por el open interest, ajustándola por el multiplicador del contrato y sumando la cadena. Proviene de datos públicos de opciones, no de una observación del inventario de los dealers.
¿El gamma flip es lo mismo que GEX?
No. GEX es la cifra de gamma agregada, normalmente expresada en dólares de delta por cada movimiento de 1%. El flip es el precio único del subyacente en el que ese agregado pasa por cero. GEX es la curva; el flip es un punto de esa curva.
¿Por qué dos dashboards muestran niveles de gamma flip diferentes para el mismo índice?
Porque utilizan parámetros distintos: la ventana de vencimientos, la banda de strikes, el peso y la hora de su observación, la convención de signos y si el nivel proviene de opciones sobre el índice o de un proxy ETF reescalado. El panel de vencimientos anterior produce cuatro estimaciones distintas a partir de una misma sesión al variar un solo parámetro.
¿El nivel de gamma flip cambia durante la jornada de trading?
Sí, en cualquier construcción que se actualice intradía. El open interest de los vencimientos del mismo día se crea y se cancela dentro de la sesión, y los strikes más cercanos al spot tienen el mayor peso de gamma. Un nivel tomado una sola vez al cierre previo permanece sin cambios hasta la siguiente observación.
Cada panel de esta página incluye el SQL exacto debajo. Reconstruya la escalera con otro símbolo o en otra sesión en la terminal de Strasmore y observe dónde aparece el giro.