Strasmore Research
Обзор рынка Matt ConnorАвтор: Matt Connor · Обновлено 2026-07-23 · data as of July 23, 2026 · refreshed weekly

Акции с потенциалом шорт-сквиза на этой неделе

Список акций для шорт-сквиза на основе объема коротких позиций и динамики цен. Представлены расчетные показатели вероятности и критерии отбора активов.

Акции с потенциалом «шорт-сквиза» отбираются по двум признакам: размер короткой позиции относительно объема торгов и уже начавшийся рост цены. На этой странице представлен результат сканирования на основе последних данных о коротких позициях, зафиксированных на дату Jun 30, 2026. Анализ динамики цен проводится за пять сессий, завершившихся Jul 21, 2026. Эти механизмы схожи с прошлыми случаями сквизов. Данные не являются прогнозом; большинство акций с высоким уровнем коротких позиций никогда не демонстрируют сквиз.

Сначала ознакомьтесь с датами, а затем с названиями. Согласно правилам, данные о коротких позициях на этой странице устарели на несколько недель, что не является ошибкой системы: брокеры отчитываются перед FINRA о своих коротких позициях дважды в месяц в установленные даты расчетов, а сводный файл публикуется примерно через восемь рабочих дней. Самые актуальные доступные данные датированы Jun 30, 2026, то есть 23 дней назад, в то время как динамика цен охватывает период до Jul 21, 2026. Любые изменения коротких позиций в этот промежуток времени не видны ни в одном сканере, включая этот. Почему данные о коротких позициях всегда двухнедельной давности подробно описывает цикл отчетности.

ЗапросВсе входные данные и их давность
Точный SQL-код для каждого числа
WITH prints AS (
    SELECT DISTINCT settlement_date AS d
    FROM global_markets.stocks_short_interest
    ORDER BY d DESC
    LIMIT 2
),
loaded AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
),
legs AS (
    SELECT arrayJoin([
        ('Short interest, previous settlement', (SELECT min(d) FROM prints)),
        ('Short interest, latest settlement', (SELECT max(d) FROM prints)),
        ('Price tape, last fully loaded session', (SELECT max(session) FROM loaded))]) AS row
)
SELECT formatDateTime(row.2, '%b %e, %Y') AS as_of_date,
       row.1 AS leg,
       dateDiff('day', row.2, today()) AS age_days
FROM legs

Две даты расчетов соответствуют периодам 38 и 23 дней назад, что обусловлено двухнедельным циклом подсчета и задержкой при компиляции. Данные по ценам отстают на 2 дней; эта задержка вызвана особенностями обработки данных, а не правилами отчетности. У обоих показателей есть временные границы, поэтому при задержке потока данных страница не обновляет старую дату под новым заголовком, а сохраняет текущее состояние.

Список акций с потенциалом шорт-сквиза: текущий обзор

Все представленные ниже компании соответствуют единым критериям: средний дневной объем торгов составляет пять миллионов акций, количество дней покрытия составляет пять или более, а цена демонстрирует рост в течение пяти сессий, завершившихся Jul 21, 2026. Названия 36 прошли все проверки, а здесь представлены 12 наиболее перегруженных позициями активов. Дни покрытия — это отношение объема коротких продаж к среднему дневному объему торгов; этот показатель отражает, сколько полных торговых дней потребуется шорт-продавцам, чтобы полностью выкупить свои позиции.

ЗапросМеханика сквиза: скопление шортов в ликвидных бумагах при росте цены
Точный SQL-код для каждого числа
WITH latest AS (
    SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest
),
sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
    ORDER BY session DESC
    LIMIT 6
),
crowded AS (
    SELECT ticker, days_to_cover, short_interest
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
      AND avg_daily_volume >= 5000000
      AND days_to_cover >= 5
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 60 AND today())
),
tape AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT ticker FROM crowded)
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session FROM sessions)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
moves AS (
    SELECT ticker,
           round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_5d_pct
    FROM tape
    GROUP BY ticker
    HAVING count() = 6 AND return_5d_pct > 0
)
SELECT c.ticker AS ticker,
       round(c.days_to_cover, 1) AS days_to_cover,
       round(c.short_interest / 1e6, 1) AS shares_short_m,
       m.return_5d_pct AS return_5d_pct
FROM crowded c
INNER JOIN moves m ON m.ticker = c.ticker
ORDER BY c.days_to_cover DESC, c.ticker
LIMIT 12

Наиболее перегруженная позиция в списке — MPT. У нее составляет 16.9 дней покрытия при 138.1 миллионах акций в коротких продажах, а рост цены за пять сессий, завершившихся Jul 21, 2026, составил 5.4%. В последней строке отображается 6.5 дней покрытия — это граница отображения, а не предел списка. Ранжирование основано на степени перегруженности позициями, а не на объеме торгов. Таким образом, умеренная позиция по акции с низким объемом торгов стоит выше, чем гораздо более крупная позиция по акции с высоким объемом. Для сравнения по объему самые продаваемые в шорт акции на данный момент представлены две таблицы рядом.

Критерий роста цены имеет техническое обоснование. Сквиз — это вынужденные покупки, вызванные закрытием позиций шорт-продавцами. Закрытие короткой позиции подразумевает обратную покупку акций, которая начинается только после того, как цена начинает двигаться против позиции. Как работает шорт-сквиз, разобранный на примере данных GameStop за 2021 год, наглядно демонстрирует эту последовательность в цифрах.

Правила и критерии исключения

Скрин — это мнение, подкрепленное цифрами, поэтому здесь приведены соответствующие параметры.

ЗапросОт полного файла расчетов до списка по одному правилу за раз
Точный SQL-код для каждого числа
WITH latest AS (
    SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest
),
sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
    ORDER BY session DESC
    LIMIT 6
),
reported AS (
    SELECT ticker, days_to_cover, avg_daily_volume
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
),
liquid AS (
    SELECT ticker, days_to_cover
    FROM reported
    WHERE avg_daily_volume >= 5000000
      AND days_to_cover IS NOT NULL
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 60 AND today())
),
crowded AS (
    SELECT ticker FROM liquid WHERE days_to_cover >= 5
),
tape AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT ticker FROM crowded)
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session FROM sessions)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
rising AS (
    SELECT ticker,
           round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_5d_pct
    FROM tape
    GROUP BY ticker
    HAVING count() = 6 AND return_5d_pct > 0
),
tally AS (
    SELECT (SELECT count() FROM reported) AS all_names,
           (SELECT count() FROM liquid) AS liquid_names,
           (SELECT count() FROM crowded) AS crowded_names,
           (SELECT count() FROM rising) AS rising_names
)
SELECT step.1 AS label, step.2 AS names
FROM (
    SELECT arrayJoin([
        ('Every name in the settlement file', all_names),
        ('Liquid: five million shares a day, no leveraged funds', liquid_names),
        ('Crowded: five or more days to cover', crowded_names),
        ('Rising: a positive move over the price window', rising_names)]) AS step
    FROM tally
)

Файл Jun 30, 2026 содержит 22207 ценных бумаг. Минимальный порог ликвидности и список исключений оставляют 885, порог концентрации сокращает это число до 96, а фильтр роста цены оставляет 36. Каждый порог является субъективным выбором; разные настройки дают разные списки. Именно поэтому правила вынесены в основной текст, а не в примечания.

Какой объем акций каждой компании продано в короткую позицию

Показатель, который ищут чаще всего — это объем коротких продаж в процентах от свободного обращения (float), но в данных сведениях он отсутствует. Биржевая отчетность содержит данные о количестве проданных в короткую позицию акций и среднем ежедневном объеме торгов, но не содержит данных об общем количестве акций. Можно рассчитать положение относительно общего количества акций в обращении, разделив рыночную капитализацию каждой компании на цену ее акции.

ЗапросРейтинг бумаг по соотношению short interest к количеству акций в обращении
Точный SQL-код для каждого числа
WITH latest AS (
    SELECT max(settlement_date) AS d FROM global_markets.stocks_short_interest
),
sessions AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS session
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= now() - INTERVAL 20 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY session
    HAVING count() >= 380
    ORDER BY session DESC
    LIMIT 6
),
crowded AS (
    SELECT ticker, days_to_cover, short_interest
    FROM global_markets.stocks_short_interest
    WHERE settlement_date = (SELECT d FROM latest)
      AND avg_daily_volume >= 5000000
      AND days_to_cover >= 5
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
      AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
                         WHERE execution_date BETWEEN today() - 60 AND today())
),
tape AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT ticker FROM crowded)
      AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT session FROM sessions)
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
rising AS (
    SELECT ticker,
           round((argMax(rth_close, session) / argMin(rth_close, session) - 1) * 100, 1) AS return_5d_pct
    FROM tape
    GROUP BY ticker
    HAVING count() = 6 AND return_5d_pct > 0
),
share_count AS (
    SELECT ticker, market_cap / price AS shares_out
    FROM global_markets.stocks_ratios
    WHERE date = (SELECT max(date) FROM global_markets.stocks_ratios)
      AND market_cap > 0
      AND price > 0
)
SELECT c.ticker AS ticker,
       round(100.0 * c.short_interest / s.shares_out, 1) AS si_pct_shares_out,
       round(c.short_interest / 1e6, 1) AS shares_short_m,
       round(s.shares_out / 1e6, 0) AS shares_out_m,
       round(c.days_to_cover, 1) AS days_to_cover
FROM crowded c
INNER JOIN rising r ON r.ticker = c.ticker
INNER JOIN share_count s ON s.ticker = c.ticker
ORDER BY si_pct_shares_out DESC, c.ticker
LIMIT 10

KSS занимает первое место в этом списке с показателем в 26.3% акций в короткой позиции: 29.9 миллионов акций против 113 миллионов акций в обращении. Представленные 10 строк являются крупнейшими значениями среди отобранных компаний, по которым опубликовано количество акций; последнее из них составляет 15.5%. Рассматривайте этот столбец как минимально возможное значение, а не как объем свободного обращения. Свободное обращение учитывает только те акции, которые фактически переходят от одного владельца к другому, исключая доли инсайдеров и другие заблокированные активы. Объем свободного обращения — это меньший знаменатель, поэтому реальный процент коротких продаж от объема свободного обращения выше каждого представленного значения. Насколько выше, зависит от структуры владения каждой компании, данные о которой в этом хранилище отсутствуют.

Нарастает или снижается концентрация коротких позиций?

Один отчет — это лишь моментальный снимок. Данные за прошлые годы позволяют дать ответ на вопрос о состоянии рынка в целом.

ЗапросЛиквидные бумаги с 5+ и 10+ днями покрытия по данным расчетов
Точный SQL-код для каждого числа
WITH dates AS (
    SELECT DISTINCT settlement_date AS d
    FROM global_markets.stocks_short_interest
    ORDER BY d DESC
    LIMIT 12
)
SELECT toString(settlement_date) AS settlement_date,
       countIf(days_to_cover >= 5) AS names_5plus_dtc,
       countIf(days_to_cover >= 10) AS names_10plus_dtc,
       round(quantileExact(0.5)(days_to_cover), 2) AS median_dtc_liquid
FROM global_markets.stocks_short_interest
WHERE settlement_date IN (SELECT d FROM dates)
  AND avg_daily_volume >= 5000000
  AND days_to_cover IS NOT NULL
  AND ticker NOT IN ('SPCX')
  AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
GROUP BY settlement_date
ORDER BY settlement_date

Согласно представленным данным по 12 расчетам, количество ликвидных бумаг, срок покрытия по которым составляет пять и более дней, изменилось с 58 до 96. Редкая часть распределения остается значительно менее плотной: согласно последним данным, 5 бумаг имеют срок покрытия десять и более дней. Медианное значение для ликвидных бумаг составляет 1.87 дней, что делает порог в пять дней значимым, а не произвольным. Страница Акции с наибольшим сроком покрытия отслеживает этот экстремальный сегмент отдельно.

Что обычно происходило после этого

Такие экраны легко построить, но в них легко увидеть ложные закономерности. Ниже представлен тот же экран, рассчитанный в обратном порядке с тем же смещением от файла. Для каждой публикации о расчетах за последний год мы берем названия активов, которые прошли порог скопления (crowding gate) на момент публикации и росли в течение шести сессий до даты, отстоящей на двадцать календарных дней от момента публикации текущей страницы. Затем мы анализируем динамику каждого актива в течение следующих 30 календарных дней.

ЗапросРезультаты прошлых выборок: динамика цен за следующие 30 дней
Точный SQL-код для каждого числа
WITH screened AS (
    SELECT settlement_date, ticker
    FROM global_markets.stocks_short_interest
    WHERE settlement_date >= today() - 400
      AND settlement_date <= today() - 55
      AND avg_daily_volume >= 5000000
      AND days_to_cover >= 5
      AND ticker NOT IN ('SPCX')
      AND ticker NOT IN ('KORU','SOXL','SOXS','TQQQ','SQQQ','NVDL','NVDS','NVD','TSLL','TSLQ','TSLZ','SPXL','SPXS','UPRO','SPXU','LABU','LABD','FAS','FAZ','TNA','TZA','YINN','YANG','UDOW','SDOW','BOIL','KOLD','UCO','SCO','USD','SSO','SDS','QLD','QID','ERX','ERY','DRN','DRV','CURE','SOXY','MUU','SNXX','UVXY','SVXY','UVIX','SVIX','BULZ','WEBL','WEBS','DPST','DRIP','GUSH','AGQ','ZSL','BITX','ETHU','MSTX','MSTU','CONL','DUST','JNUG','JDST','NUGT')
),
split_hits AS (
    SELECT s.settlement_date AS sd, s.ticker AS tkr
    FROM screened s
    INNER JOIN global_markets.stocks_splits sp ON sp.ticker = s.ticker
    WHERE sp.execution_date > s.settlement_date + 11
      AND sp.execution_date <= s.settlement_date + 50
),
daily AS (
    SELECT ticker,
           toDate(toTimeZone(window_start, 'America/New_York')) AS session,
           argMax(close, window_start) AS rth_close
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker IN (SELECT DISTINCT ticker FROM screened)
      AND window_start >= now() - INTERVAL 400 DAY
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) >= 570
      AND toHour(toTimeZone(window_start, 'America/New_York')) * 60
        + toMinute(toTimeZone(window_start, 'America/New_York')) < 960
    GROUP BY ticker, session
),
paired AS (
    SELECT s.settlement_date AS sd,
           s.ticker AS tkr,
           (argMaxIf(d.rth_close, d.session, d.session <= s.settlement_date + 20)
            / argMinIf(d.rth_close, d.session, d.session <= s.settlement_date + 20) - 1) * 100 AS prior_pct,
           (argMaxIf(d.rth_close, d.session, d.session >= s.settlement_date + 20)
            / argMinIf(d.rth_close, d.session, d.session >= s.settlement_date + 20) - 1) * 100 AS next_pct
    FROM screened s
    INNER JOIN daily d ON d.ticker = s.ticker
    WHERE d.session > s.settlement_date + 11
      AND d.session <= s.settlement_date + 50
    GROUP BY sd, tkr
    HAVING countIf(d.session <= s.settlement_date + 20) >= 4
       AND countIf(d.session >= s.settlement_date + 20) >= 15
),
outcomes AS (
    SELECT multiIf(next_pct < -20, 1,
                   next_pct < -10, 2,
                   next_pct < 0, 3,
                   next_pct < 10, 4,
                   next_pct < 20, 5, 6) AS bucket,
           multiIf(next_pct < -20, 'Fell more than 20%',
                   next_pct < -10, 'Fell 10% to 20%',
                   next_pct < 0, 'Fell 0% to 10%',
                   next_pct < 10, 'Rose 0% to 10%',
                   next_pct < 20, 'Rose 10% to 20%', 'Rose more than 20%') AS move_over_30_days
    FROM paired
    WHERE prior_pct > 0
      AND (sd, tkr) NOT IN (SELECT sd, tkr FROM split_hits)
),
tallied AS (
    SELECT bucket, move_over_30_days, count() AS name_count
    FROM outcomes
    GROUP BY bucket, move_over_30_days
)
SELECT move_over_30_days,
       name_count,
       round(100.0 * sum(name_count) OVER (ORDER BY bucket) / sum(name_count) OVER (), 1) AS cumulative_share_pct
FROM tallied
ORDER BY bucket

51.7% таких наблюдений за парой «актив и дата расчетов» показали снижение через 30 дней. Это близко к вероятности подбрасывания монеты. Это основной вывод данной страницы: продавцы в короткую позицию часто оказываются правы, а сочетание факторов «высокое скопление + рост» описывает скорее рыночную ситуацию, чем торговое преимущество. Сквиз (squeeze) проявляется на краях распределения, но оба края здесь очень тонкие. В 68 наблюдений цена упала более чем на одну пятую; в 73 — выросла более чем на одну пятую (этот сегмент соответствует настоящему сквизу). В 87.8% случаев цена так и не достигла этих значений.

Рассматривайте эту панель как распределение, а не как торговый результат. Данные не учитывают комиссии, стоимость займа и размер позиции; каждый отмеченный актив имеет одинаковый вес. Обе части анализа привязаны к дате, отстоящей на двадцать календарных дней от даты каждого расчета (такое же смещение, как и на этой странице), поэтому цены для каждого актива соответствуют тем, которые читатель мог видеть в действительности. Выборка за один год расчетов является ограниченной.

Методика расчета

Все правила и исключения, определяющие приведенные выше показатели.

  • Данные о коротких позициях (short interest) предоставляются биржами дважды в месяц. Данные в этом отчете соответствуют состоянию на Jun 30, 2026 23 дней назад. В США нет ежедневных официальных данных по коротким позициям; существуют только оценки вендоров, построенные на основе данных о кредитовании ценных бумаг.
  • Порог ликвидности: пять миллионов акций от среднего объема торгов в день, согласно тому же отчету. Без этого условия список будет переполнен микрокапитализацией, где аномально высокие показатели дней покрытия (days-to-cover) являются следствием почти нулевого объема торгов.
  • Порог скопления позиций (crowding threshold): пять или более дней покрытия, что значительно выше медианного показателя ликвидности, приведенного выше.
  • Показатель импульса (momentum leg): изменение цен закрытия за последние шесть полных регулярных торговых сессий, что соответствует доходности за пять сессий. Сессия включается в расчет только после того, как в ленте котировок появятся полные минутные бары за этот день. Если данные за сессию еще поступают в ленту, она не учитывается в неполном виде; таким образом, окно расчета может отставать от календаря на одну сессию, даже если она уже закрыта. Используются цены закрытия регулярных сессий.
  • Ограничение по датам. В верхней панели указан возраст каждого входного параметра в днях, и эти значения имеют пределы допустимых отклонений. Если дата расчетов старше одного месяца или лента цен отстает от стандартной задержки загрузки, страница отправляется на проверку, а не публикуется с устаревшими данными под актуальным заголовком.
  • Исключения. Из всех панелей исключаются кредитные и обратные биржевые фонды (ETF), так как их короткие позиции в основном являются инструментом хеджирования. Также исключается один неоднозначный тикер, который поставщики данных ошибочно используют для двух разных компаний. В панелях, измеряющих изменение цены, также исключаются акции, по которым в расчетном окне произошел сплит, так как сплит имитирует резкое изменение цены. В бэктестах расчет ведется по датам расчетов, поэтому сплит в одном месяце не удаляет данные по компании за другие месяцы.
  • Фонды включены в этот файл наряду с операционными компаниями. Облигационные или индексные ETF могут иметь крупные короткие позиции, которые обусловлены механизмами создания и погашения паев, а не ставками на падение актива.
  • В данном файле отсутствуют данные о свободном обращении акций (float), общем количестве акций и открытом интересе по опционам. Столбец «количество акций в обращении» (shares-outstanding) берется из отдельной таблицы фундаментальных показателей, поэтому компании без опубликованной рыночной капитализации исключаются из панели.
  • Ничто из представленного не является прогнозом или рекомендацией. Здесь описаны измеримые рыночные условия с соответствующей панелью результатов.

FAQ

Как найти акции, склонные к шорт-сквизу?

Необходимо проанализировать отчеты биржи о коротких позициях. Ищите позиции, которые велики относительно среднесуточного объема торгов. Оставляйте только достаточно ликвидные активы и проверяйте, наблюдается ли уже рост цены. Данный фильтр по файлу коротких позиций Jun 30, 2026 использует следующие критерии: количество дней покрытия составляет пять или более, средний дневной объем торгов — пять миллионов акций, а цена выросла за последние пять сессий. По этим параметрам было отобрано 36 компаний.

Какой процент коротких позиций вызывает сквиз?

Единого показателя не существует, и любые конкретные цифры являются лишь предположениями. Сквизы начинались при самых разных значениях, но чаще всего ничего не происходит. Согласно данным за прошедший год, у 51.7% компаний, которые попали бы в этот фильтр, цена была ниже через 30 дней. Высокий short interest является необходимым условием, но не триггером.

Насколько актуальны данные о коротких позициях?

Последний доступный отчет датирован Jun 30, 2026, то есть 23 дней назад. Ценовые данные актуальны по Jul 21, 2026. Этот разрыв обусловлен циклом отчетности, а не устареванием данных: позиции подсчитываются дважды в месяц и публикуются примерно через восемь рабочих дней после даты расчетов. Таким образом, любые данные о коротких позициях на момент получения являются недельно устаревшими.

Какие акции имеют наибольший объем коротких позиций сейчас?

Нефильтрованные рейтинги — по количеству дней покрытия и по общему объему коротких позиций — доступны на странице наиболее зашорченных акций. Данная страница отвечает на более узкий вопрос: среди компаний из файла Jun 30, 2026, цена которых растет, наиболее перегруженной является MPT с показателем покрытия в 16.9 дней. Это лидер данного фильтра, а не самая зашорченная акция на рынке.


Каждая панель представляет собой сохраненный версионный запрос к отчету биржи. Вы можете развернуть SQL-код под любой таблицей или запустить фильтр с собственными параметрами в терминале Strasmore.