Strasmore Research
Deep Dives · Matt ConnorBy Matt Connor · · Updated 2026-07-26

pita dagangan 29 jun 2026 analisis mikro

Analisis teknikal pita dagangan dan sebut harga 29 Jun 2026: pembetulan volum berdasarkan kamus kod pita, resit nanosaat, dan fail FINRA yang terpotong.

Ini adalah panduan teknikal untuk ringkasan pasaran 29 Jun 2026: suapan mentah di sebalik bar minit, 156.1 juta dagangan individu dan 505.38 juta kemas kini sebut harga NBBO dalam satu sesi Isnin biasa. Setiap nombor adalah hasil pertanyaan yang disimpan (kembangkan mana-mana panel untuk SQL tepat), dan dua penemuan forensik hari ini mendapat laporan penuh: pembetulan volum yang dituntut oleh kamus kod pita itu sendiri, dan fail vendor yang secara senyap berhenti pada huruf S.

Pita dagangan, cetakan demi cetakan

Semakan sesi adalah keutamaan, tidak boleh diandaikan: kalendar cuti bursa mengandungi 0 baris untuk 29 Jun 2026, dan SPY mencetak tepat 390 bar minit dalam tetingkap biasa, satu sesi penuh, 9:30 pagi hingga 4:00 petang waktu New York. Sepanjang hari lanjutan, pita yang disatukan merekodkan 156.1 juta dagangan individu.

PertanyaanSatu hari dagangan: semakan sesi dan saiz setiap cetakan
SQL tepat di sebalik setiap nombor
WITH
    (SELECT count() FROM global_markets.stocks_market_holidays WHERE date = '2026-06-29') AS holiday_rows,
    (
        SELECT countIf(window_start >= '2026-06-29 13:30:00' AND window_start < '2026-06-29 20:00:00')
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'SPY' AND window_start >= '2026-06-29 00:00:00' AND window_start < '2026-06-30 00:00:00'
    ) AS spy_bars
SELECT
    holiday_rows AS holiday_rows_jun29,
    spy_bars AS spy_regular_session_bars,
    round(count() / 1e6, 1) AS trades_m,
    round(100.0 * countIf(size < 100) / count(), 2) AS odd_lot_pct_of_trades,
    round(100.0 * toFloat64(sumIf(size, size < 100)) / toFloat64(sum(size)), 2) AS odd_lot_pct_of_shares,
    multiIf(
        countIf(size <= 19) >= 0.5 * count(), 19,
        countIf(size <= 20) >= 0.5 * count(), 20,
        countIf(size <= 21) >= 0.5 * count(), 21,
        countIf(size <= 22) >= 0.5 * count(), 22,
        countIf(size <= 23) >= 0.5 * count(), 23,
        0) AS median_print_shares,
    round(countIf(size = 1) / 1e6, 1) AS one_share_trades_m,
    round(100.0 * countIf(size != round(size)) / count(), 2) AS fractional_pct_of_trades
FROM global_markets.stocks_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
Run this yourself →

72.61% daripada semua cetakan adalah lot ganjil, dagangan kurang daripada 100 saham, namun ia hanya menggerakkan 8.79% daripada saham mentah, jumlah tidak diperbetulkan yang dipotong oleh bahagian forensik volum di bawah. Cetakan median adalah 21 saham, diukur dengan prob kurungan pengesahan sendiri, kiraan kumulatif pada 19 hingga 23 saham, yang mengembalikan 0 jika kurungan terlepas, dan dihadkan supaya kesilapan mengekalkan pos. 17.9 juta cetakan adalah untuk tepat satu saham dan 4.73% membawa saiz pecahan, corak yang konsisten dengan aplikasi runcit yang mengenai pita satu keping pada satu masa, dengan pembuat pasaran mengambil bahagian sebelah yang lain.

Forensik volum: memperoleh "volume padanan" daripada kamus

Jumlahkan medan saiz pada setiap cetakan dan 29 Jun menunjukkan 24.79 bilion saham didagangkan. Angka itu salah, dan pita itu sendiri menyatakannya. Setiap cetakan membawa kod keadaan, dan SIP, Pemproses Maklumat Sekuriti yang menggabungkan setiap venue menjadi satu aliran, menerbitkan kamus yang menyatakan, kod demi kod, sama ada cetakan mengemas kini volum yang disatukan. Sesetengah mesej adalah penyiaran semula pentadbiran bagi volum yang telah dikira sekali. Daripada mengekodkan senarai kod "yang diketahui" secara keras, siaran ini memperoleh set pengecualian daripada kamus itu sendiri:

PertanyaanSet pengecualian, diperoleh daripada kamus kod pita itu sendiri (satu baris)
SQL tepat di sebalik setiap nombor
SELECT
    count() AS excluded_codes,
    sum(id) AS excluded_id_checksum,
    arrayStringConcat(arraySort(groupArray(concat(toString(id), ' ', name))), ' · ') AS codes
FROM global_markets.stocks_condition_codes
WHERE asset_class = 'stocks'
  AND type = 'sale_condition'
  AND JSONExtractBool(update_rules, 'consolidated', 'updates_volume') = 0
Run this yourself →

3 keadaan jualan membawa updates_volume = false pada suapan yang disatukan: 15 Market Center Official Close · 16 Market Center Official Open · 38 Corrected Consolidated Close (per listing market). Berikut adalah pengajaran yang telah dilaksanakan: draf awal ringkasan harian mengekodkan kod 15 dan 16 secara keras, dua mesej buka/tutup rasmi yang disebut dalam setiap panduan data, dan terlepas kod 38 sepenuhnya. Kamus, bukan senarai kod yang diingati, adalah sumber kebenaran.

Dua blok adalah sengaja: subkueri skalar ke atas kamus dalam imbasan 156.1-juta baris melepasi had 30 saat kami. Jadi blok di atas memperoleh set sebagai satu baris, disempadani secara kewarasan pada kiraan kod dan checksum id (69), dan blok di bawah menggunakan literal yang diperoleh. Jika kamus pernah berubah, sempadan checksum memegang siaran ini untuk semakan; literal tidak boleh menjadi usang secara senyap.

PertanyaanVolume mentah berbanding volume yang dikira oleh SIP, menggunakan set pengecualian yang diperoleh
SQL tepat di sebalik setiap nombor
SELECT
    round(toFloat64(sum(size)) / 1e9, 2) AS raw_shares_bn,
    round(toFloat64(sumIf(size, NOT hasAny(conditions, [15, 16, 38]))) / 1e9, 2) AS matched_shares_bn,
    round(toFloat64(sumIf(size, hasAny(conditions, [15, 16, 38]))) / 1e9, 2) AS excluded_shares_bn,
    countIf(hasAny(conditions, [15, 16, 38])) AS excluded_prints
FROM global_markets.stocks_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
Run this yourself →

Akaun yang diperbetulkan: 24.79 bilion saham mentah, 20.66 bilion dikira SIP, 4.13 bilion dikecualikan merentas 91175 cetakan pentadbiran. Satu definisi, dinyatakan dengan tepat: "volume padanan" bermaksud volum yang dikira oleh peraturan keadaan SIP sendiri ke arah jumlah yang disatukan, tidak lebih. Kami tidak menilai perdagangan mana yang bermakna dari segi ekonomi; kami menggunakan perakaunan pita itu sendiri.

Cetakan terbesar, dihuraikan

Cetakan terbesar hari ini adalah di mana kod keadaan tidak lagi menjadi perkara remeh:

PertanyaanCetakan tunggal terbesar pada 29 Jun (kod yang dikecualikan daripada kamus telah dibuang)
SQL tepat di sebalik setiap nombor
SELECT
    ticker,
    formatDateTime(toTimeZone(sip_timestamp, 'America/New_York'), '%H:%i:%S') AS et_time,
    round(toFloat64(size) / 1e6, 2) AS shares_m,
    toFloat64(price) AS price,
    round(toFloat64(size) * toFloat64(price) / 1e6, 1) AS notional_usd_m,
    round(100 * (toFloat64(size) * toFloat64(price)) / max(toFloat64(size) * toFloat64(price)) OVER (), 1) AS pct_of_biggest_dollar_print,
    arrayStringConcat(arrayMap(c -> toString(c), conditions), ', ') AS condition_id
FROM global_markets.stocks_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
  AND size >= 10000000
  AND NOT hasAny(conditions, [15, 16, 38])
ORDER BY size DESC
LIMIT 10
Run this yourself →

Baca baris teratas sebagai contoh kerja. Cetakan terbesar hari ini, 61.69 juta saham CAG (Conagra) pada harga $13.98, kira-kira $862.5 juta, dicop pada 16:04:53 ET di bawah kod 8, 41 (8 Cetakan Penutup, 41 Dagangan Terkecuali), adalah hasil lelongan penutup NYSE yang diterbitkan selepas jam 4:00 petang. Ia dikira dalam jumlah dagangan tepat sekali. 61.69 juta saham yang sama kemudian muncul semula di bawah kod 15, Penutup Rasmi Pusat Pasaran: laporan semula yang dikecualikan oleh kamus, sebahagian daripada 4.13 bilion yang ditanggalkan di atas. Baris kod-15 itu sengaja ditanggalkan daripada jadual di atas, jadi penerimaannya mendapat panel satu baris yang murah sendiri:

PertanyaanResit: lelongan penutup CAG dan laporan semula kod-15nya, secara bersebelahan
SQL tepat di sebalik setiap nombor
SELECT
    round(toFloat64(maxIf(size, has(conditions, 8))) / 1e6, 2) AS auction_print_shares_m,
    round(toFloat64(maxIf(size, has(conditions, 15))) / 1e6, 2) AS official_close_reprint_shares_m,
    round(toFloat64(maxIf(size, has(conditions, 8))) - toFloat64(maxIf(size, has(conditions, 15))), 2) AS share_difference,
    formatDateTime(toTimeZone(argMaxIf(sip_timestamp, size, has(conditions, 15)), 'America/New_York'), '%H:%i:%S') AS reprint_et,
    argMaxIf(exchange, size, has(conditions, 15)) AS reprint_exchange_id,
    countIf(has(conditions, 15)) AS cag_code15_prints
FROM global_markets.stocks_trades
WHERE ticker = 'CAG'
  AND sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
Run this yourself →

Mesej penutup rasmi terbesar daripada 6 pada CAG membawa 61.69 juta saham, tepat 61.69 juta lelongan (perbezaan: 0), dicop pada 16:04:53 ET daripada id bursa 10, NYSE dalam direktori saham: pasaran penyenaraian menyatakan semula lelongannya sendiri.

CAG baris yang lain adalah jenis yang berbeza, cetakan 15.17 juta saham di bawah kod 12, 2 (12 Borang T / waktu lanjutan, 2 Dagangan Harga Purata) dan dua lagi di bawah kod 12 adalah cetakan selepas lelongan yang dilaporkan melalui FINRA yang syaratnya membawa updates_volume = true. SIP mengira ia sebagai cetakan sebenar, begitu juga angka padanan kami.

Di tempat lain, kod 9 menandakan lintasan penutup Nasdaq, lintasan NVDA bernilai $3389.5 juta adalah cetakan terbesar jadual dalam dolar, dan kod pada cetakan SNAP (53, 41) termasuk 53, Dagangan Luar Jangka Layak.

Jam: sepuluh minit milik hari ini

Pada resolusi minit, pita dagangan tertumpu hampir sepenuhnya di pinggir sesi:

PertanyaanSepuluh minit paling sibuk dalam pita dagangan (berjuta-juta cetakan)
SQL tepat di sebalik setiap nombor
SELECT
    formatDateTime(toTimeZone(toStartOfMinute(sip_timestamp), 'America/New_York'), '%H:%i') AS et_minute,
    round(count() / 1e6, 2) AS trades_m
FROM global_markets.stocks_trades
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
GROUP BY et_minute
ORDER BY trades_m DESC
LIMIT 10
Run this yourself →

Minit 15:59 ET mencetak 3.98 juta dagangan, lebih enam puluh ribu sesaat. Sama ada baki sepuluh teratas terletak di pembukaan dan penutupan adalah satu ukuran baris tunggal:

PertanyaanBerapa daripada sepuluh minit paling sibuk berada di luar pembukaan dan penutupan
SQL tepat di sebalik setiap nombor
SELECT
    countIf(NOT (et_minute BETWEEN '09:30' AND '09:39' OR et_minute BETWEEN '15:50' AND '16:00')) AS entries_outside_open_close,
    countIf(et_minute BETWEEN '09:30' AND '09:39' OR et_minute BETWEEN '15:50' AND '16:00') AS entries_in_open_close,
    maxIf(et_minute, NOT (et_minute BETWEEN '09:30' AND '09:39' OR et_minute BETWEEN '15:50' AND '16:00')) AS outside_entry_minute,
    maxIf(trades_m, NOT (et_minute BETWEEN '09:30' AND '09:39' OR et_minute BETWEEN '15:50' AND '16:00')) AS outside_entry_trades_m
FROM (
    SELECT
        formatDateTime(toTimeZone(toStartOfMinute(sip_timestamp), 'America/New_York'), '%H:%i') AS et_minute,
        round(count() / 1e6, 2) AS trades_m
    FROM global_markets.stocks_trades
    WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
    GROUP BY et_minute
    ORDER BY trades_m DESC
    LIMIT 10
)
Run this yourself →

9 daripada sepuluh teratas berada dalam sepuluh minit pertama pembukaan atau sepuluh minit terakhir sebelum penutupan. Satu pengecualian, 10:15 ET, satu ledakan 0.88 juta cetakan, adalah anomali pertengahan pagi yang tulen; puncanya tidak diketahui daripada data ini, dan kami tidak akan mereka-reka satu. Waktu jam yang sama kembali di bawah.

Aliran sebut harga: setengah bilion kemas kini

Tawaran dan Permintaan Terbaik Kebangsaan, harga beli dan jual terbaik di semua bursa, diterbitkan semula setiap kali salah satu daripadanya berubah, dikemas kini 505.38 juta kali pada 29 Jun, berbanding 156.1 juta dagangan.

PertanyaanKeseluruhan aliran NBBO dalam satu baris: QQQ dan NVDA dipinkan mengikut nama
SQL tepat di sebalik setiap nombor
WITH
    (
        SELECT (round(countIf(ticker = 'QQQ') / 1e6, 2), round(countIf(ticker = 'NVDA') / 1e6, 2),
                round(countIf(ticker = 'AAPL') / 1e6, 2), round(countIf(ticker = 'TSLA') / 1e6, 2))
        FROM global_markets.cache_stocks_quotes
        WHERE ticker IN ('QQQ', 'NVDA', 'AAPL', 'TSLA')
          AND sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
    ) AS pinned
SELECT
    round(count() / 1e6, 2) AS updates_m,
    pinned.1 AS qqq_updates_m,
    pinned.2 AS nvda_updates_m,
    round(pinned.1 - pinned.2, 2) AS qqq_minus_nvda_updates_m,
    round(pinned.2 - greatest(pinned.3, pinned.4), 2) AS nvda_minus_next_single_m
FROM global_markets.cache_stocks_quotes
WHERE sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
Run this yourself →

Produk indeks mendominasi sebut harga: QQQ sahaja mencatat 5.23 juta kemas kini berbanding 1.8 juta untuk NVDA, saham tunggal paling banyak disebut yang kami periksa, 0.67 juta kemas kini di hadapan nama tunggal seterusnya. Bancian penuh setiap ticker bagi semua penyenaraian tidak muat dalam had 30 saat, jadi papan pendahulu di bawah adalah set yang diperiksa, bukan kedudukan menyeluruh:

PertanyaanKemas kini sebut harga NBBO untuk lapan ticker yang banyak disebut (berjuta-juta)
SQL tepat di sebalik setiap nombor
SELECT ticker, round(count() / 1e6, 2) AS updates_m
FROM global_markets.cache_stocks_quotes
WHERE ticker IN ('QQQ', 'SPY', 'TQQQ', 'IWM', 'SQQQ', 'NVDA', 'AAPL', 'TSLA')
  AND sip_timestamp >= '2026-06-29 00:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
GROUP BY ticker
ORDER BY updates_m DESC
Run this yourself →

QQQ mendahului set yang diperiksa dengan 5.23 juta kemas kini; bahagian atas papan didominasi oleh dana indeks dan sepupu leverage mereka, bukan saham isi rumah.

SPY di bawah mikroskop: resit nanosaat, dan spread dua arah

PertanyaanSPY di bawah mikroskop: jurang nanosaat, sebaran dua arah, kualiti sebut harga
SQL tepat di sebalik setiap nombor
WITH
    (
        SELECT (formatDateTime(toTimeZone(toStartOfSecond(sip_timestamp), 'America/New_York'), '%H:%i:%S'), count())
        FROM global_markets.cache_stocks_quotes
        WHERE ticker = 'SPY' AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 20:00:00'
        GROUP BY toStartOfSecond(sip_timestamp)
        ORDER BY count() DESC, toStartOfSecond(sip_timestamp) ASC
        LIMIT 1
    ) AS busiest_sec,
    ordered AS (
        SELECT
            toFloat64(ask_price - bid_price) AS spread,
            bid_price,
            ask_price,
            toFloat64(sip_timestamp - lagInFrame(sip_timestamp) OVER (ORDER BY sip_timestamp, sequence_number)) AS gap_s,
            greatest(toFloat64(least(leadInFrame(sip_timestamp, 1, toDateTime64('2026-06-29 20:00:00', 9)) OVER (ORDER BY sip_timestamp, sequence_number ROWS BETWEEN CURRENT ROW AND 1 FOLLOWING), toDateTime64('2026-06-29 20:00:00', 9)) - sip_timestamp), 0) AS dwell_s,
            rowNumberInAllBlocks() AS rn
        FROM global_markets.cache_stocks_quotes
        WHERE ticker = 'SPY' AND sip_timestamp >= '2026-06-29 13:30:00' AND sip_timestamp < '2026-06-29 20:00:00'
    )
SELECT
    round(count() / 1e6, 2) AS spy_updates_m,
    busiest_sec.1 AS busiest_second_et,
    toUInt8(startsWith(busiest_sec.1, '10:15')) AS busiest_second_in_1015,
    busiest_sec.2 AS busiest_second_updates,
    round(minIf(gap_s, rn > 0 AND gap_s > 0) * 1e9) AS min_gap_between_updates_ns,
    round(quantileExactIf(0.5)(gap_s, rn > 0) * 1e6, 1) AS median_gap_us,
    countIf(rn > 0 AND gap_s = 0) AS identical_timestamp_pairs,
    round(sumIf(spread * dwell_s, bid_price > 0 AND ask_price >= bid_price) / sumIf(dwell_s, bid_price > 0 AND ask_price >= bid_price) * 100, 2) AS time_weighted_avg_spread_cents,
    round(avgIf(spread, bid_price > 0 AND ask_price >= bid_price) * 100, 2) AS per_update_avg_spread_cents,
    round((avgIf(spread, bid_price > 0 AND ask_price >= bid_price) - sumIf(spread * dwell_s, bid_price > 0 AND ask_price >= bid_price) / sumIf(dwell_s, bid_price > 0 AND ask_price >= bid_price)) * 100, 2) AS per_update_premium_cents,
    countIf(bid_price > 0 AND ask_price > 0 AND ask_price < bid_price) AS crossed_updates,
    countIf(bid_price <= 0 OR ask_price <= 0) AS zero_bid_or_ask_updates
FROM ordered
Run this yourself →

Petikan SPY berubah sebanyak 3.98 juta kali dalam waktu dagangan biasa sahaja. Saat paling sibuknya, 10:15:43 ET, dalam minit 10:15 yang ditandakan di atas, membawa 1461 kemas kini. Jurang terkecil antara kemas kini berturut-turut ialah 1375 nanosaat, median 245.6 mikrosaat, dan 75138 pasangan berturut-turut membawa cap nanosaat yang sama, malah resolusi nanosaat tidak dapat mengatur sepenuhnya pita moden.

Nanosaat tersebut berguna untuk mengukur sebaran bida-tanya. Mengira setiap kemas kini secara sama rata, purata spread SPY ialah 2.72 sen; memberatkan setiap petikan mengikut tempoh ia berada, 2.34 sen. Angka per-kemas kini secara mekanikal lebih luas sebanyak 0.38 sen: kemas kini tertumpu tepat pada saat spread lebar dan bergerak, manakala pesanan rehat hidup dalam masa jam. Setiap kali anda melihat statistik spread, tanya jam mana yang mengukurnya. Bancian didedahkan, bukan disembunyikan: 1544 kemas kini waktu dagangan biasa terlintas seketika (tanya di bawah bida, selitan petikan dari tempat berbeza) dan 0 membawa bida atau tanya sifar; statistik spread mengecualikan kedua-duanya dan mengira apa yang dikecualikan.

Sebaran ada waktunya

Mengelompokkan sebaran sebut harga SPY mengikut setiap setengah jam menjadikan mikrostruktur sebagai lengkung yang boleh digunakan oleh mana-mana pedagang:

PertanyaanMedian sebaran sebut harga SPY mengikut setengah jam, 4:00 pagi hingga 8:00 malam ET
SQL tepat di sebalik setiap nombor
SELECT
    formatDateTime(toTimeZone(toStartOfInterval(sip_timestamp, INTERVAL 30 MINUTE), 'America/New_York'), '%H:%i') AS et_time,
    round(quantileExactIf(0.5)(toFloat64(ask_price - bid_price), bid_price > 0 AND ask_price >= bid_price) * 100, 1) AS median_spread_cents,
    count() AS quote_updates
FROM global_markets.cache_stocks_quotes
WHERE ticker = 'SPY' AND sip_timestamp >= '2026-06-29 08:00:00' AND sip_timestamp < '2026-06-30 00:00:00'
GROUP BY et_time
ORDER BY et_time
Run this yourself →

Median 8 sen dalam kelompok prapasaran 04:00 ET, 3 sen dalam kelompok pembukaan 09:30, dan 2 sen menjelang 14:00, berdagang saham yang sama pada pembukaan prapasaran menelan kos sebaran kira-kira empat kali ganda berbanding pesanan awal tengah hari. Sebaran bukanlah pemalar; ia adalah jadual.

Pameran forensik: fail yang terhenti di S

Setiap fail vendor harian menjalani pemeriksaan kesempurnaan sebelum kami menerbitkan sebarang angka daripadanya: kirakan ticker, periksa julat abjad, bandingkan jiran. Fail volum pendek luar bursa FINRA pada 29 Jun adalah bukti mengapa:

PertanyaanSiasatan kelengkapan: liputan fail volume pendek FINRA, 26-30 Jun
SQL tepat di sebalik setiap nombor
SELECT
    date,
    uniqExact(ticker) AS tickers,
    min(ticker) AS first_ticker,
    max(ticker) AS last_ticker,
    countIf(ticker = 'TSLA') AS tsla_rows,
    round(100 * sum(short_volume) / sum(total_volume), 2) AS short_pct_of_reported
FROM global_markets.stocks_short_volume
WHERE date BETWEEN '2026-06-26' AND '2026-06-30'
GROUP BY date
ORDER BY date
Run this yourself →

Fail 26 Jun merangkumi 15052 ticker, A hingga ZYME. Fail 29 Jun merangkumi 5489 ticker, A hingga SSUS, ia hanya terhenti di tengah-tengah nama S. Setiap ticker secara abjad selepas titik itu, termasuk TSLA, pada 0 baris untuk 29 Jun berbanding 1 pada 26 Jun, hilang; menjelang 30 Jun fail kembali kepada 15362 ticker. Pemeriksaan kesempurnaan tidak lebih rumit daripada resit satu baris sehari ini, perbezaan antara menerbitkan statistik dan menerbitkan artifak.

Dengan pendedahan itu disertakan, dan hanya dengannya, inilah nisbahnya: volum pendek bertanda dikira sebagai 45.85% daripada volum luar bursa yang dilaporkan pada 29 Jun, bersama 46.89% pada 26 Jun dan 48.82% pada 30 Jun. Angka 29 Jun hanya merangkumi bahagian A-ke-S, jadi anggaplah ia sebagai bacaan separa. Hampir separuh saham pendek adalah tahap rutin yang ditunjukkan oleh setiap sesi jiran, dan volum pendek harian bukanlah faedah pendek.

Nota data

Nota data penuh
  • Keheningan sebut harga jam 5-6 petang. Aliran sebut harga SPY hampir terhenti dalam setengah jam 17:00 ET (233 kemas kini) dan kembali aktif menjelang 18:00 (40608), iaitu corak suapan/sesi merentas ticker, bukan data yang hilang.
  • Saham pecahan ada di mana-mana. 4.73% daripada cetakan membawa saiz bukan integer; jumlah volum mesti dijumlahkan sebagai perpuluhan.
  • Kamus kod menggunakan semula ID merentas jenis. ID 15 adalah kedua-dua syarat jualan (Tutup Rasmi Pusat Pasaran) dan syarat sebut harga (Tutup); setiap pertanyaan kamus di sini menapis asset_class = 'stocks' AND type = 'sale_condition'. Carian kosong mengikut ID akan tersalah label kod.
  • Pengecualian kualiti sebut harga dikira dalam baris. Kiraan sebut harga bersilang dan bida/tawaran sifar terletak dalam panel mikroskop SPY di atas; tiada statistik spread yang menyembunyikan gugurannya.
  • Imbasan pita penuh hanyalah panel kelompok. Blok seluruh pasaran di sini diukur sehingga kira-kira 30 saat setiap satu pada cache sejuk (blok yang tamat masa dicuba semula sekali; laluan yang dipanaskan melepasi had); ia dijalankan sekali pada masa penulisan melalui laluan baca sahaja yang terhad, tidak pernah secara langsung untuk pembaca, dan hasil yang disimpan adalah rekod.

Metodologi

  • Cap masa disimpan dalam UTC dan ditapis dengan sempadan UTC mentah (waktu biasa pada 29 Jun ialah 13:30 hingga 20:00 UTC); toTimeZone hanya muncul dalam senarai SELECT.
  • Jenis sesi disahkan terhadap kalendar cuti dan tetingkap biasa 390 bar yang diperhatikan, tidak pernah diandaikan.
  • "Isipadu yang dikira SIP (dipadankan)" ialah isipadu yang dikira oleh peraturan keadaan SIP sendiri ke arah jumlah terkumpul; set pengecualian diperoleh daripada kamus, terikat semakan jumlah, tidak pernah dikodkan secara keras.
  • Statistik sebaran setiap kemas kini menimbang setiap kemas kini NBBO secara sama rata; statistik berwajaran masa menimbang setiap sebut harga berdasarkan tempoh ia kekal. Kedua-duanya mendedahkan pengecualian mereka.
  • Lajur harga/saiz perpuluhan dijumlahkan secara asli dan dilemparkan kepada apungan 64-bit sebelum sebarang aritmetik nisbah atau harga-kali-saiz.
  • Jadual tick mengekalkan sejarah penuh tanpa tamat tempoh bergulir; hasil yang distor dan berversi ini adalah rekod tahan lama tanpa mengira keadaan. Status gudang data pada 3 Julai 2026.

Setiap panel di atas ialah satu objek storan, carta, jadual, dan SQL bersama-sama. Buka mana-mana daripadanya, salin pertanyaan, dan teruskan di terminal Strasmore.