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

29 जून 2026 मायक्रोस्ट्रक्चर डीप-डाइव्ह

29 जून 2026 चा कच्चा ट्रेड आणि कोट टेप: डिक्शनरी-व्युत्पन्न व्हॉल्यूम सुधारणा, नॅनोसेकंड रिसीट्स, आणि ट्रंकेटेड FINRA फाइल. प्रत्येक आकडा साठवलेल्या क्वेरीचा निकाल आहे.

हे 29 जून 2026 च्या बाजार सारांश चे अंतर्गत सहाय्यक आहे: मिनिट बारच्या खालील कच्चा फीड — एका सामान्य सोमवारच्या सत्रातील 156.1 दशलक्ष वैयक्तिक व्यवहार आणि 505.38 दशलक्ष NBBO कोट अपडेट्स. प्रत्येक आकडा हा साठवलेल्या क्वेरीचा निकाल आहे (कोणतेही पॅनेल विस्तृत करा आणि अचूक SQL पहा), आणि दिवसाच्या दोन फॉरेन्सिक शोधांवर संपूर्ण लेखन आहे: टेपच्या स्वतःच्या कोड डिक्शनरीनुसार आवश्यक असलेले व्हॉल्यूम सुधारणा, आणि एक विक्रेता फाइल जी S अक्षरावर शांतपणे थांबते.

व्यापार टेप, प्रिंट दर प्रिंट

सत्र तपासणी प्रथम येते, कधीही गृहीत धरली जात नाही: एक्सचेंज सुट्टीच्या कॅलेंडरमध्ये 29 जून 2026 साठी 0 पंक्ती आहेत, आणि SPY ने नियमित विंडोमध्ये — न्यूयॉर्क वेळेनुसार सकाळी 9:30 ते दुपारी 4:00 — अगदी 390 मिनिट बार मुद्रित केले. विस्तारित दिवसभरात, एकत्रित टेपने 156.1 दशलक्ष वैयक्तिक व्यवहार नोंदवले.

क्वेरीएका दिवसाचे व्यवहार: सत्र तपासणी आणि प्रत्येक प्रिंटचा आकार
प्रत्येक आकड्यामागील अचूक SQL
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'

सर्व प्रिंट्सपैकी 72.61% हे ऑड लॉट होते — 100 पेक्षा कमी शेअर्सचे व्यवहार — तरीही त्यांनी खालील व्हॉल्यूम-फॉरेन्सिक्स विभागात समायोजित केलेल्या कच्च्या शेअर्सपैकी फक्त 8.79% हलवले. मध्यक प्रिंट 21 शेअर्स होता, जो स्व-पडताळणी ब्रॅकेट प्रोबने मोजला — 19 ते 23 शेअर्सवर संचित मोजणी — जी ब्रॅकेट चुकल्यास 0 परत करते, आणि चुकल्यास पोस्ट धरून ठेवण्यासाठी बद्ध असते. 17.9 दशलक्ष प्रिंट्स अगदी एका शेअरसाठी होत्या आणि 4.73% मध्ये अपूर्णांक आकार होते — हा नमुना किरकोळ अॅप्सनी एका वेळी एक तुकडा टेपवर मारल्याच्या सुसंगत आहे, ज्यामध्ये मार्केट मेकर्स दुसरी बाजू घेत आहेत.

खंड विश्लेषण: शब्दकोशातून "जुळलेले खंड" मिळवणे

प्रत्येक प्रिंटवरील आकार फील्डची बेरीज केल्यास 29 जून 24.79 अब्ज शेअर्सचा व्यापार दिसतो. ही आकडेवारी चुकीची आहे आणि टेप स्वतःच हे सांगते. प्रत्येक प्रिंटमध्ये कंडिशन कोड असतात आणि SIP — सिक्युरिटीज इन्फॉर्मेशन प्रोसेसर जो सर्व वेन्यूज एका प्रवाहात एकत्र करतो — एक शब्दकोश प्रकाशित करतो, जो कोडनुसार सांगतो की एखादी प्रिंट एकत्रित खंड अद्यतनित करते की नाही. काही संदेश हे प्रशासकीय पुनर्प्रसारण असतात ज्यात खंड आधीच एकदा मोजला गेलेला असतो. "ज्ञात" कोडची यादी हार्डकोड करण्याऐवजी, ही पोस्ट शब्दकोशातूनच वगळण्याचा संच मिळवते:

क्वेरीवगळण्याचा संच, टेपच्या स्वतःच्या कोड डिक्शनरीवरून (एक ओळ)
प्रत्येक आकड्यामागील अचूक SQL
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

3 विक्री अटींमध्ये एकत्रित फीडवर updates_volume = false आहे: 15 Market Center Official Close · 16 Market Center Official Open · 38 Corrected Consolidated Close (per listing market). येथे शिकलेला धडा आहे: दैनंदिन सारांशाच्या मागील मसुद्यात कोड 15 आणि 16 हार्डकोड केले होते — प्रत्येक डेटा मार्गदर्शकात नमूद केलेले दोन अधिकृत ओपन/क्लोज संदेश — आणि कोड 38 पूर्णपणे चुकला होता. लक्षात ठेवलेली कोड यादी नव्हे, तर शब्दकोश हा सत्याचा स्रोत आहे.

दोन ब्लॉक हे मुद्दाम आहेत: 156.1-दशलक्ष-पंक्तीच्या स्कॅनमध्ये शब्दकोशावरील स्केलर सबक्वेरी आमच्या 30-सेकंदाच्या मर्यादेपलीकडे जाते. म्हणून वरील ब्लॉक एका ओळीत संच मिळवतो — कोड संख्या आणि आयडी चेकसम (69) वर सॅनिटी-बाउंडेड — आणि खालील ब्लॉक मिळवलेले लिटरल्स लागू करतो. जर शब्दकोश कधीही बदलला, तर चेकसम बाउंड ही पोस्ट पुनरावलोकनासाठी ठेवते; लिटरल्स कधीही शांतपणे जुने होऊ शकत नाहीत.

क्वेरीकच्चा विरुद्ध SIP-गणित खंड, व्युत्पन्न वगळण्याचा संच लागू करून
प्रत्येक आकड्यामागील अचूक SQL
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'

दुरुस्त केलेले लेखांकन: 24.79 अब्ज शेअर्स रॉ, 20.66 अब्ज SIP-मोजलेले, 4.13 अब्ज 91175 प्रशासकीय प्रिंट्समध्ये वगळलेले. एक व्याख्या, अचूकपणे सांगितली: "जुळलेले खंड" म्हणजे SIP च्या स्वतःच्या कंडिशन नियमांनुसार एकत्रित एकूणात मोजले जाणारे खंड — यापेक्षा अधिक काही नाही. आम्ही कोणते व्यवहार आर्थिकदृष्ट्या अर्थपूर्ण होते हे ठरवत नाही आहोत; आम्ही टेपचे स्वतःचे लेखांकन लागू करत आहोत.

सर्वात मोठे प्रिंट्स, उलगडले

दिवसातील सर्वात मोठे प्रिंट्स म्हणजे जिथे कंडिशन कोड हे केवळ क्षुल्लक गोष्टी राहत नाहीत:

क्वेरी२९ जूनच्या सर्वात मोठ्या एकल प्रिंट्स (डिक्शनरी-वगळलेले कोड काढून)
प्रत्येक आकड्यामागील अचूक SQL
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

वरच्या ओळी एक कार्यरत उदाहरण म्हणून वाचा. दिवसातील सर्वात मोठा प्रिंट — 61.69 दशलक्ष CAG (कॉनाग्रा) शेअर्स $13.98 दराने, अंदाजे $862.5 दशलक्ष, 16:04:53 ET वर कोड 8, 41 (8 क्लोजिंग प्रिंट्स, 41 ट्रेड थ्रू एक्झेम्प्ट) सह मुद्रांकित — हा दुपारी 4:00 नंतर प्रकाशित झालेला NYSE क्लोजिंग ऑक्शनचा निकाल आहे. तो व्हॉल्यूममध्ये नेमका एकदाच मोजला जातो. तेच 61.69 दशलक्ष शेअर्स नंतर कोड 15, मार्केट सेंटर ऑफिशियल क्लोज अंतर्गत पुन्हा दिसतात: एक पुनर्अहवाल जो डिक्शनरी वगळते, वर काढलेल्या 4.13 अब्जचा भाग. ती कोड-15 ओळ वरील तक्त्यातून डिझाइननुसार काढून टाकली आहे, म्हणून तिच्या पावतीला स्वतःचा एक स्वस्त एक-ओळीचा पॅनेल मिळतो:

क्वेरीपावती: CAG चे बंद लिलाव आणि त्याचे कोड-१५ पुनर्रिपोर्ट, शेजारी शेजारी
प्रत्येक आकड्यामागील अचूक SQL
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'

CAG वरील 6 ऑफिशियल-क्लोज संदेशांपैकी सर्वात मोठा 61.69 दशलक्ष शेअर्स वाहतो — ऑक्शनचे 61.69 दशलक्ष नेमके (फरक: 0) — एक्सचेंज आयडी 10, स्टॉक्स डिरेक्ट्रीमध्ये NYSE वरून 16:04:53 ET वर मुद्रांकित: लिस्टिंग मार्केट स्वतःचे ऑक्शन पुन्हा सांगत आहे.

उर्वरित CAG ओळी वेगळ्या प्रकारच्या आहेत — कोड 12, 2 (12 फॉर्म टी / विस्तारित तास, 2 सरासरी किंमत व्यापार) अंतर्गत 15.17 दशलक्ष-शेअर प्रिंट आणि कोड 12 अंतर्गत आणखी दोन हे ऑक्शननंतरचे प्रिंट्स आहेत जे FINRA द्वारे अहवालित केले जातात आणि ज्यांच्या अटींमध्ये updates_volume = true आहे. SIP त्यांना वास्तविक प्रिंट्स म्हणून मोजते, आणि आमची जुळलेली आकडेवारी देखील तसेच करते.

इतरत्र, कोड 9 Nasdaq क्लोजिंग क्रॉसेस चिन्हांकित करतो — NVDA चा $3389.5 दशलक्ष क्रॉस हा डॉलर्समध्ये तक्त्यातील सर्वात मोठा प्रिंट आहे — आणि SNAP प्रिंट (53, 41) वरील कोडमध्ये 53, एक पात्र आकस्मिक व्यापार (क्वालिफाइड कंटिंजंट ट्रेड) समाविष्ट आहे.

घड्याळ: दिवसाची दहा मिनिटे स्वतःची

मिनिट-स्तरीय तपशिलात, व्यापाराची फीत जवळजवळ पूर्णपणे सत्राच्या कडांवर केंद्रित होते:

क्वेरीव्यापार टेपचे दहा सर्वात व्यस्त मिनिटे (लाखो प्रिंट्स)
प्रत्येक आकड्यामागील अचूक SQL
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

15:59 ET मिनिटाने 3.98 लाख व्यापार मुद्रित केले — प्रति सेकंद साठ हजारांहून अधिक. उर्वरित अव्वल दहा सुरुवात आणि शेवटच्या जवळ असतात की नाही हे स्वतःच एक-ओळीचे मोजमाप आहे:

क्वेरीदहा सर्वात व्यस्त मिनिटांपैकी किती उघडण्याच्या आणि बंद होण्याच्या वेळेबाहेर पडतात
प्रत्येक आकड्यामागील अचूक SQL
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
)

9 पैकी दहा सुरुवातीच्या दहा मिनिटांत किंवा बंद होण्यापूर्वीच्या शेवटच्या दहा मिनिटांत बसतात. एक अपवाद — 10:15 ET, 0.88 लाख प्रिंट्सचा स्फोट — हा एक खरा मध्य-सकाळचा विसंगती आहे; या डेटावरून त्याचे कारण अज्ञात आहे, आणि आम्ही एक शोध लावणार नाही. तोच घड्याळाचा वेळ खाली परत येतो.

कोट स्ट्रीम: अर्धा अब्ज अपडेट्स

नेशनल बेस्ट बिड अँड ऑफर — प्रत्येक एक्सचेंजवरील सर्वोत्तम खरेदी आणि विक्री किंमत, ज्यातील कोणतीही बदल झाल्यास ती पुन्हा प्रकाशित केली जाते — 29 जून रोजी 505.38 दशलक्ष वेळा अपडेट झाली, तर 156.1 दशलक्ष व्यवहार झाले.

क्वेरीसंपूर्ण NBBO प्रवाह एका ओळीत — QQQ आणि NVDA नावाने पिन केलेले
प्रत्येक आकड्यामागील अचूक SQL
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'

इंडेक्स उत्पादने कोटिंगमध्ये वर्चस्व गाजवतात: केवळ QQQ ने 5.23 दशलक्ष अपडेट्स नोंदवले, तर आम्ही तपासलेल्या सर्वाधिक कोट केलेल्या एकल स्टॉक NVDA साठी 1.8 दशलक्ष अपडेट्स होते — पुढील एकल नावापेक्षा 0.67 दशलक्ष अपडेट्स अधिक. प्रत्येक लिस्टिंगची संपूर्ण प्रति-टिकर जनगणना 30 सेकंदांच्या मर्यादेत बसत नाही, म्हणून खालील लीडरबोर्ड ही तपासलेली संच आहे, संपूर्ण क्रमवारी नाही:

क्वेरीआठ जोरदार कोट केलेल्या टिकरसाठी NBBO कोट अद्यतने (लाखो)
प्रत्येक आकड्यामागील अचूक SQL
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

QQQ ने तपासलेल्या संचामध्ये 5.23 दशलक्ष अपडेट्ससह आघाडी घेतली; यादीत इंडेक्स फंड आणि त्यांचे लिव्हरेज्ड चुलत भाऊ आहेत, घरगुती स्टॉक नाहीत.

SPY सूक्ष्मदर्शकाखाली: नॅनोसेकंद पावत्या आणि दोन प्रकारचा स्प्रेड

क्वेरीSPY सूक्ष्मदर्शकाखाली: नॅनोसेकंद अंतर, दोन प्रकारे स्प्रेड, कोट गुणवत्ता
प्रत्येक आकड्यामागील अचूक SQL
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

SPY चा कोट 3.98 दशलक्ष वेळा फक्त नियमित तासांत बदलला. त्याचा सर्वात व्यस्त सेकंद — 10:15:43 ET, वरील 10:15 मिनिटात चिन्हांकित — मध्ये 1461 अपडेट्स होती. सलग अपडेट्समधील सर्वात लहान अंतर 1375 नॅनोसेकंद होते, मध्यक 245.6 मायक्रोसेकंद होते, आणि 75138 सलग जोड्यांमध्ये एकसारखे नॅनोसेकंद स्टॅम्प होते — नॅनोसेकंद रिझोल्यूशन देखील आधुनिक टेप पूर्णपणे क्रमाने लावू शकत नाही.

हे नॅनोसेकंद बोली-विक्री स्प्रेड मोजण्यासाठी उपयोगी पडतात. प्रत्येक अपडेटला सारखे मोजून, SPY चा सरासरी स्प्रेड 2.72 सेंट होता; प्रत्येक कोट किती वेळ उभा होता याच्या वजनाने, 2.34 सेंट. प्रति-अपडेट आकडा यांत्रिकपणे 0.38 सेंट जास्त वाचतो: अपडेट्स तंतोतंत त्या क्षणांमध्ये केंद्रित होतात जेव्हा स्प्रेड रुंद आणि हलता असतो, तर एक स्थिर ऑर्डर घड्याळाच्या वेळेत जगते. जेव्हा तुम्ही स्प्रेडची आकडेवारी पाहता, तेव्हा कोणत्या घड्याळाने ते मोजले ते विचारा. जनगणना उघड आहे, लपलेली नाही: 1544 नियमित-तास अपडेट्स तात्पुरते क्रॉस झाले (विक्री बोलीच्या खाली, वेगवेगळ्या वेन्यूंच्या कोट्सचा इंटरलीव्हिंग) आणि 0 मध्ये शून्य बोली किंवा विक्री होती; स्प्रेड आकडेवारी दोन्ही वगळते आणि काय वगळते ते मोजते.

स्प्रेडची एक घड्याळ आहे

SPY च्या कोटेड स्प्रेडचे अर्ध्या तासाच्या बकेटमध्ये विभाजन केल्यास मायक्रोस्ट्रक्चर एक वक्र बनते जे कोणताही व्यापारी वापरू शकतो:

क्वेरीSPY चा अर्ध्या तासानुसार मध्यक कोट स्प्रेड, सकाळी ४:०० ते रात्री ८:०० ET
प्रत्येक आकड्यामागील अचूक SQL
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

8 सेंट्सचा मध्य 04:00 ET प्रीमार्केट बकेटमध्ये, 3 सेंट्स 09:30 ओपनिंग बकेटमध्ये, आणि 2 सेंट्स 14:00 पर्यंत — प्रीमार्केट ओपनमध्ये समान शेअरचा व्यापार करण्यासाठी दुपारच्या सुरुवातीच्या ऑर्डरच्या तुलनेत अंदाजे चार पट जास्त स्प्रेड खर्च येतो. स्प्रेड हा स्थिरांक नाही; तो एक वेळापत्रक आहे.

फॉरेन्सिक्स प्रदर्शन: S वर थांबलेली फाईल

प्रत्येक दैनंदिन विक्रेता फाईल प्रकाशित करण्यापूर्वी पूर्णता तपासणी केली जाते: टिकर मोजणे, वर्णमाला विस्तार तपासणे, शेजारच्या फाईल्सची तुलना करणे. 29 जूनची FINRA ऑफ-एक्सचेंज शॉर्ट-व्हॉल्यूम फाईल हे याचे उदाहरण आहे:

क्वेरीपूर्णता तपासणी: FINRA शॉर्ट-व्हॉल्यूम फाइल कव्हरेज, २६-३० जून
प्रत्येक आकड्यामागील अचूक SQL
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

26 जूनच्या फाईलमध्ये 15052 टिकर आहेत, A पासून ZYME पर्यंत. 29 जूनच्या फाईलमध्ये 5489 टिकर आहेत, A पासून SSUS पर्यंत — ती S नावांच्या मध्यभागी थांबते. त्यानंतरचे प्रत्येक टिकर — TSLA सह, ज्यासाठी 29 जूनला 0 पंक्ती आहेत आणि 26 जूनला 1 — गहाळ आहे; 30 जूनपर्यंत फाईल पुन्हा 15362 टिकरवर परत येते. पूर्णता तपासणी ही दररोज एका पंक्तीच्या या पावतीपेक्षा काहीच वेगळी नाही — आकडेवारी प्रकाशित करणे आणि कृत्रिम निकाल प्रकाशित करणे यातील फरक.

त्या स्पष्टीकरणासह — आणि फक्त त्यासह — हे प्रमाण आहे: चिन्हांकित-शॉर्ट व्हॉल्यूम 29 जूनच्या नोंदवलेल्या ऑफ-एक्सचेंज व्हॉल्यूमच्या 45.85% इतके आहे, तर 26 जूनला 46.89% आणि 30 जूनला 48.82% आहे. 29 जूनची आकडेवारी फक्त A-ते-S भाग कव्हर करते, म्हणून ती आंशिक वाचन म्हणून घ्या. जवळपास अर्धा शॉर्ट शेअर हा प्रत्येक शेजारच्या सत्रातील नेहमीचा स्तर आहे — आणि दैनंदिन शॉर्ट व्हॉल्यूम हा शॉर्ट इंटरेस्ट नाही.

डेटा नोंदी

पूर्ण डेटा नोंदी
  • 5 ते 6 मिनिटांचा कोट शांततेचा कालावधी. 17:00 ET च्या अर्ध्या तासात (233 अपडेट्स) SPY चा कोट प्रवाह जवळजवळ थांबतो आणि 18:00 (40608) पर्यंत पुन्हा सुरू होतो — हा क्रॉस-टिकर फीड/सेशन पॅटर्न आहे, गहाळ डेटा नाही.
  • अपूर्णांक शेअर्स सर्वत्र आहेत. 4.73% प्रिंट्समध्ये पूर्णांक नसलेले आकार असतात; व्हॉल्यूम दशांश रूपात बेरीज करावा लागतो.
  • कोड डिक्शनरी प्रकारांमध्ये आयडी पुन्हा वापरते. आयडी 15 ही विक्री अट (मार्केट सेंटर ऑफिशियल क्लोज) तसेच कोट अट (क्लोज) दोन्हीसाठी आहे; येथे प्रत्येक डिक्शनरी क्वेरीमध्ये asset_class = 'stocks' आणि type = 'sale_condition' फिल्टर करते. केवळ आयडी पाहून कोड्स चुकीचे लेबल केले जातात.
  • कोट-गुणवत्ता वगळण्याची मोजणी ओळीत केली जाते. क्रॉस केलेले आणि शून्य-बिड-ऑर-आस्कचे आकडे वरील SPY मायक्रोस्कोप पॅनलमध्ये आहेत; कोणत्याही स्प्रेडच्या आकडेवारीत त्याचे वगळणे लपलेले नाही.
  • एकूण-टेप स्कॅन फक्त बॅच-केवळ पॅनेल आहेत. येथे बाजार-व्यापी ब्लॉक्स थंड कॅशेवर प्रत्येकी अंदाजे 30 सेकंदापर्यंत मोजले गेले (टाईम-आउट झालेला ब्लॉक एकदा पुन्हा प्रयत्न केला जातो; गरम झालेला पास कॅप ओलांडतो); हे लेखनाच्या वेळी गेटेड रीड-ओन्ली पथद्वारे एकदाच चालवले जातात, वाचकांसाठी कधीही लाइव्ह नसतात आणि स्टोअर केलेले परिणाम हे रेकॉर्ड असतात.

पद्धत

  • टाइमस्टॅम्प UTC मध्ये साठवले जातात आणि कच्च्या UTC मर्यादांसह फिल्टर केले जातात (29 जूनचे नियमित तास 13:30 ते 20:00 UTC आहेत); toTimeZone फक्त SELECT सूचीमध्ये दिसते.
  • सत्राचा प्रकार सुट्टीच्या कॅलेंडर आणि पाळलेल्या 390-बार नियमित विंडोच्या विरुद्ध सत्यापित केला जातो — कधीही गृहीत धरला जात नाही.
  • "SIP-मोजलेले (जुळलेले) खंड" म्हणजे SIP च्या स्वतःच्या अटी नियमांनुसार एकत्रित एकूण खंडात मोजले जाणारे खंड; वगळण्याचा संच शब्दकोशातून घेतला जातो, चेकसम-बद्ध असतो, कधीही हार्डकोड केलेला नसतो.
  • प्रति-अपडेट स्प्रेड आकडेवारी प्रत्येक NBBO अपडेटला समान वजन देते; काळ-भारित आकडेवारी प्रत्येक कोटला तो किती वेळ उभा होता त्यानुसार वजन देते. दोन्ही त्यांचे वगळणे उघड करतात.
  • दशांश किंमत/आकार स्तंभ मूळतः बेरीज केले जातात आणि कोणत्याही गुणोत्तर किंवा किंमत-गुणिले-आकार अंकगणितापूर्वी 64-बिट फ्लोटमध्ये रूपांतरित केले जातात.
  • टिक सारण्या कोणत्याही रोलिंग कालबाह्यतेशिवाय संपूर्ण इतिहास राखून ठेवतात; हे साठवलेले, आवृत्तीबद्ध परिणाम शाश्वत रेकॉर्ड आहेत. 3 जुलै 2026 पर्यंतची वेअरहाऊस स्थिती.

वरील प्रत्येक पॅनेल एक साठवलेली वस्तू आहे — चार्ट, सारणी आणि SQL एकत्र. त्यापैकी कोणतेही उघडा, क्वेरी कॉपी करा आणि स्ट्रासमोर टर्मिनलवर पुढे न्या.