Strasmore Research
Market Recap

2026 İlk Yarı Piyasa Özeti

Matt ConnorBy Matt Connor Updated 2026-07-24

2026 yılının ilk yarısı, birleştirilmiş iki farklı piyasadan oluştu: tüm ana endeks ETF'lerinin düştüğü veya yerinde saydığı bir ilk çeyrek ve bu durumu telafi eden bir ikinci çeyrek. SPY yarıyı 8.8% artışla; QQQ 18.7% artışla tamamladı; IWM'nin 21.3% performansı ise küçük ölçekli ETF için kayıtlarımızdaki en iyi ilk yarı oldu — veriler, her bir önceki yıl ile tek bir sorgu üzerinden yeniden hesaplanarak aşağıda sunulmuştur. Faiz piyasası kendi hikayesini anlattı: 2s10s spread yarı yıl boyunca tersine dönmeden, 72 baz puanından 30 seviyesine kadar düzleşti. Bu sayfa yarının tam defteridir — skor tabelası, tarihsel sıralama, aylık basamaklar, vade vade tüm getiri eğrisi, on bir sektör, opsiyon piyasasının ay ay evrimi ve yarının öne çıkan tekil hisseleri. Buradaki her sayı, kayıtlı bir sorgu sonucıdır; SQL kodunu görmek için herhangi bir paneli genişletebilirsiniz.

Tablodaki yarım dönem

Sorgula2026 H1: dört endeks ETF'si için yarıyıl, Q1 ve Q2 getirileri — tek sorguda hesaplanmıştır
Her verinin arkasındaki tam SQL
SELECT ticker,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS h1_return_pct,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q1_return_pct,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
    round(argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS h1_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY ticker

İki çeyreklik bölünme, yarım dönemin belirleyici yapısıdır: SPY için önce -5.2% sonra 14.1%; QQQ için önce -6.9% sonra 26.5%. IWM, 21.3% döneminde yarım dönemin sessiz lideri oldu — küçük ölçekli şirketler altı ay boyunca tüm büyük ölçekli endeksleri geride bıraktı. Çeyrek detayları Q2 özeti içerisinde yer almaktadır. Yarım dönem matematiğine dair bir not: SPY'ın altı aylık 8.8% değeri, tek başına Q2 değerinden çok daha düşüktür; çünkü yarım dönem bir düşüş ve bir toparlanmayı birbirine bağlar — -5.2% ve 14.1% bileşiği tablodaki sonucu verir ve herhangi bir "ilk yarı getirisi" manşeti, bu tam döngüyü sessizce içerir.

Her ilk yarıya karşı ikinci yarının performansı

Bir 8.8% yarısı olağandışı mıdır? Aşağıdaki paneller, her bir ETF çifti için her yıl aynı aritmetik kullanılarak, dakikalık geçmişteki her yıl için AYNI ilk yarı getirisini — Ocak'tan Haziran'a kadar, normal işlem saatleri açılışından kapanışına kadar — yeniden hesaplar ve bu yarıyı geri kalanlarla kıyaslar. Dakikalık verilerin en eski tarihi aşağıdaki metodolojide doğrulanmıştır; kayıtlardaki ilk tam ilk yarı, makbuzlarda belirtilen dönemdir.

SorgulaHer ilk yarıyıl verisi: SPY ve QQQ, yıla göre aynı şekilde yeniden hesaplanmıştır (yıllık oturum sayıları gösterilmiştir)
Her verinin arkasındaki tam SQL
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
       ticker,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
       round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 1) AS h1_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
  AND window_start >= toDateTime('2003-01-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')
  AND toMonth(toTimeZone(window_start, 'America/New_York')) <= 6
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y, ticker
HAVING sessions >= 100
ORDER BY y ASC, ticker ASC
SorgulaSıralama sonuçları: bu yarıyılın önceki tüm yarıyıllarla kıyaslanması (SPY ve QQQ; sıra 1 = en iyi; öz-hariç tutulmuştur)
Her verinin arkasındaki tam SQL
SELECT ticker,
       round(anyIf(ret, y = 2026), 1) AS h1_2026_pct,
       arrayCount(x -> x > anyIf(ret, y = 2026), groupArrayIf(ret, y != 2026)) + 1 AS rank_best,
       count() AS halves_compared,
       min(y) AS first_year,
       anyIf(sessions, y = 2026) AS sessions_2026
FROM (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
           ticker,
           uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('SPY', 'QQQ')
      AND window_start >= toDateTime('2003-01-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND toMonth(toTimeZone(window_start, 'America/New_York')) <= 6
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY y, ticker
    HAVING sessions >= 100
)
GROUP BY ticker
ORDER BY ticker ASC

SPY'ın 8.8% sıralaması, 2004 yılından bu yana 6 içindeki 23 ilk yarı arasındadır (sıralama 1 = en iyi) — üst üçlük dilimdedir, ancak bir rekor değildir. QQQ'nun 18.7% sıralaması, 16 içindeki 3 karşılaştırılabilir yarı arasındadır — QQQ serisi daha kısadır — fon belirli bir dönem boyunca farklı bir kök sembol altında işlem görmüştür — ayrıca bir sembol için bir yılda yüz seansın altında kalan tüm ilk yarı seansları, tabloda gösterilen bir seans sayısı korumasıyla hariç tutulur; bu nedenle dışlamalar sessizce değil, görünür şekilde yapılır.

SorgulaHer ilk yarıyıl verisi: DIA ve IWM, aynı matematiksel yöntemle
Her verinin arkasındaki tam SQL
SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
       ticker,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
       round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 1) AS h1_return_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('DIA', 'IWM')
  AND window_start >= toDateTime('2003-01-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')
  AND toMonth(toTimeZone(window_start, 'America/New_York')) <= 6
  AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY y, ticker
HAVING sessions >= 100
ORDER BY y ASC, ticker ASC
SorgulaSıralama sonuçları: DIA ve IWM'nin önceki tüm ilk yarıyıllarla kıyaslanması (sıra 1 = en iyi; öz-hariç tutulmuştur)
Her verinin arkasındaki tam SQL
SELECT ticker,
       round(anyIf(ret, y = 2026), 1) AS h1_2026_pct,
       arrayCount(x -> x > anyIf(ret, y = 2026), groupArrayIf(ret, y != 2026)) + 1 AS rank_best,
       count() AS halves_compared,
       min(y) AS first_year,
       anyIf(sessions, y = 2026) AS sessions_2026
FROM (
    SELECT toYear(toTimeZone(window_start, 'America/New_York')) AS y,
           ticker,
           uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
           (argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100 AS ret
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN ('DIA', 'IWM')
      AND window_start >= toDateTime('2003-01-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND toMonth(toTimeZone(window_start, 'America/New_York')) <= 6
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY y, ticker
    HAVING sessions >= 100
)
GROUP BY ticker
ORDER BY ticker ASC

Küçük ölçekli şirketler satırı, yarının ana başlığıdır: IWM, 2004 yılından bu yana 23 içindeki 1 ilk yarı arasındadır — fon için kayıtlardaki en iyi performans, tablodaki tüm toparlanma yarılarının önündedir. DIA'nın 8.4% sıralaması, 23 içindeki 4 arasındadır. Temel mantık açıkça ifade edilmiştir: her takvim yılındaki ilk yarı içerisinde normal işlem saatleri açılışından kapanışına kadar olan getiri, her yıl için aynı aritmetik, karşılaştırma kümesinin daha sonraki yıllar eklendiğinde sessizce büyümemesi için üst sınır bu dönemin sonuna sabitlenmiştir.

Ay bazında

SorgulaAy ay yarıyıl verileri (SPY ve QQQ, tek sorguda aynı şekilde yeniden hesaplanmıştır)
Her verinin arkasındaki tam SQL
SELECT toString(toStartOfMonth(toDate(toTimeZone(window_start, 'America/New_York')))) AS period_start, ticker,
    round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS month_return_pct,
    round(argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959), 2) AS month_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('SPY', 'QQQ')
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY period_start, ticker
ORDER BY period_start, ticker

Fiyat hareketleri hafif bir yükseliş, ardından düşüş, sert bir yükseliş, tekrar yükseliş ve hafif bir düşüş şeklinde seyretti: Nisan ayı dönüm noktası oldu (SPY 9.9%, QQQ 14.8% — QQQ için altı ayın en iyi ayı), Haziran ayı ise SPY için -1.2% seviyesinde sakin bir kapanış yaptı. Haziran ayına ait kapsamlı analiz ve bu sakin rakamın ardındaki piyasa genişliği burada sunulmuştur. Tablonun ay bazında incelenmesi: Yıl neredeyse yatay bir seyirle başladı (Ocak ayında SPY 0.9%), Şubat (-0.5%) ve Mart (-4.2%) aylarında geriledi, ardından Nisan ayında tek bir ayda trend tersine döndü, Mayıs bu yükselişi sürdürdü (4.9%) ve Haziran ayında ivme azaldı. Altı ayın üçü negatif kapandı; bu durum, sağlam bir pozitif seyirle tamamlanan bir yarı yıl için rastlantısal bir sayı olsa da, tek bir ayın kesin bir sonuç gibi algılandığı durumlarda akılda tutulmalıdır.

Faiz Oranları: Tüm eğri, vade vade

Hazine eğrisi, bu yarıyıl boyunca kayma yerine bükülme (twist) gösterdi. Politika faizini en yakından takip eden en kısa vadeler neredeyse hiç hareket etmedi; iki yıllık tahvil yüzde sıfır nokta üç yükselirken, otuz yıllık tahvil neredeyse hiç değişmedi. Panel, eğrinin tamamını yarıyıl başı ve sonu olarak karşılaştırmalı olarak sunmaktadır.

SorgulaYedi vade: yarıyıl başındaki ve sonundaki getiri ile değişim
Her verinin arkasındaki tam SQL
SELECT maturity, start_pct, end_pct, round((end_pct - start_pct) * 100, 0) AS change_bp FROM (
    SELECT '1-month' AS maturity, (SELECT round(argMin(yield_1_month, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_1_month)) AS start_pct, (SELECT round(argMax(yield_1_month, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_1_month)) AS end_pct, 1 AS o
    UNION ALL SELECT '3-month', (SELECT round(argMin(yield_3_month, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_3_month)), (SELECT round(argMax(yield_3_month, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_3_month)), 2
    UNION ALL SELECT '1-year', (SELECT round(argMin(yield_1_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_1_year)), (SELECT round(argMax(yield_1_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_1_year)), 3
    UNION ALL SELECT '2-year', (SELECT round(argMin(yield_2_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_2_year)), (SELECT round(argMax(yield_2_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_2_year)), 4
    UNION ALL SELECT '5-year', (SELECT round(argMin(yield_5_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_5_year)), (SELECT round(argMax(yield_5_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_5_year)), 5
    UNION ALL SELECT '10-year', (SELECT round(argMin(yield_10_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_10_year)), (SELECT round(argMax(yield_10_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_10_year)), 6
    UNION ALL SELECT '30-year', (SELECT round(argMin(yield_30_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_30_year)), (SELECT round(argMax(yield_30_year, date), 2) FROM global_markets.treasury_yields WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30') AND isNotNull(yield_30_year)), 7
) ORDER BY o

Değişim sütunu yukarıdan aşağıya incelendiğinde bükülme net bir şekilde görülmektedir: altı ay içinde 1 aylık vade -2 baz puan hareket ederken, 2 yıllık vade 67 ve 30 yıllık vade sadece 5 yükselmiştir. Paralel bir kayma tüm vadeleri aynı anda hareket ettirir; bu yarıyıl ise eğrinin orta kısmını hareketlendirmiş ve her iki ucu sabitlemiştir — kısa vadeli oranlar politika faizine yakın seyretmiş, uzun vadeli oranlar ise neredeyse hiç yeniden fiyatlanmamıştır.

Eğimin üzerindeki etkisi

SorgulaEğim sonuçları: başlangıç, bitiş, minimum — bu yarıyılda spread tersine dönmemiştir
Her verinin arkasındaki tam SQL
SELECT
    round((argMin(yield_10_year - yield_2_year, date)) * 100, 0) AS start_bp,
    round((argMax(yield_10_year - yield_2_year, date)) * 100, 0) AS end_bp,
    round(min((yield_10_year - yield_2_year)) * 100, 0) AS min_bp,
    count() AS prints
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30')
  AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)

Kısa vadeli tahvillerin uzun vadeli tahvillerden daha hızlı yükselmesi, düzleşmenin (flattening) tanımıdır: 2s10s spread oranı 124 dönemindeki verilerde 72 baz puan seviyesinden 30 baz puan seviyesine gerilemiştir — dönemin en düşük seviyesi ise 27 olmuştur; böylece eğri, tersine dönmeden (inversion) düzleşmiştir. Daha düz bir eğrinin gelecekte ne olacağına dair bir anlam taşıyıp taşımadığı bir öngörüdür ve bu tablo öngörü içermemektedir.

Sorgula2s10s spread'i, yarıyıl boyunca her veri girişi
Her verinin arkasındaki tam SQL
SELECT toString(date) AS d, round((yield_10_year - yield_2_year) * 100, 0) AS spread_2s10s_bp
FROM global_markets.treasury_yields
WHERE date >= toDate('2026-01-01') AND date <= toDate('2026-06-30')
  AND isNotNull(yield_10_year) AND isNotNull(yield_2_year)
ORDER BY date

Günlük seriler, düzleşmenin tek bir olay değil, kademeli bir süreç olduğunu göstermektedir — 124 verileri dönem boyunca düşüş göstermiştir; spread yıla 72 baz puan ile başlamış ve 30 ile sona ermiştir.

Sektörler: endeksin gizlediği ayrışma

Piyasanın hangi kısımları kazancın yarısını sağladı? On bir SPDR sektör ETF'si, yarı yarıya ve çeyrek bazlı bölünmüş tek bir sorgu.

SorgulaOn bir sektör ETF'si: 2026 H1 getirisi, Q1 ve Q2 dağılımı ve H1 dolar hacmi
Her verinin arkasındaki tam SQL
SELECT ticker,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS h1_return_pct,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-03-31') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-01-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q1_return_pct,
    round((argMaxIf(toFloat64(close), window_start, toDate(toTimeZone(window_start, 'America/New_York')) <= toDate('2026-06-30') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, toDate(toTimeZone(window_start, 'America/New_York')) >= toDate('2026-04-01') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
    round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / 1e9, 1) AS h1_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY ticker

Asıl hikaye ayrışmada yatıyor: teknoloji (XLK) yarıyı 30.8% yükselişle — 42% bir ikinci çeyreğin ardından — tamamladı; iletişim servisleri (XLC) ise -9.3% seviyesinde kaldı. Bu durum, altı ay içindeki en iyi ve en kötü sektör arasında yaklaşık kırk puanlık bir fark anlamına geliyor. "Piyasaya" yatırım yapmak, bu iki uç noktayı da satın almak demekti. Enerji (XLE), uzun vadeli beklentiler için bir uyarı niteliği taşıyor: XLE, 36.9% bir birinci çeyreği -11% bir ikinci çeyreğin izlediği sağlıklı bir 18.8% yarıyı gösteriyor. Endekslerin düştüğü çeyrekte piyasanın en güçlü büyük sektörü iken, toparlandıkları çeyrekte en zayıf sektörler arasındaydı. Finansallar (XLF) ise aynı süreci tersine işletti: birinci çeyrekte -9.9%, ikinci çeyrekte ise 7.7% gerçekleşti. Tek bir yarı yıllık veri her iki yönlü hareketi de düzleştiriyor; çeyrek bazlı ayrım ise gerçek tabloyu sunuyor.

Her bir sektörün işlem maliyeti

Getiri tabloları yaygındır; ancak fiyat teklifleri değildir. Bu panel, her bir sektör ETF'sinin tam bir temsilci seans boyunca medyan alış-satış spread'ini ölçer — yarım yılda 123 seans ve burada ölçülen ve bu şekilde etiketlenen tarih 29 Haziran'dır — o günkü her bir NBBO güncellemesinden elde edilmiştir.

SorgulaSektör ETF'si bazında medyan kotasyon spread'i, bir temsilci oturum (29 Haziran 2026), normal saatler
Her verinin arkasındaki tam SQL
SELECT ticker,
    round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 2) AS med_spread_bps,
    round(count() / 1e6, 2) AS quote_updates_m,
    countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('XLB', 'XLC', 'XLE', 'XLF', 'XLI', 'XLK', 'XLP', 'XLRE', 'XLU', 'XLV', 'XLY')
  AND sip_timestamp >= toDateTime64('2026-06-29 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-06-29 20:00:00', 9)
GROUP BY ticker
ORDER BY med_spread_bps

Birkaç baz puan veya daha az olan on bir teklifin her biri — en ucuzu 0.62 bps (XLV), en genişi ise 2.23 bps (XLRE) — "sektör ETF'leri likittir" ifadesinin pratik anlamı şudur: herhangi bir sektörel görüşe giriş maliyeti, yüzde biriminin yüzde birleri ile ölçülür. Bireysel hisselerle kıyaslandığında, 29 Haziran derin incelemesi aynı seansta düşük hacimli bir ismin spread'ini bu seviyelerin yüzlerce katı olarak ölçmektedir.

Yarı dönem genel piyasa genişliği

Yarı dönemdeki piyasa genişliği iki farklı ölçekte incelenmektedir. Kaba ölçekte: SPY, dönemin 123 süresi boyunca 64 yükseliş seansı gerçekleştirirken 59 düşüş kaydetmiştir — bu durum, güçlü bir yükseliş trendinin günlük verilerdeki yansıması olan, neredeyse yazı-tura ihtimaline yakın bir gün dağılımına işaret etmektedir. İnce ölçekte — her bir hisse senedi dikkate alındığında — veriler aylık bazda incelenmektedir: Haziran ayındaki yükselen/düşen hisse oranı Haziran özeti içerisinde yer almaktadır (bu dönemde düşen hisseler yükselenlerden daha fazladır) ve çeyrek sınırı verileri Q2 özeti içerisinde sunulmaktadır. Altı aylık tek bir tüm piyasa yükselen hisse taraması, bu sayfanın oluşturduğu sorgu bütçesini aşmaktadır; bu sınır, veriler gizlice daraltılmak yerine burada açıkça belirtilmiştir.

SorgulaYarıyıl boyunca SPY oturumlarının yükseliş vs düşüş dağılımı, tek bir örnek veri
Her verinin arkasındaki tam SQL
SELECT countIf(day_ret > 0) AS up_sessions,
       countIf(day_ret < 0) AS down_sessions,
       countIf(day_ret = 0) AS flat_sessions,
       count() AS sessions_total
FROM (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d,
           round((argMax(toFloat64(close), window_start) / argMin(toFloat64(open), window_start) - 1) * 100, 2) AS day_ret
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= toDateTime('2026-01-01 00:00:00')
      AND window_start < toDateTime('2026-07-01 00:00:00')
      AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
    GROUP BY d
)

Opsiyon piyasası, ay bazında

Yalnızca yarım yıllık bir verinin gösterebileceği şey: opsiyon piyasasının nasıl evrildiğidir. Aşağıdaki her bir panel, bir aya ait tam piyasa taramasıdır; toplam kontrat hacmi ve aynı gün sona eren (0DTE) kontratların payı gösterilmektedir. Veriler şunu göstermektedir: hacim Ocak ayında 1316.1 milyon kontrat seviyesindeyken, Haziran ayında —yılın en yoğun opsiyon ayı— 1477.9 milyon kontrata yükselmiştir. Aynı gün sona eren kontratların payı ise Ocak ayındaki 26.5% seviyesinden, dönemin en yüksek ayı olan Haziran ayındaki 34.3% seviyesine çıkmıştır. Haziran ayındaki opsiyon hacminin üçte biri, aynı gün sona eren kontratlarda işlem görmüştür.

SorgulaOcak: tüm piyasa opsiyon kontrat hacmi ve aynı gün vadeli payı (tek tarama)
Her verinin arkasındaki tam SQL
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-01-01 00:00:00')
  AND window_start < toDateTime('2026-02-01 00:00:00')
SorgulaŞubat: tüm piyasa opsiyon kontrat hacmi ve aynı gün vadeli payı (tek tarama)
Her verinin arkasındaki tam SQL
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-02-01 00:00:00')
  AND window_start < toDateTime('2026-03-01 00:00:00')
SorgulaMart: tüm piyasa opsiyon kontrat hacmi ve aynı gün vadeli payı (tek tarama)
Her verinin arkasındaki tam SQL
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-03-01 00:00:00')
  AND window_start < toDateTime('2026-04-01 00:00:00')
SorgulaNisan: tüm piyasa opsiyon kontrat hacmi ve aynı gün vadeli payı (tek tarama)
Her verinin arkasındaki tam SQL
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-04-01 00:00:00')
  AND window_start < toDateTime('2026-05-01 00:00:00')
SorgulaMayıs: tüm piyasa opsiyon kontrat hacmi ve aynı gün vadeli payı (tek tarama)
Her verinin arkasındaki tam SQL
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-05-01 00:00:00')
  AND window_start < toDateTime('2026-06-01 00:00:00')
SorgulaHaziran: tüm piyasa opsiyon kontrat hacmi ve aynı gün vadeli payı (tek tarama)
Her verinin arkasındaki tam SQL
SELECT round(sum(toFloat64(volume)) / 1e6, 1) AS contracts_mm,
       round(100.0 * sumIf(toFloat64(volume), toDateOrNull(concat('20', substring(ticker, length(ticker) - 14, 6))) = toDate(toTimeZone(window_start, 'America/New_York'))) / sum(toFloat64(volume)), 1) AS zero_dte_pct,
       uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions
FROM global_markets.options_minute_aggs
WHERE window_start >= toDateTime('2026-06-01 00:00:00')
  AND window_start < toDateTime('2026-07-01 00:00:00')

İşlem maliyeti, aylık örneklem

SorgulaSPY medyan kotasyon spread'i, ay başına bir örnek oturum (ikinci Çarşamba günleri), her NBBO güncellemesi
Her verinin arkasındaki tam SQL
SELECT toDate(toTimeZone(sip_timestamp, 'America/New_York')) AS session,
       round(quantileDeterministicIf(0.5)((toFloat64(ask_price) - toFloat64(bid_price)) / ((toFloat64(ask_price) + toFloat64(bid_price)) / 2) * 10000, toUInt64(toUnixTimestamp64Micro(sip_timestamp)), bid_price > 0 AND ask_price >= bid_price), 3) AS med_spread_bps,
       round(count() / 1e6, 2) AS quote_updates_m,
       countIf(NOT (bid_price > 0 AND ask_price > 0 AND ask_price >= bid_price)) AS invalid_dropped
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY'
  AND ((sip_timestamp >= toDateTime64('2026-01-14 14:30:00', 9) AND sip_timestamp < toDateTime64('2026-01-14 21:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-02-11 14:30:00', 9) AND sip_timestamp < toDateTime64('2026-02-11 21:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-03-11 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-03-11 20:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-04-15 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-04-15 20:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-05-13 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-05-13 20:00:00', 9))
    OR (sip_timestamp >= toDateTime64('2026-06-10 13:30:00', 9) AND sip_timestamp < toDateTime64('2026-06-10 20:00:00', 9)))
GROUP BY session
ORDER BY session ASC

SPY için her ayın ikinci çarşamba günü kaydedilen medyan teklif spread'i: Ocak örneğinde 0.145 bps, Şubat'ta 0.144 bps, bahar örneklemleri boyunca yaklaşık iki katı ve Haziran örneğinde 0.409 bps — altı ayın en genişi. Not: bunlar ay geneli medyanlar değil, tek bir etiketli örneklem oturumlarıdır (her ayın ikinci çarşamba günü); altı aylık tam kota taraması bu sayfanın sorgu bütçesini aşmaktadır. Örneklem tarihleri tabloda yer almaktadır ve geçersiz kotalar sessizce silinmek yerine orada sayılmaktadır.

Dönemin öne çıkan isimleri

Editöryal seçim değil, ölçülmüş belirginlik: Aşağıdaki liste, çeyrek bazlı dolar hacmi liderlik tablosunun en üst kısmını oluşturmaktadır. Bu sayfa kendi verilerini taşımaktadır ve derinlemesine inceleme içeren her isim ilgili bağlantıya sahiptir.

SorgulaQ2 normal saatler dolar hacmi, tüm piyasa (kurumsal doğrulama bekleyen bir sembol hariç tutulmuştur)
Her verinin arkasındaki tam SQL
SELECT ticker,
    round(sum(toFloat64(close) * toFloat64(volume)) / 1e9, 1) AS dollar_bn,
    round(100 * sum(toFloat64(close) * toFloat64(volume)) / max(sum(toFloat64(close) * toFloat64(volume))) OVER (), 1) AS pct_of_leader
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= toDateTime('2026-04-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
  AND (toHour(window_start) * 60 + toMinute(window_start)) BETWEEN 810 AND 1199
  AND ticker NOT IN ('SPCX')
GROUP BY ticker
ORDER BY dollar_bn DESC
LIMIT 8

MU, ikinci çeyrekte SPY'yi işlem hacmi bakımından geride bırakmıştır ($2047.5 milyar, $2032 milyara karşı) — bu veri Q2 özeti kısmında da yer almaktadır. Bu lider listedeki altı tekil hisse için dönemsel veriler şöyledir:

SorgulaLider grubun yarıyıl ve Q2 getirileri ile yarıyıl dolar hacmi — sembol filtreli tek sorgu
Her verinin arkasındaki tam SQL
SELECT ticker,
    round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS h1_return_pct,
    round((argMaxIf(toFloat64(close), window_start, (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959)
         / argMinIf(toFloat64(open), window_start, window_start >= toDateTime('2026-04-01 00:00:00') AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) - 1) * 100, 1) AS q2_return_pct,
    round(sumIf(toFloat64(close) * toFloat64(volume), (toHour(toTimeZone(window_start, 'America/New_York')) * 60 + toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959) / 1e9, 1) AS h1_dollar_bn
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('MU', 'NVDA', 'TSLA', 'SNDK', 'AMD', 'INTC')
  AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')
GROUP BY ticker
ORDER BY ticker

Bellek ve yarı iletken sektörü döneme hakimdir: SNDK altı ayda 830.1%, MU 290% — Haziran ayı verileri burada detaylıca incelenmiştir — ve INTC 269.3% getiri sağlamıştır. Altı aylık 3287.9 milyar dolarlık işlem hacmiyle listenin en büyük hacimli hissesi olan NVDA, 5.2% getiri sağlamıştır; bellek hisseleri katlanırken NVDA tek haneli rakamlarda kalmıştır; Haziran ayı derinlemesine incelemesi bu ayrışmayı oturum bazlı sunmaktadır. TSLA, -8.2% getiri ile listedeki tek düşüş gösteren hissedir. Haziran ayındaki dev listeleme, yeniden kullanılan bir sembol altında işlem görmekte olup, kurum doğrulama süreci tamamlanana kadar liderlik taramalarına dahil edilmemektedir — ilk ayına ait veriler ayrı bir gönderi olarak sunulmuştur. Temel: lider liste, Q2 normal işlem saatleri dolar hacmine göre seçilmiştir (yukarıdaki tarama); getiri sütunları ise dönemin ilk normal işlem saati açılışından son normal işlem saati kapanışına kadar olan süreci kapsamaktadır.

Yılın ilk yarısındaki halka arz dalgası, ay ay

SorgulaYarıyıl boyunca aylık yeni halka arzlar
Her verinin arkasındaki tam SQL
SELECT toString(toStartOfMonth(listing_date)) AS m, count() AS listings
FROM global_markets.stocks_ipos
WHERE listing_date >= toDate('2026-01-01') AND listing_date <= toDate('2026-06-30')
GROUP BY m
ORDER BY m

Halka arz dalgası dönemsel olarak yoğunlaşmış ve dengesiz bir seyir izlemiştir: Şubat ayı 47 halka arz ile yılın en yoğun ayı olurken, Mart ayı 17 halka arz ile en sakin ay olmuştur — Haziran ayındaki büyük halka arz ise normal hacimli bir ayda (35 halka arz) gerçekleşmiştir.

Dönemin takvimi

Sorgula2026 H1 kurumsal takvimi (tüm üç ay sonu bildirim-endeks farkları açıklanmıştır)
Her verinin arkasındaki tam SQL
SELECT
    (SELECT count() FROM global_markets.stocks_dividends WHERE ex_dividend_date >= toDate('2026-01-01') AND ex_dividend_date <= toDate('2026-06-30')) AS ex_div_events,
    (SELECT count() FROM global_markets.stocks_splits WHERE execution_date >= toDate('2026-01-01') AND execution_date <= toDate('2026-06-30')) AS splits,
    (SELECT count() FROM global_markets.stocks_ipos WHERE listing_date >= toDate('2026-01-01') AND listing_date <= toDate('2026-06-30')) AS ipos,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date >= toDate('2026-01-01') AND filing_date <= toDate('2026-06-30')) AS h1_filings,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-03-31')) AS filings_mar31,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-04-30')) AS filings_apr30,
    (SELECT uniqExact(accession_number) FROM global_markets.stocks_sec_edgar_index WHERE filing_date = toDate('2026-06-30')) AS filings_jun30

205 şirket bu yarıyılda halka açıldı; en büyük Haziran debüsü ayrıntılı kayıt listesi olan bir halka arz dalgası yaşandı. Bu sürece 830 hisse bölünmesi ve 28356 temettü dağıtım olayı eşlik etti. Kıyaslamak gerekirse, bu durum yarıyıl boyunca her işlem gününde bir'den fazla yeni halka arz yapıldığı anlamına geliyor. Başvuru toplamları üçlü bir veri açıklamasını içeriyor: SEC endeksi, son takvim günü hafta içi olan her ay sonunda boş görünmektedir (komşu günlerde binlerce kayıt varken; 31 Mart için 55, 30 Nisan için 34 ve 30 Haziran için 31 başvuruları mevcuttur). Bu nedenle, veri akışı tamamlanana kadar yarıyıl başvuru sayıları olduğundan düşük görünmektedir — ay sonu boşluğu için ilgili tanı notu.

Oturum özeti

SorgulaYarıyılda 123 oturum, piyasa verilerinden doğrulanmıştır
Her verinin arkasındaki tam SQL
SELECT
    (SELECT uniqExact(toDate(toTimeZone(window_start, 'America/New_York'))) FROM global_markets.delayed_stocks_minute_aggs
     WHERE ticker = 'SPY' AND window_start >= toDateTime('2026-01-01 00:00:00') AND window_start < toDateTime('2026-07-01 00:00:00')) AS h1_sessions

Veri notları

Tam veri notları
  • Açık pozisyon verileri 15 Haziran takası ile sınırlıdır; veriler oluşturulduğu an itibarıyla geçerlidir (Haziran sonu verileri beklenmektedir — tam açıklama Haziran özeti içerisinde yer almaktadır; bu yazı veriler geldiğinde güncellenecektir).
  • 2026 yılına ait üç ay sonu bildirim günü boş görünmektedir (31 Mart, 30 Nisan, 30 Haziran — son takvim günü hafta içi olan her yarım yılın ay sonları); sayımlar ile birlikte açıklanmış olup ay sonu boşluk notu içerisinde analiz edilmiştir. Önceki yılın ay sonlarında binlerce bildirim bulunmaktadır, bu nedenle durum bir veri akışı boşluğudur, bildirim tatili değildir.
  • Yarım ölçekli liderlik tablosu sınırlandırılmıştır: altı aylık piyasa geneli taraması, bu sayfanın oluşturduğu sorgu bütçesini aşmaktadır; bu nedenle öne çıkan isimler, metin içinde gösterilen çeyrek ölçekli lider taramasıyla seçilmiştir ve yarım yıl getirileri bu sabit set için hesaplanmıştır — temel dayanak kullanıldığı yerde belirtilmiştir. Q2 ve Haziran özetleri, kendi ölçeklerindeki tam lider tablolarını içermektedir.
  • Yarım ölçekli tüm piyasa yaygınlığı da benzer şekilde sınırlandırılmıştır — günlük bazlı ayrım gösterilmiştir; hisse bazlı sayımlar ay ve çeyrek ölçeklerinde yer almakta olup yaygınlık bölümünde ilişkilendirilmiştir.
  • QQQ geçmiş serisi SPY'dan daha kısadır: fon, belirli bir süre boyunca farklı bir kök sembol altında işlem görmüştür; oturum sayısı koruması bu yılları açıkça kapsam dışı bırakmaktadır (yıllık oturum sayıları tabloda yer almaktadır).
  • Altı opsiyon paneli, tam bant aylık taramalardır ve spread trendi ay başına bir etiketli oturum örneği sunar — her ikisi de toplu işlem yoluyla çalıştırılır; örneklem tabanları metin içinde belirtilmiştir.
  • Mikro yapı, 29 Haziran derin incelemesi içerisinde yer almaktadır.

Metodoloji

  • Dönem 1 Ocak – 30 Haziran 2026 arasını kapsamaktadır — gözlemlenen barlardan doğrulanan 123 oturum. Getiriler, her pencere içinde önce normal saatlerdeki açılış, sonra son normal saatlerdeki kapanış baz alınarak hesaplanmıştır; tüm hesaplamalar gösterilen sorgularla yapılmıştır.
  • Tarihsel karşılaştırmalar, oluşturma anında tam dakikalık geçmişe karşı CANLI olarak yeniden hesaplanır — asla saklanan değerlerden okunmaz. Derinlik doğrulaması: burada kullanılan gecikmeli görünümdeki en eski dakika çubuğu tarihi, yazım aşamasında kontrol edilen temel tablo (Eylül 2003) ile eşleşmektedir; bu nedenle dosyada bulunan ilk tam ilk yarı 2004 yılına aittir. Her geçmiş sorgusu üst sınırını bu dönemin sonuna sabitler (sonraki yıllar sisteme dahil edildiğinde karşılaştırma seti büyüyemez) ve gösterilen yıllık oturum sayılarıyla minimum oturum koruması uygular.
  • Zaman damgaları, ham UTC sınırlarıyla birlikte UTC olarak saklanır. Çok yıllı geçmiş blokları, Doğu saatiyle normal saatleri filtreler (09:30–15:59, satır bazlı dönüştürülmüş — onlarca yıl boyunca geçerli olan tek yaz saati güvenli kural); yalnızca EDT aralıklarındaki tek pencereli bloklar eşdeğer ham-UTC bandını kullanır. Her iki kural da burada belirtilmiştir.
  • Oluşturma işlemi kısıtlanmış salt okunur yol üzerinden yürütülür; halka açık sayfa asla canlı sorgu yapmaz. Veri ambarı durumu 5 Temmuz 2026 itibarıyla geçerlidir.

Bu, düzenli olarak yayınlanan altı aylık özetin ilk baskısıdır; tam yıl baskısı Ocak ayında yayınlanacaktır. Çeyrek detayı: 2026 Q2. Karşılaştırılan makro veriler makro tabloda yer almaktadır.