Strasmore Research
Навчання Matt ConnorВід Matt Connor · Оновлено 2026-07-25 · data as of July 25, 2026 · refreshed weekly

Чому дані про короткий інтерес завжди застарілі

Аналіз циклу звітності FINRA та причин затримки публікації даних про короткий інтерес. Розгляд впливу часового розриву на показники days to cover та динаміку позицій.

Дані про короткий інтерес завжди застарілі через структурну причину: це не стрічка даних у реальному часі. Брокери фіксують кількість акцій у коротких позиціях на своїх рахунках на дати розрахунків, визначені FINRA — двічі на місяць, у середині та наприкінці місяця. Потім вони подають ці підсумки до FINRA, яка збирає звіти кожної фірми-учасника та публікує агреговані дані приблизно через вісім робочих днів. Якщо додати час на передачу файлу через постачальника та базу даних на ваш екран, то найсвіжіший показник короткого інтересу, доступний у будь-який конкретний день, описує позиціонування, яке було від одного до чотирьох тижнів тому. Ця сторінка вимірює цей розрив, а не просто констатує його наявність.

Як насправді виникає затримка звітності

Цикл складається з чотирьох етапів, і кожен із них додає кілька днів.

  1. Дата розрахунку. FINRA публікує графік дат розрахунку — одну в середині місяця, іншу наприкінці місяця. У ці дні кожен брокер-дилер фіксує короткі позиції на рахунках клієнтів та власних рахунках фірми. Це саме дати розрахунку, а не дати укладання угод: за системою розрахунку T+1 угода, укладена в понеділок, розраховується у вівторок. Таким чином, на дату розрахунку враховуються позиції за угодами, які були закриті до цього моменту.
  2. Крайній термін звітності. Кожна фірма-учасник подає до FINRA загальні обсяги коротких позицій по кожному цінному паперу протягом наступних кількох робочих днів. На цьому етапі дані не є публічними; це регуляторна звітність, а не стрім ринкових даних.
  3. Компіляція. FINRA підсумовує тисячі звітів від окремих фірм по кожному цінному паперу та формує один файл: одне число на один цінний папір на дату розрахунку. Тут немає внутрішньоденної історії, даних про торгові майданчики або розбивки по кожній фірмі.
  4. Розповсюдження. Файл стає публічним приблизно через вісім робочих днів після описуваної в ньому дати розрахунку. Після цього постачальники даних завантажують його, біржі публікують повторно, а сховища даних, як-от те, що забезпечує роботу цієї сторінки, обробляють цю інформацію.

Ніхто навмисно не затримує ці дані. Затримка є сумою вікна збору, вікна компіляції та етапу розповсюдження. Кожен крок є пакетним процесом за календарем, а не потоком даних у реальному часі.

Якою є тривалість затримки у виміряних днях?

Нижче наведено всі дати розрахунків, які цей склад отримав як прямі інкрементні поставки: дата розрахунку з одного боку та день першої появи рядків у системі — з іншого.

ЗапитКожне поетапне розрахування: виміряно в одну дату, зафіксовано у файлі через кілька днів
Точний 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 розрахунків одночасно в рамках одного заповнення архіву. Часові мітки завантаження цих рядків вказують на дату заповнення, а не на дату розкриття інформації. Будь-яка «затримка», обчислена на їхній основі, є наслідком нашого графіка завантаження. Тільки розрахунки, що надходили по одному після створення архіву, відображають реальний процес передачі даних — це саме ті рядки, що наведені вище.

Поточний стан циклу

Затримку найпростіше помітити в самому розриві: у будь-який момент існує дата розрахунку, яка вже настала, але дані за якою ще не опубліковані. Ця панель є підтвердженням у реальному часі.

ЗапитПоточний стан циклу — останній зафіксований звіт та той, що ще перебуває в обробці
Точний 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

Останній зафіксований показник короткого інтересу стосується розрахунку 2026-06-30, що охоплює 22207 цінних паперів і наданий через 11 днів після фактичної дати. Наступний розрахунок у циклі містить 0 рядків: він ще не опублікований, що є цілком нормальним при вищезазначених затримках. Ця колонка навмисно обмежена нулем. Коли дані з'являться, обмеження спрацює, і ця сторінка очікуватиме оновлення замість того, щоб непомітно відображати застаріле речення — той самий запобіжник, який був використаний у підсумках за червень через один цикл.

Тим часом щоденний файл обсягів коротких продажів публікувався 12 разів з тієї дати розрахунку. Його найсвіжіший день на 17 днів новіший за останній зріз короткого інтересу. Два набори даних FINRA, два різні часові цикли.

Що змінюється під час підготовки даних

Затримка має значення лише тоді, коли ціни змінюються протягом цього періоду. Так і є. У цій таблиці відображено останній розрахунковий показник, після чого ціна закриття кожної позиції у звичайну сесію на дату розрахунку порівнюється з ціною закриття на день фактичного надходження файлу.

ЗапитСліпе вікно: динаміка п'яти акцій між датою розрахунку та днем публікації даних про short interest
Точний 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 на день, коли стали доступні дані про короткі позиції. Це зміна на -15% за період, протягом якого розкрита коротка позиція за визначенням залишалася незмінною на рівні 31.7 мільйона акцій. Найменші коливання мав GME, проте ціна все одно змінилася на -1.9%.

У цьому полягає практичний зміст затримки. Будь-який заголовок про «короткий інтерес у X» описує позицію на дату останнього розрахунку — усе, що відбулося у зазначеному вище вікні, залишається непоміченим. Ті, хто відкрив короткі позиції, могли закрити їх на зростанні або збільшити на падінні; цифри не можуть і не покажуть цього до наступної публікації даних.

Кількість днів для покриття, розрахована із застарілим чисельником

Кількість днів для покриття — кількість коротких позицій, поділена на середній щоденний обсяг торгів — це показник, з яким найчастіше стикаються читачі. Він двічі є застарілим: чисельник зафіксовано на дату розрахунку, а знаменник обсягу був обчислений у самому файлі кілька тижнів тому. GameStop є найяскравішим прикладом, оскільки це відомий бренд і один із найбільш переповнених ліквідних тікерів.

ЗапитGME days to cover — згідно зі звітом та перераховано за обсягом торгів, поки звіт очікував публікації
Точний 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 днів відрізняється від опублікованого коефіцієнта при ідентичному чисельнику. Змінилося лише припущення щодо обсягу. Сприймайте кількість днів для покриття як застарілий коефіцієнт, побудований із двох застарілих даних, а не як актуальний показник того, скільки часу займе вихід із позиції.

Шорт-сквізи: де затримка даних стає критичною

Більшість людей шукають відповідь на це питання саме через шорт-сквіз. Під час сквізу головну роль відіграє коротка позиція. Саме цей обсяг неможливо відстежити в реальному часі. Приклад GameStop на початку 2021 року є класичною ілюстрацією. Стовпці нижче відображають ціну закриття регулярної сесії для кожного розрахунку та ціну закриття через вісім торгових сесій. Це відображає термін розповсюдження даних FINRA, який становить приблизно вісім робочих днів.

ЗапитGME, зима 2020-21: кожен звіт про short interest та рух ціни до його публікації (ціни торгів)
Точний 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 мільйонів коротких позицій за ціною акції $35.49. Через вісім сесій — приблизно тоді, коли такі дані стають публічними — GameStop закрився на позначці $197.44, що стало рухом на 456.3%. Будь-хто, хто читав цей показник короткого інтересу в день публікації, бачив опис акції, якої за такою ціною вже не існувало.

Наступна публікація змінює ситуацію. Розрахунок 2021-01-29 зафіксував 21.4 мільйонів коротких позицій. Більшість позицій було закрито, а ціна акції становила $328.24. Через вісім сесій ціна становила $51.19, -84.4%. Покриття позицій відбулося ще до того, як файл із цими даними став публічним. Обидві фази шорт-сквізу — накопичення позицій та їхнє закриття — стали відомі вже після того, як вони відбулися.

Щоденний аналог і що він замовчує

FINRA щодня публікує дані про short volume — частку задекларованого денного обсягу торгів, позначену як виконання коротких продажів, дані з'являються наступного ранку. Це показник у режимі майже реального часу, але він вимірює інше. Short volume відображає потік торгів — значною мірою це хеджування маркет-мейкерів, які закривають позиції до кінця сесії, а не утримувані позиції. Акція може демонструвати великий short volume щодня протягом тижня, тоді як її short interest залишиться незмінним. Різниця між цими двома наборами даних подібна до різниці між трафіком на дорозі та автомобілями, припаркованими в її кінці; обидва файли детально описані тут.

У США немає щоденних офіційних даних про short interest. Постачальники продають щоденні оцінки, змодельовані на основі даних про позичання цінних паперів та потоки торгів; це моделі, а не офіційне розкриття інформації. Офіційний показник публікується двічі на місяць і з запізненням.

FAQ

Чому дані про короткий інтерес мають двотижневу затримку?

Брокери фіксують короткі позиції лише в дати розрахунків FINRA, які відбуваються двічі на місяць. Загальні підсумки подаються через кілька робочих днів, а FINRA розповсюджує зібраний файл приблизно через вісім робочих днів після дати розрахунку. У розрахунках, які ця база даних отримала як прямі поставки, повний цикл тривав від 10 до 26 днів, при цьому медіана становила 14 днів.

Як брокери розраховують і звітують про короткий інтерес?

Кожен брокер-дилер підраховує кількість акцій у коротких позиціях на рахунках клієнтів і власні позиції фірми станом на дату розрахунку. Ці дані агрегуються за кожним цінним папером і подаються до FINRA. FINRA підсумовує звіти всіх фірм-учасників в одне число для кожного цінного папером — 22207 з них у звіті 2026-06-30. Це регуляторний підрахунок позицій, а не облік угод.

Чи відрізняється цикл звітності для акцій NYSE, Nasdaq або OTC?

Ні. Однаковий графік розрахунків двічі на місяць і однаковий цикл збору та розповсюдження даних застосовуються до всіх майданчиків лістингу в США. Біржі публікують дані з файлу FINRA, а не створюють власний підрахунок. Майданчик лістингу акції не впливає на актуальність даних про короткий інтерес.

Який відсоток короткого інтересу вважається хорошим або поганим?

Не існує порогу, який би визначав, чи є акція хорошим або поганим активом. Високий показник не є прогнозом. Показники скупчення описують розмір короткої позиції відносно обсягу акцій, доступних для торгівлі: останній звіт GameStop показує 10.75 повідомлених днів для покриття, тоді як для більшості ліквідних активів цей показник становить низькі однозначні числа — див. поточних лідерів за скупченням для ознайомлення з розподілом.

Чи має затримка звітності значення для шорт-сквізів?

Саме тут затримка є найбільш критичною. У розрахунковому періоді 2021-01-15 для GameStop ціна акцій змінилася на 456.3% між моментом вимірювання та восьмисесійним відміром, що приблизно відповідає даті публікації. До моменту виходу звіту 2021-01-29 коротка позиція вже впала до 21.4 мільйона акцій. Скупчення під час сквізу підтверджується в публічних даних лише після завершення події.


Кожна панель вище містить SQL-запит, за допомогою якого вона була створена. Розгорніть будь-яку з них, щоб перевірити цифри, або запустіть календар розрахунків на терміналі Strasmore.