علت تأخیر در انتشار دادههای short interest
دادههای فروش استقراضی به دلیل چرخه گزارشدهی FINRA و تاریخهای تسویه، با تأخیر دو هفتهای منتشر میشوند. بررسی چرخه زمانی و تأثیر آن بر بازار.
دادههای مربوط به میزان فروش استقراضی (short interest) همواره به دلیل یک علت ساختاری قدیمی هستند: این دادهها بهصورت لحظهای بهروزرسانی نمیشوند. کارگزاران تعداد سهام فروش رفته در حسابهای خود را در تاریخهای تسویه مقرر توسط FINRA — یعنی دو بار در ماه، اواسط ماه و پایان ماه — ثبت میکنند. سپس این مجموعها را به FINRA گزارش میدهند. FINRA نیز گزارشهای تمامی شرکتهای عضو را جمعآوری کرده و مجموع آنها را تقریباً هشت روز کاری بعد منتشر میکند. با در نظر گرفتن مراحل انتقال داده از تامینکننده و پایگاه داده تا صفحه نمایش شما، تازهترین عدد فروش استقراضی موجود در هر روز، وضعیت موقعیتگیری بازار را در یک تا چهار هفته قبل نشان میدهد. این صفحه به جای ادعای دقت لحظهای، این فاصله زمانی را اندازهگیری میکند.
علت واقعی تأخیر در گزارشدهی
این چرخه شامل چهار مرحله است و هر مرحله چندین روز به زمان اضافه میکند.
- تاریخ تسویه. FINRA جدول تاریخهای تسویه را منتشر میکند؛ یک تاریخ در اواسط ماه و دیگری در پایان ماه. در هر یک از این تاریخها، هر کارگزار-معاملهگر، مجموع موقعیتهای فروش باز در حسابهای مشتریان و حسابهای خود را ثبت میکند. اینها تاریخهای تسویه هستند، نه تاریخهای معامله: در سیستم تسویه T+1، معاملهای که در روز دوشنبه انجام شده، در روز سهشنبه تسویه میشود؛ بنابراین موقعیتهایی که در تاریخ تسویه محاسبه میشوند، مربوط به معاملاتی هستند که تا آن زمان تسویه شدهاند.
- مهلت گزارشدهی. هر شرکت عضو، مجموع فروشهای باز هر اوراق بهادار را ظرف چند روز کاری آینده نزد FINRA ثبت میکند. در این مرحله هیچ اطلاعاتی عمومی نیست؛ این یک ثبت نظارتی است، نه یک فید دادههای بازار.
- تجمیع. FINRA هزاران گزارش سطح شرکت را برای هر اوراق بهادار جمعآوری کرده و یک فایل واحد ایجاد میکند: یک عدد واحد برای هر اوراق بهادار در هر تاریخ تسویه؛ بدون جزئیات مربوط به معاملات درونروز، بدون جزئیات مربوط به محل معامله و بدون تفکیک به ازای هر شرکت.
- انتشار. این فایل تقریباً هشت روز کاری پس از تاریخ تسویه مربوطه، عمومی میشود. سپس ارائهدهندگان داده آن را دریافت میکنند، بورسها آن را بازنشر میکنند و انبار دادههایی مانند آنچه پشت این صفحه است، آن را جذب میکنند.
هیچکس عامل پنهان این اعداد نیست. تأخیر حاصل مجموع بازه جمعآوری، بازه تجمیع و مراحل توزیع است؛ هر مرحله یک فرآیند دستهای بر اساس تقویم است، نه یک جریان لحظهای.
فاصله زمانی (Lag) بر حسب روز چقدر است؟
در اینجا تمامی تاریخهای تسویه که این انبار به صورت زنده و افزایشی دریافت کرده است، آورده شده است؛ در یک سمت تاریخ تسویه و در سمت دیگر، روزی که سطرها برای نخستین بار در اینجا ظاهر شدهاند.
کد دقیق SQL پشت هر عدد
WITH first_arrival AS (
SELECT settlement_date,
toDate(min(_ingest_time)) AS arrived
FROM global_markets.stocks_short_interest
GROUP BY settlement_date
),
bulk_days AS (
SELECT arrived
FROM first_arrival
GROUP BY arrived
HAVING count() > 5
)
SELECT settlement_date,
toString(arrived) AS arrived_here,
dateDiff('day', settlement_date, arrived) AS publication_lag_days
FROM first_arrival
WHERE arrived NOT IN (SELECT arrived FROM bulk_days)
ORDER BY settlement_dateآخرین تسویه ثبتشده، یعنی 2026-06-30، در تاریخ 2026-07-11 به اینجا رسید که 11 روز با ثبت موقعیتهای مربوطه فاصله داشت. مورد قبلی 16 روز زمان برد. در کل این سری، این فاصله به صورت یک باند متغیر است، نه یک مقدار ثابت:
کد دقیق SQL پشت هر عدد
WITH first_arrival AS (
SELECT settlement_date,
toDate(min(_ingest_time)) AS arrived
FROM global_markets.stocks_short_interest
GROUP BY settlement_date
),
bulk_days AS (
SELECT arrived
FROM first_arrival
GROUP BY arrived
HAVING count() > 5
),
organic AS (
SELECT settlement_date,
dateDiff('day', settlement_date, arrived) AS lag
FROM first_arrival
WHERE arrived NOT IN (SELECT arrived FROM bulk_days)
)
SELECT count() AS settlements_measured,
min(lag) AS fastest_lag_days,
round(quantileDeterministic(0.5)(lag, cityHash64(settlement_date)), 1) AS median_lag_days,
max(lag) AS slowest_lag_days,
(SELECT count() FROM first_arrival WHERE arrived IN (SELECT arrived FROM bulk_days)) AS settlements_bulk_loaded,
(SELECT toString(max(arrived)) FROM bulk_days) AS bulk_load_date
FROM organicدر طول 8 تسویه با تحویل افزایشی، سریعترین ثبت در 10 روز پس از تاریخ تسویه انجام شد و کندترین مورد 26 روز زمان برد؛ میانه این دوره 14 روز است — همان مفهوم «دو هفته قدیمی» در عنوان، که به جای فرض کردن، اندازهگیری شده است.
به مواردی که این پرسوجوها شامل نمیشوند توجه کنید. تاریخچه یک انبار، ثبتکننده سرعت انتشار نیست: در تاریخ 2026-03-16، این پایگاه داده 197 تسویه را به صورت همزمان و در قالب یک بارگذاری مجدد (backfill) واحد در آرشیو بارگذاری کرد. برچسبهای زمانی ورود در آن سطرها، مربوط به زمان بارگذاری هستند، نه زمان افشا؛ بنابراین هرگونه «فاصله زمانی» محاسبهشده از آنها، ناشی از برنامه بارگذاری ماست. تنها تسویههایی که یکی پس از دیگری و پس از استقرار آرشیو دریافت شدهاند، جریان واقعی را اندازهگیری میکنند — اینها همان سطرهای بالا هستند.
وضعیت فعلی چرخه
تأخیر در انتشار دادهها، بیش از هر چیز در خودِ شکاف زمانی مشهود است: در هر لحظه، یک تاریخ تسویه وجود دارد که قبلاً انجام شده اما هنوز منتشر نشده است. این پنل، گزارش لحظهای است.
کد دقیق SQL پشت هر عدد
WITH (SELECT max(settlement_date) FROM global_markets.stocks_short_interest) AS latest
SELECT toString(latest) AS latest_settlement_on_file,
(SELECT count() FROM global_markets.stocks_short_interest
WHERE settlement_date = latest) AS securities_in_that_print,
(SELECT dateDiff('day', latest, toDate(min(_ingest_time))) FROM global_markets.stocks_short_interest
WHERE settlement_date = latest) AS its_publication_lag_days,
(SELECT count() FROM global_markets.stocks_short_interest
WHERE settlement_date > latest AND settlement_date <= latest + 16) AS next_settlement_rows_on_file,
(SELECT count(DISTINCT date) FROM global_markets.stocks_short_volume
WHERE date > latest) AS daily_short_volume_files_since,
(SELECT dateDiff('day', latest, max(date)) FROM global_markets.stocks_short_volume) AS days_from_settlement_to_newest_daily_fileجدیدترین گزارش ثبتشده از میزان فروش استقرازی (short interest)، مربوط به تسویه 2026-06-30 است که شامل 22207 اوراق بهادار بوده و 11 روز پس از وقوع، تحویل شده است. مرحله بعدی تسویه در این چرخه شامل 0 سطر است: این داده هنوز منتشر نشده و با توجه به تأخیرهای اندازهگیری شده در بالا، این وضعیت کاملاً عادی است. این ستون عمداً روی صفر محدود شده است. به محض انتشار دادهها، این محدودیت برداشته میشود و به جای نمایش اطلاعات قدیمی، صفحه برای بهروزرسانی متوقف میشود؛ این همان مکانیزم مشابهی است که در خلاصهی ماه ژوئن با یک چرخه تأخیر بیشتر، استفاده شده بود.
در همین حال، فایل حجم معاملات استقرازی روزانه، از آن تاریخ تسویه، 12 بار منتشر شده است؛ جدیدترین روز آن 17 روز از جدیدترین تصویر از میزان فروش استقرازی جلوتر است. دو مجموعه داده FINRA، با دو زمانبندی متفاوت.
نوسانات در فاصله زمانی انتشار دادهها
تأخیر زمانی تنها زمانی اهمیت دارد که قیمتها در این بازه تغییر کنند. این اتفاق رخ میدهد. این پنل آخرین قیمت تسویه را در نظر میگیرد و سپس قیمت بستهشدن در جلسه عادی هر نماد را در تاریخ تسویه، با قیمت بستهشدن در روز رسیدن فایل مقایسه میکند.
کد دقیق SQL پشت هر عدد
WITH latest AS (SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest),
arrived AS (
SELECT toDate(min(_ingest_time)) AS a
FROM global_markets.stocks_short_interest
WHERE settlement_date = (SELECT d FROM latest)
),
daily AS (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS session,
argMax(toFloat64(close), window_start) AS rth_close
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'TSLA', 'NVDA', 'GME', 'MU')
AND toDate(toTimeZone(window_start, 'America/New_York')) >= (SELECT d FROM latest)
AND toDate(toTimeZone(window_start, 'America/New_York')) <= (SELECT a FROM arrived)
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) BETWEEN 570 AND 959
GROUP BY ticker, session
)
SELECT si.ticker AS ticker,
round(si.short_interest / 1e6, 1) AS shares_short_m,
round(argMin(d.rth_close, d.session), 2) AS close_at_settlement,
round(argMax(d.rth_close, d.session), 2) AS close_when_published,
round((argMax(d.rth_close, d.session) / argMin(d.rth_close, d.session) - 1) * 100, 1) AS move_while_pending_pct,
count() AS sessions_in_window
FROM global_markets.stocks_short_interest AS si
INNER JOIN daily AS d ON d.ticker = si.ticker
WHERE si.settlement_date = (SELECT d FROM latest)
GROUP BY si.ticker, si.short_interest
ORDER BY abs(move_while_pending_pct) DESC, si.ticker ASCاین بازه شامل 8 جلسه معاملاتی بود. بیشترین نوسان در میان پنج مورد مربوط به MU بود که قیمت آن از 1151.01 دلار در زمان بستهشدن تسویه به 978.69 دلار در روز انتشار دادههای Short Interest رسید؛ یعنی تغییرات -15% در دورهای که طبق تعریف، میزان پوزیشنهای Short در آن روی 31.7 میلیون سهم ثابت بود. کمترین نوسان مربوط به GME بود که با این حال -1.9% تغییر داشت.
محتوای کاربردی این تأخیر زمانی در همین است. هر تیتر خبری که «Short Interest در X» را گزارش میدهد، وضعیت را در آخرین تسویه توصیف میکند؛ تمام تغییرات در بازه زمانی فوق در آن دیده نمیشوند. پوزیشنهای Short ممکن است در روند صعودی پوشش داده شده باشند یا در روند نزولی اضافه شده باشند؛ این عدد نمیتواند علت را مشخص کند و تا انتشار دادههای بعدی نیز قادر به اعلام آن نخواهد بود.
روزهای پوشش معاملات، محاسبه شده با صورت کسر قدیمی
روزهای پوشش معاملات — نسبت سهام فروش استقراضی به میانگین حجم معاملات روزانه — شاخصی است که اکثر خوانندگان با آن مواجه میشوند و دو مرحله دچار قدیمی بودن دادهها میشود: صورت کسر در تاریخ تسویه ثابت میماند و مخرج کسر (حجم معاملات) نیز توسط خود فایل، هفتهها پیش محاسبه شده است. GameStop واضحترین نمونه در این زمینه است، زیرا هم یک نام شناختهشده است و هم یکی از پرحجمترین tickers در بازار.
کد دقیق SQL پشت هر عدد
WITH latest AS (SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest),
arrived AS (
SELECT toDate(min(_ingest_time)) AS a
FROM global_markets.stocks_short_interest
WHERE settlement_date = (SELECT d FROM latest)
),
tape AS (
SELECT count(DISTINCT toDate(toTimeZone(window_start, 'America/New_York'))) AS sessions,
sum(toFloat64(volume)) AS shares
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'GME'
AND toDate(toTimeZone(window_start, 'America/New_York')) > (SELECT d FROM latest)
AND toDate(toTimeZone(window_start, 'America/New_York')) <= (SELECT a FROM arrived)
AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York')) BETWEEN 570 AND 959
)
SELECT toString((SELECT d FROM latest)) AS settlement,
round(si.short_interest / 1e6, 1) AS shares_short_m,
round(si.avg_daily_volume / 1e6, 2) AS file_adv_m,
round(si.days_to_cover, 2) AS reported_days_to_cover,
round(tape.shares / tape.sessions / 1e6, 2) AS tape_adv_since_settlement_m,
round(si.short_interest / (tape.shares / tape.sessions), 2) AS days_to_cover_on_recent_volume,
round(abs(si.short_interest / (tape.shares / tape.sessions) - si.days_to_cover), 2) AS days_of_difference,
tape.sessions AS sessions_measured
FROM global_markets.stocks_short_interest AS si, tape
WHERE si.ticker = 'GME'
AND si.settlement_date = (SELECT d FROM latest)ردیف را از چپ به راست بخوانید. در تسویه 2026-06-30، میزان سهام فروش استقراضی GameStop معادل 55.9 میلیون سهم بود. این فایل، این مقدار را با میانگین حجم معاملات روزانه به میزان 5.2 میلیون سهم جفت میکند و 10.75 روز برای پوشش معاملات را گزارش میدهد — یعنی همان عددی که یک اسکنر بازار به شما نشان میدهد.
حالا مخرج کسر را با واقعیت جایگزین کنید. در طول 7 جلسه معاملاتی عادی که در حین آمادهسازی این گزارش انجام شد، میانگین معاملات روزانه GameStop در تابلوی یکپارچه، 3.09 میلیون سهم بود. همان موقعیت فروش استقراضی با این حجم معاملات، معادل 18.08 روز خواهد بود — یعنی 7.33 روز کمتر از نسبت منتشر شده، در حالی که صورت کسر بدون تغییر باقی مانده است. تنها فرض مربوط به حجم معاملات تغییر کرد. روزهای پوشش معاملات را به عنوان یک نسبت قدیمی که از دو داده قدیمی ساخته شده در نظر بگیرید، نه یک معیار لحظهای برای تعیین مدت زمان خروج از بازار.
Short squeezes: جایی که تأخیر در انتشار دادهها آسیب میزند
دلیل اصلی جستجوی این پرسش توسط اکثر افراد، پدیده squeeze است. در یک squeeze، تمرکز اصلی بر موقعیتهای فروش است (short position)؛ و این دقیقاً همان مقداری است که هیچکس نمیتواند در لحظه مشاهده کند. مورد GameStop در اوایل سال 2021، نمونهای کلاسیک از این وضعیت است. ستونهای زیر، قیمت بستهشدن در جلسات عادی هر تسویه را در کنار قیمت بستهشدن هشت جلسه معاملاتی بعد از آن نشان میدهند؛ این بازه زمانی جایگزین هدف انتشار دادههای FINRA که تقریباً هشت روز کاری است، در نظر گرفته شده است.
کد دقیق SQL پشت هر عدد
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session,
argMax(toFloat64(close), window_start) AS cl
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'GME'
AND window_start >= toDateTime('2020-12-01 00:00:00')
AND window_start < toDateTime('2021-03-15 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 session
),
ranked AS (
SELECT session, cl, row_number() OVER (ORDER BY session) AS n
FROM daily
)
SELECT toString(si.settlement_date) AS settlement,
round(si.short_interest / 1e6, 1) AS shares_short_m,
round(r0.cl, 2) AS close_at_settlement,
round(r8.cl, 2) AS close_8_sessions_later,
round((r8.cl / r0.cl - 1) * 100, 1) AS move_while_pending_pct
FROM global_markets.stocks_short_interest AS si
INNER JOIN ranked AS r0 ON r0.session = si.settlement_date
INNER JOIN ranked AS r8 ON r8.n = r0.n + 8
WHERE si.ticker = 'GME'
AND si.settlement_date >= toDate('2020-12-15')
AND si.settlement_date <= toDate('2021-02-26')
ORDER BY si.settlement_dateتسویه 2021-01-15 را دنبال کنید. این تسویه میزان 61.8 میلیون سهم در موقعیت short را با قیمت $35.49 برای سهم ثبت کرد. هشت جلسه بعد — یعنی تقریباً زمانی که چنین دادهای به اطلاع عموم میرسد — GameStop با قیمت $197.44 بسته شد که نشاندهنده تغییری به میزان 456.3% است. هر کسی که در روز انتشار آن رقمِ short interest را میخواند، در واقع توصیفی از وضعیتی از سهم را میخواند که دیگر در آن قیمت وجود نداشت.
گزارش بعدی، معکوس شدن این تله را نشان میدهد. تسویه 2021-01-29 میزان 21.4 میلیون سهم در موقعیت short را ثبت کرد که نشان میدهد بخش اعظم این موقعیتها بسته شدهاند و قیمت سهم $328.24 بود. هشت جلسه بعد، قیمت به $51.19، یعنی -84.4% رسید. فرآیند covering پیش از انتشار فایلی که این وضعیت را نشان میداد، انجام شده بود. هر دو بخش از یک squeeze — یعنی تجمع بیش از حد معاملهگران و بازگشت از موقعیتها — پس از وقوع فاش شدند.
دادههای روزانه و آنچه به شما نمیگویند
FINRA هر روز دادهای را منتشر میکند: short volume؛ یعنی سهمی از حجم معاملات گزارششده در یک روز که به عنوان معاملات فروش استقرازی (short-sale) ثبت شده است. این دادهها صبح روز بعد منتشر میشوند. این یک معیار تقریباً آنی است، اما سنجش متفاوتی دارد. short volume «جریان معاملات» را میشمارد — که بخش زیادی از آن مربوط به پوشش ریسک (hedging) بازارسازها است که تا پایان روز به حالت خنثی در میآیند — و نه «موقعیتهای باز نگه داشته شده» (positions held). یک سهم میتواند به مدت یک هفته هر روز حجم فروش استقرازی بالایی ثبت کند، در حالی که میزان short interest آن تغییری نکند. تفاوت بین این دو مجموعه داده مانند تفاوت بین حجم تردد در یک جاده و خودروهای پارکشده در انتهای آن است؛ هر دو فایل در اینجا با جزئیات شرح داده شدهاند.
در ایالات متحده، هیچ عدد روزانهای برای short interest منتشر نمیشود. شرکتهای تامینکننده داده، برآوردهای روزانه را بر اساس مدلسازی دادههای قرضدهی اوراق بهادار و جریان معاملات میفروشند؛ اینها مدل هستند، نه دادههای رسمی منتشر شده. رقم رسمی دو بار در ماه منتشر میشود و با تأخیر اعلام میگردد.
سوالات متداول
چرا دادههای Short Interest مربوط به دو هفته گذشته است؟
کارگزاران تنها در تاریخهای تسویه دو بار در ماه FINRA، از موقعیتهای فروش استقراضی (short positions) تصویربرداری میکنند، مجموع آنها را چند روز کاری بعد ثبت میکنند و FINRA نیز فایل جمعآوریشده را تقریباً هشت روز کاری پس از تاریخ تسویه منتشر میکند. در میان تسویههایی که این پایگاه داده به عنوان تحویلهای زنده دریافت کرده است، کل فرآیند از 10 تا 26 روز طول کشیده و میانه آن 14 روز بوده است.
Short Interest چگونه توسط کارگزاران محاسبه و گزارش میشود؟
هر کارگزار-معاملهگر، سهام فروش رفته در حسابهای مشتریان و حسابهای خود را تا تاریخ تسویه محاسبه میکند، آنها را برای هر اوراق بهادار تجمیع میکند و آن مجموع را نزد FINRA ثبت میکند. FINRA گزارشهای تمام شرکتهای عضو را در قالب یک عدد برای هر اوراق بهادار جمع میکند — 22207 از آنها در گزارش 2026-06-30. این یک آمار نظارتی از موقعیتها است، نه شمارش معاملات.
آیا چرخه گزارشدهی برای سهام NYSE، Nasdaq یا OTC متفاوت است؟
خیر. همان برنامه تسویه دو بار در ماه و همان چرخه جمعآوری و انتشار برای تمامی مراکز listing در ایالات متحده اعمال میشود و بورسها به جای تولید شمارش خود، دادهها را از فایل FINRA بازنشر میکنند. محل listing یک سهم، تغییری در قدمت عدد short interest آن ایجاد نمیکند.
درصد Short Interest خوب یا بد چیست؟
هیچ آستانهای وجود ندارد که یک سهم را به نگهدارنده خوب یا بد تبدیل کند و عدد بالا لزوماً یک پیشبینی نیست. آنچه شاخصهای crowding توصیف میکنند، میزان بزرگ بودن یک موقعیت فروش نسبت به حجم قابل معامله سهم است: آخرین گزارش GameStop دارای 10.75 روز برای پوشش (days to cover) است، در حالی که برای اکثر نامهای با نقدشوندگی بالا، این عدد در محدوده تکرقمی پایین است — برای مشاهده توزیع، پیشروهای فعلی crowding را ببینید.
آیا تأخیر در گزارشدهی برای Short Squeezes اهمیت دارد؟
اینجاست که تأخیر بیشترین اهمیت را دارد. در تسویه 2021-01-15 GameStop، قیمت سهم بین زمان اندازهگیری و نقطه هشت جلسهای که با زمان انتشار مطابقت دارد، 456.3% تغییر کرد — و تا گزارش 2021-01-29، موقعیت فروش پیش از این به 21.4 میلیون سهم کاهش یافته بود. ازدحام squeeze تنها پس از وقوع رویداد در دادههای عمومی تأیید میشود.
هر پنل در بالا همراه با SQL تولیدکننده آن ارائه شده است — هر کدام را برای بازبینی اعداد باز کنید، یا تقویم تسویه را در ترمینال Strasmore اجرا کنید.