Açık kaynaklı GEX paneli nasıl çalışır
Açık kaynaklı GEX panellerinde gamma exposure verisinin hesaplanma mantığı, kullanım fiyatı bazlı formül yapısı, piyasa yapıcı varsayımları ve çıktıların sınırlamaları incelenmektedir.
Gamma exposure (GEX) verisinin hesaplanması
Açık kaynaklı bir GEX paneli, tek bir opsiyon zinciri anlık görüntüsünü gamma exposure profiline dönüştürür: dayanak varlıktaki yüzde birlik bir değişim için opsiyon riskten korunma (hedging) talebinin ne kadar değişeceğini tahmin eden, her kullanım fiyatındaki (strike) dolar tutarı. Bu aritmetik, tek satırlık bir koddan ibarettir. Bunun temelinde yatan ve piyasa yapıcıların (dealer) her call opsiyonunu uzun (long), her put opsiyonunu ise kısa (short) pozisyonda tuttuğu varsayımı, zincirin hiçbir yerinde ölçülmez; verinin yanlış yorumlanmasının büyük bir kısmı bu boşluktan kaynaklanır. Eğer gamma exposure'un neyi ölçtüğü konusunu okuduysanız, bir sonraki soru bu rakamın nasıl üretildiğidir.
Gamma exposure nasıl hesaplanır?
Tek bir sözleşme ile başlayın. Gamma, dayanak varlıktaki bir dolarlık değişim karşısında opsiyonun delta değerinin değişim hızıdır ve hisse başına ifade edilir. Standart bir ABD hisse senedi opsiyonu yüz adet hisseyi kapsar; dolayısıyla sözleşmenin hisse bazındaki gamma değeri, belirtilen gamma ile bu çarpanın çarpımına eşittir.
Bir gösterge paneli, bu değeri dolar bazına ve yüzde değişim bazına ölçeklendirir. Kullanım fiyatı (strike) başına düşen rakam beş bileşenden oluşur:
gamma: sözleşme için hisse başına gamma; opsiyon zinciri anlık görüntüsünden okunur veya zımni volatilite üzerinden yerel olarak hesaplanıropen_interest: ilgili kullanım fiyatı ve vadede açık olan sözleşme sayısı100: sözleşme çarpanıspot * spot: delta değişimini, mevcut dayanak varlık fiyatı üzerinden dolar bazlı nominal değişime dönüştürür0.01: sonucu bir dolarlık değişimden yüzde birlik değişime yeniden ölçeklendirir
Kullanım fiyatı başına düşen rakam gex = gamma * open_interest * 100 * spot * spot * 0.01 değeridir. Bu değeri zincir üzerindeki her bir kullanım fiyatı için toplayın; call opsiyonlarını pozitif, put opsiyonlarını ise negatif olarak işleme dahil edin. Elde edilen toplam, ana gösterge rakamıdır. Gösterge panelinin çizdiği diğer tüm veriler; kullanım fiyatı bazlı çubuklar, kümülatif profil, yön değişim seviyesi (flip level) ve vadeye göre kırılım, bu tek toplamın yeniden düzenlenmiş halidir.
Kullanım fiyatı bazlı GEX profili nasıl görünür?
Aşağıdaki panel, SPY için dayanak varlığın kapanış fiyatının yüzde bir buçuk içindeki her bir kullanım fiyatında ve otuz gün içinde vadesi dolacak sözleşmelerde profili oluşturur.
Her verinin arkasındaki tam SQL
SELECT
concat('$', toString(round(k))) AS strike,
round(sumIf(gex, side = 'call') / 1e6, 1) AS call_gex_musd,
round(-sumIf(gex, side = 'put') / 1e6, 1) AS put_gex_musd,
round((sumIf(gex, side = 'call') - sumIf(gex, side = 'put')) / 1e6, 1) AS net_gex_musd,
any(snapshot_label) AS snapshot_label
FROM
(
SELECT
toFloat64(strike_price) AS k,
if(lower(option_type) LIKE 'c%', 'call', 'put') AS side,
toFloat64(gamma) * toFloat64(volume) * 100
* pow(toFloat64(underlying_close), 2) * 0.01 AS gex,
formatDateTime(date, '%b %e, %Y') AS snapshot_label
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = (SELECT max(date) FROM global_markets.options_greeks WHERE underlying_symbol = 'SPY')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 0 AND 30
AND abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1) < 0.015
)
GROUP BY k
ORDER BY kBurada tek bir ikame önemlidir ve bu, birçok ücretsiz gösterge panelinin belirtmeden yaptığı aynı ikamedir. Bu panellerin arkasındaki veriler, açık pozisyon sayısını (open interest) değil, sözleşme başına yunan harflerini (greeks) ve işlem hacmini taşır; bu nedenle her kullanım fiyatı, seansın işlem gören sözleşme hacmiyle ağırlıklandırılır. Bunlar farklı şeyleri sayar: Hacim gün içindeki işlemleri, açık pozisyon sayısı ise kapanışta hala devam eden pozisyonları sayar. Eğrinin şekli asıl derstir; seviye ise gerçek bir açık pozisyon sütunuyla birlikte hareket eder. Bu ayrımı opsiyon hacmi ile açık pozisyon sayısı kısmında bütünüyle okumaya değer.
Bant, 23 adet kullanım fiyatını kapsamakta olup $758 seviyesinden başlayarak $780 seviyesine kadar uzanmaktadır ve tamamı Aug 6, 2026 tarihinde ölçülmüştür. Görünümdeki en düşük kullanım fiyatında, imzalı net değer yüzde birlik hareket başına -653.1 milyon dolara ulaşmaktadır. En yüksek seviyede ise bu değer 849.4 milyondur. Çubukların bir kullanım fiyatından diğerine ne kadar düzensiz olduğuna dikkat edin. Yuvarlak sayılar ve yoğun işlem gören vadeler yığılma yaparken, aralarındaki kullanım fiyatları neredeyse hiç kayda değer bir varlık göstermez.
Dealer işaret konvansiyonu ölçülen bir değer mi yoksa varsayım mı?
Bir opsiyon zincirinde, sözleşmenin hangi tarafında kimin yer aldığına dair bir kayıt bulunmaz. Zincir; kullanım fiyatlarını, vadeleri, greeks değerlerini ve açık sözleşme sayısını raporlar. Piyasa yapıcının (market maker) günü uzun (long) mu yoksa kısa (short) pozisyonda mı kapattığına dair bilgi vermez ve hiçbir halka açık veri akışı bu boşluğu doldurmaz.
Standart yapı, bu boşluğu bir konvansiyon ile kapatır: Piyasa yapıcıların her call opsiyonunda uzun, her put opsiyonunda ise kısa olduğu varsayılır. Bu durumda call opsiyonları toplama pozitif, put opsiyonları ise negatif olarak dahil edilir. Bu tek tercih, manşet rakamın işaretini belirler ve bu işaret üzerine inşa edilen her okuma, söz konusu varsayımı devralır. Konvansiyonu tersine çevirdiğinizde, aynı veriler üzerinde pozitif bir gamma okuması negatif bir değere dönüşür.
Bu konvansiyonun bir mantığı vardır. Bireysel yatırımcı akışı, covered call ve nakit teminatlı put satmaya; koruma amaçlı ise put almaya yöneliktir. Bu durum, piyasa yapıcının karşı tarafta, varsayılan yöne yakın bir pozisyonda kalmasına neden olur. Yine de bu, sahiplik üzerine kurulu ve genellikle hatalı olduğu kullanım fiyatlarına da tekdüze uygulanan bir varsayımdır; büyük bir kurumsal yatırımcının yeni alım yaptığı bir kullanım fiyatı buna dahildir. Konvansiyonu belirtmeden rakamı gösteren bir gösterge paneli, en önemli girdisini gizlemiş demektir.
Gamma vade boyunca nerede yoğunlaşıyor?
Vade filtresi içermeyen bir GEX verisi, bu öğleden sonra vadesi dolan sözleşmeleri gelecek çeyrekte vadesi dolanlarla toplar ve toplamı tek bir miktar olarak ele alır. Gamma ön tarafta yoğunlaşır ve ön taraf her seansta yenilenir.
Her verinin arkasındaki tam SQL
SELECT
formatDateTime(expiry_date, '%b %e') AS expiry,
round(sumIf(gex, side = 'call') / 1e9, 2) AS call_gex_bn,
round(-sumIf(gex, side = 'put') / 1e9, 2) AS put_gex_bn,
round((sumIf(gex, side = 'call') - sumIf(gex, side = 'put')) / 1e9, 2) AS net_gex_bn
FROM
(
SELECT
expiration_date AS expiry_date,
if(lower(option_type) LIKE 'c%', 'call', 'put') AS side,
toFloat64(gamma) * toFloat64(volume) * 100
* pow(toFloat64(underlying_close), 2) * 0.01 AS gex
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = (SELECT max(date) FROM global_markets.options_greeks WHERE underlying_symbol = 'SPY')
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 0 AND 21
)
GROUP BY expiry_date
ORDER BY expiry_dateÜç hafta içindeki 11 vade boyunca, en yakın olan Aug 7, %1'lik hareket başına 20.57 milyar dolar tutarında call tarafı ve -5.1 milyar dolar tutarında net imzalı değer taşır. Panelin uzak ucu bunun küçük bir kısmıdır. Okumaya değer bir gösterge paneli grafiği, vade filtresini grafiğin üzerinde belirtir.
Genellikle "flip" olarak adlandırılan sıfır gamma seviyesi, toplanmış profilin sıfırı kestiği dayanak varlık fiyatıdır. Bunu doğru bir şekilde üretmek, zinciri varsayımsal spot fiyatlardan oluşan bir ızgarada yeniden fiyatlandırmayı ve her sözleşmenin gammasını her bir noktada yeniden hesaplamayı gerektirir; çünkü gamma, spot hareket ettikçe kendisi de değişir. Birçok proje yeniden fiyatlandırmayı atlar ve kesişim noktasını doğrudan mevcut kullanım fiyatı profilinden enterpole eder. Bu kısa yol daha ucuzdur ve farklı bir fiyata ulaşır. Bir projenin flip seviyesini referans almadan önce hangisini uyguladığını kontrol edin.
Profil günden güne ne kadar değişiyor?
Açık pozisyon (open interest), sabit duran bir hisse değildir. Sözleşmelerin vadesi dolar, yeni kullanım fiyatları (strike) listelenir ve her seans boyunca pozisyonlar açılıp kapanır.
Her verinin arkasındaki tam SQL
SELECT
toString(d) AS session_date,
formatDateTime(d, '%b %e') AS session_label,
round(sumIf(gex, side = 'call') / 1e9, 2) AS call_gex_bn,
round(-sumIf(gex, side = 'put') / 1e9, 2) AS put_gex_bn,
round((sumIf(gex, side = 'call') - sumIf(gex, side = 'put')) / 1e9, 2) AS net_gex_bn
FROM
(
SELECT
date AS d,
if(lower(option_type) LIKE 'c%', 'call', 'put') AS side,
toFloat64(gamma) * toFloat64(volume) * 100
* pow(toFloat64(underlying_close), 2) * 0.01 AS gex
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date >= today() - 60
AND iv_converged = 1
AND volume > 0
AND days_to_expiry BETWEEN 0 AND 45
)
GROUP BY d
ORDER BY dGörüntülenen 41 seans boyunca iki husus öne çıkmaktadır. Brüt taraflar büyüktür ve net değer, bu iki taraf arasındaki farktır: paneldeki son seans olan Aug 6 tarihinde, call tarafı 29.2 milyar dolar olarak ölçülürken put tarafı -34.53 milyar dolar olmuş ve net değer -5.32 milyar dolar olarak gerçekleşmiştir. Her iki brüt taraftaki küçük bir değişim, net değeri önemli ölçüde hareket ettirir. Çizgi de hiçbir şekilde pürüzsüz değildir. Net değer Jun 9 tarihinde -4.9 milyar dolar seviyesindeydi ve panel, seanslar arasında ne kadar mesafe kat ettiğini göstermektedir. Zaman damgası olmayan bir GEX grafiği sadece dekoratiftir.
GEX ile max pain arasındaki fark nedir?
Her iki veri de aynı opsiyon zincirini okur ancak farklı sorular sorar. GEX, her kullanım fiyatını gamma ile ağırlıklandırır ve yüzde bir oranındaki bir hareketin ne kadar hedging talebi yaratacağını sorgular. Max pain ise gamma verisini tamamen göz ardı eder ve bir uzlaşı sorusu sorar: Vade sonunda opsiyon sahiplerine ödenecek toplam kârda (in the money) değerin en düşük olacağı fiyat seviyesi hangisidir? Aşağıdaki panel, aynı anlık görüntü üzerinden bir hafta içinde vadesi dolacak sözleşmeler için bu eğriyi oluşturur.
Her verinin arkasındaki tam SQL
WITH chain AS
(
SELECT
toFloat64(strike_price) AS k,
if(lower(option_type) LIKE 'c%', 'call', 'put') AS side,
sum(toFloat64(volume)) AS contracts,
min(abs(toFloat64(strike_price) / toFloat64(underlying_close) - 1)) AS moneyness
FROM global_markets.options_greeks
WHERE underlying_symbol = 'SPY'
AND date = (SELECT max(date) FROM global_markets.options_greeks WHERE underlying_symbol = 'SPY')
AND volume > 0
AND days_to_expiry BETWEEN 0 AND 7
GROUP BY k, side
)
SELECT
concat('$', toString(round(sk))) AS settle_price,
round(sum(multiIf(
side = 'call' AND sk > k, (sk - k) * contracts * 100,
side = 'put' AND sk < k, (k - sk) * contracts * 100,
0)) / 1e9, 2) AS itm_value_bn
FROM (SELECT DISTINCT k AS sk FROM chain WHERE moneyness <= 0.015) AS grid
CROSS JOIN chain
GROUP BY sk
ORDER BY skEğri, 23 adet aday uzlaşı fiyatını kapsar. $758 seviyesinde toplam kârda değer 0.86 milyar dolar, $780 seviyesinde ise 0.7 milyar dolar düzeyindedir. Eğrinin en düşük noktası max pain kullanım fiyatıdır. Bu nokta, aynı anlık görüntüde en büyük gamma riskini taşıyan kullanım fiyatından birkaç dolar uzakta olabilir ve her iki nokta da dayanak varlığın nerede uzlaşacağına dair bir tahmin niteliği taşımaz.
Açık kaynaklı bir GEX panosu çalıştırmak için ne gerekir?
Bu projelerin çoğu, üzerinde grafik katmanı bulunan küçük Python paketleridir. Sizden bekledikleri kısa ve nettir:
- Kullanım fiyatı, vade, opsiyon türü, açık pozisyon (open interest) ve ya bir sağlayıcıdan gelen gamma değeri ya da hesaplama için gerekli olan zımni oynaklık (implied volatility) verilerini içeren bir opsiyon zinciri anlık görüntüsü
- Zincirle aynı anda kaydedilmiş dayanak varlığın spot fiyatı
- Varsayılan değil, çıktı ile birlikte saklanan bir zaman damgası
- Kendi belirlediğiniz bir vade filtresi
- Bir piyasa verisi anahtarı
Kurulumu varsayılan dal yerine etiketli bir sürüm üzerinden yapın. git clone --branch <tag> --depth 1 <repo-url> size birinin onayladığı bir yapıyı sunarken, main bu sabah yüklenen her ne ise onu verir. Sanal bir ortam içinde çalışın: python3 -m venv .venv ile oluşturun, etkinleştirin ve ardından pip install -r requirements.txt komutunu kullanın. Önce projenin pyproject.toml dosyasındaki requires-python satırını okuyun. Daha eski bir yorumlayıcıya sabitlenmiş bir paket, daha yeni bir yorumlayıcıda karmaşık hatalara yol açar.
Piyasa verisi nadiren ücretsiz olan kısımdır. Ağustos 2026 itibarıyla, bir zincirdeki her sözleşme için hem açık pozisyonu hem de yunanlıları (greeks) içeren bir anlık görüntü, çoğu veri sağlayıcısında ücretli bir haktır. Ücretsiz uç noktalar genellikle açık pozisyon bilgisi içermeyen kotasyonlar sunar ya da açık pozisyon verisini ertesi sabah yayınlar. Dünün açık pozisyon verisi üzerine inşa edilen bir profil, hesaplamanın en hassas olduğu noktada güncelliğini yitirmiştir.
Bir GEX panelinin bilemeyeceği hususlar
Gerçek piyasa yapıcı (market maker) envanteri yayımlanmaz. Firmalar pozisyonlarını toplu halde ve gecikmeli olarak raporlar; kullanım fiyatı (strike) düzeyindeki detaylar ise hiçbir halka açık veri akışında yer almaz. Bir GEX paneli, bir sahiplik varsayımı altında riskten korunma (hedging) talebini modeller ve aritmetik ne kadar kesin görünürse görünsün, bu bir model olarak kalır.
Herhangi bir opsiyon zinciri tabanlı yapının göremediği dört unsur şunlardır:
- her bir kullanım fiyatının her iki tarafını fiilen kimin elinde tuttuğu
- organize piyasa dışında açılan pozisyonlar
- sürekli yerine belirli bir takvime göre riskten korunma yapanlar dahil olmak üzere, her bir işlem masasının (trading desk) hedging politikası
- belirli bir açık pozisyon (open interest) verisinin yeni bir işlemden mi yoksa pozisyon kapatmadan mı kaynaklandığı
Bunların hiçbiri ilgili veriyi değersiz kılmaz. Ancak bu durum, verinin belirli bir varsayım taşıdığı ve bu varsayımın grafiğin yanında belirtilmesi gerektiği anlamına gelir. Aynı disiplin, bir portföyün deltasının beta ağırlıklandırılması işleminin, toplam değerin arkasındaki varsayımı gizlemek yerine açıkça ortaya koyduğu portföy düzeyi greek çalışmalarında da görülür.
Bu paneller nasıl hesaplandı
Her panel, mevcut en son seans için SPY'ye ait günlük sözleşme bazlı greek verilerini okur; bu veriler, yakınsayan zımni volatilite (implied volatility) değerlerine ve işlem görmüş sözleşmelere göre filtrelenir. Her kullanım fiyatı, bu veri setinde bulunmayan açık pozisyon verisi yerine, ilgili seanstaki sözleşme hacmi ile ağırlıklandırılır. Gamma dolar değerleri, dayanak varlığın kapanış fiyatı spot kabul edilerek yukarıda verilen formülle hesaplanır. Max pain paneli ise greek verilerini tamamen devre dışı bırakarak yalnızca kullanım fiyatlarını, tarafları ve sözleşme sayılarını kullanır.
SSS
Opsiyon işlemlerinde GEX nedir?
GEX veya gama maruziyeti (gamma exposure), dayanak varlıktaki yüzde birlik bir değişim için opsiyon riskten korunma (hedging) talebinin ne kadar değişeceğini tahmin eder. Her sözleşmenin gamasını açık pozisyon sayısı (open interest), yüz hisselik çarpan ve spot fiyatın karesi ile çarpar; ardından call ve put opsiyonları için varsayılan bir işaretle kullanım fiyatları (strike) üzerinden toplar.
GEX hesaplamak için açık pozisyon sayısı (open interest) gerekli midir?
Standart yapı, henüz kapanmamış pozisyonları sayan açık pozisyon verisini kullanır. Bazı paneller, açık pozisyon verisi mevcut olmadığında veya gecikmeli geldiğinde işlem hacmini kullanır; ancak birini diğeriyle değiştirmek profil seviyesini değiştirir.
Sıfır gama veya gama dönüş (gamma flip) seviyesi nedir?
Bu, toplam gama maruziyeti profilinin sıfırı kestiği dayanak varlık fiyatıdır. Dikkatli bir uygulama, gama spot fiyat değiştikçe hareket ettiği için, mevcut kullanım fiyatı profilinden enterpolasyon yapmak yerine her bir sözleşmenin gamasını her aday spot fiyat noktasında yeniden hesaplar.
Pozitif GEX okuması yükseliş (bullish) beklentisine mi işaret eder?
İşaret, bir sonucu değil, varsayılan bir riskten korunma duruşunu tanımlar ve tamamen call ve put opsiyonlarını kimin elinde tuttuğuna dair seçilen kabule dayanır. Bu kabulü tersine çevirmek, aynı veri üzerinde işareti de tersine çevirir; dolayısıyla okuma, bir yönü değil, modellenmiş bir pozisyonu tanımlar.
Ücretli bir veri akışı olmadan GEX paneli oluşturabilir miyim?
Hesaplamayı, gecikmeli veya kısmi olanlar dahil olmak üzere herhangi bir opsiyon zinciri anlık görüntüsü üzerinde oluşturabilir ve test edebilirsiniz. Güncel bir profil üretmek genellikle Ağustos 2026 itibarıyla çoğu sağlayıcının ücret talep ettiği, açık pozisyon verisini ve greeks değerlerini tüm zincir için birlikte taşıyan bir veri akışı gerektirir.
Buradaki her panel, altında yer alan SQL koduyla birlikte sunulmaktadır. Birini açın, ticker sembolünü veya vade aralığını değiştirin ve aynı hesaplamayı Strasmore terminalinde kendiniz çalıştırın.