Strasmore Research
市场回顾 Matt Connor作者: Matt Connor · 更新于 2026-09-05 · data as of September 5, 2026 · refreshed weekly

本周卖空逼仓候选股票筛选

按补仓天数、卖空股数和近期涨幅筛选逼空候选股,查看统一门槛、测算概率及最新数据日期,了解哪些股票值得进一步研究。

做空逼仓股票的筛选基于两个市场机制:相对于股票交易量而言规模较大的空头仓位,以及已经上涨的股价。本页面使用交易所最新公布、结算日为 Aug 14, 2026 的卖空权益文件进行筛选,并统计截至 Sep 3, 2026 的五个交易日内的价格走势。这些机制与过去的逼仓行情相似。但这不是预测,大多数高空头持仓股票都不会发生逼仓。

先看日期,再看股票名称。根据监管要求,本页面的卖空权益数据已有数周历史,这并非数据源延迟造成:券商每月两次、在规定结算日向 FINRA 报告空头仓位,汇总文件约八个工作日后公开。任何人目前能获得的最新数据日期为 Aug 14, 2026,距今 22 天;价格数据则更新至 Sep 3, 2026。在这段时间内,空头一侧发生的任何变化,对所有筛选器都不可见,本页面也不例外。为什么卖空权益数据总是滞后两周将逐步介绍这一报告周期。

查询此页面每项数据及其时效(天)
截至日期阶段存续天数
Jul 31, 2026Short interest, previous settlement36
Aug 14, 2026Short interest, latest settlement22
Sep 3, 2026Price tape, last fully loaded session2
每个数字背后的完整 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
自己运行这个查询

两份结算数据分别距今 3622 天,这对应每月两次的统计周期及汇总延迟。价格行情数据滞后 2 天,这属于数据仓储导入延迟,而非监管要求。两类数据的日期都有相应范围;如果数据源停止更新,本页面会暂停,而不会在新标题下重新发布旧日期。

卖空挤压股票列表:当前筛选结果

以下每只股票都在同一份数据文件中通过了相同条件:日均成交量达到五百万股、补仓天数达到或超过五天,并且在截至 Sep 3, 2026 的五个交易日内上涨。共有 36 只股票满足全部条件,其中最拥挤的 12 只列示如下。补仓天数等于卖空股数除以日均成交量,表示空头需要用多少个完整交易日买回其持仓。

查询挤压形态机制:高流动性标的空头拥挤且价格上涨
股票代码回补天数卖空股数(百万)5日收益率 (%)
ENB9.869.81.2
MRNA9.252.84.3
CNQ8.457.62.7
FOXA8.145.30.8
AUR7.6174.911.1
GOSS7.486.82.9
SAN7.3107.73.4
STLA7.1130.73.8
AVTR6.952.24
SBET6.9391.1
INFY6.8130.31.7
ACI6.751.73
每个数字背后的完整 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
自己运行这个查询

其中最拥挤的股票是 ENB。其卖空股数为 69.8 百万股,补仓天数为 9.8 天;在截至 Sep 3, 2026 的五个交易日内,该股上涨了 1.2%。表格最后一行显示的补仓天数为 6.7 天。这只是显示范围的下限,并非筛选条件的最低值。排名依据是拥挤程度,而不是持仓规模。因此,在成交清淡的市场中,规模适中的空头仓位可能排在成交活跃市场中规模更大的仓位之前。若按规模排名,当前卖空股数最多的股票会并列展示两套排名。

设置上涨条件有其机械原因。挤压行情是空头平仓引发的被迫买入,而空头平仓意味着买回股票。只有股价朝不利于空头的方向移动后,平仓买入才会开始。卖空挤压如何运作以 GameStop 2021 年的记录为例,用数据展示了这一过程。

规则,以及每条规则排除的对象

筛选条件是附带数字的观点,因此这里需要说明筛选范围。

查询从完整结算文件到筛选名单,逐条应用规则
标签股票数
Every name in the settlement file22480
Liquid: five million shares a day, no leveraged funds697
Crowded: five or more days to cover87
Rising: a positive move over the price window36
每个数字背后的完整 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
)
自己运行这个查询

Aug 14, 2026文件包含22480只证券。流动性下限和排除名单筛出697只证券;拥挤度门槛将其进一步缩减至87只;上涨价格门槛最终留下36只。每个门槛都是一种选择,不同的选择会产生不同的名单。因此,这些规则会直接列在正文中,而不是放在脚注里。

各公司有多少股份被卖空

大多数人查找的是卖空股数占流通股的比例,但这项数据并不包含在内。交易所文件报告了卖空股数和日均成交量,但没有提供任何形式的总股本数据。能够推导出的指标,是将卖空仓位与总流通股本进行比较,方法是用各公司的市值除以股价。

查询按空头权益占已发行股份比例排名的筛选标的(非流通股)
股票代码卖空股数占流通股 (%)卖空股数(百万)流通股数(百万)回补天数
RIG24.1268.911176.1
SOC24.146.21925.7
CORZ19.763.43215.1
SBET18392176.9
GOSS17.886.84897.4
CLF14.281.15715.8
PTON13.9614395.5
MRNA13.252.83999.2
GME12544495.3
FOXA10.845.34208.1
每个数字背后的完整 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
自己运行这个查询

RIG中,卖空股数占总流通股本达到24.1%的公司位居前列:卖空股数为268.9百万股,而总股本为1117百万股。所列10行,是筛选出的、且公布了股本数据的公司中卖空比例最高的记录;其中最后一家公司仍达到10.8%。请将该列视为下限,而不是流通股数占比。流通股只计算真正可以在市场上交易的股份,不包括内部人士持股及其他受限股份。流通股数量是更小的分母,因此,真实的卖空股数占流通股比例会高于表中所有数字。具体高出多少,取决于各公司的持股结构,而该数据库不包含这项信息。

空头拥挤是在加剧还是消退?

一次成交记录只是静态截面。同一份数据可追溯多年,因此,市场整体趋势可以通过数据回答。

查询按每次结算统计,5+天和10+天回补的高流动性标的
结算日期回补天数≥5的股票数回补天数≥10的股票数高流动性股票回补天数中位数
2026-02-275451.83
2026-03-135871.54
2026-03-317391.62
2026-04-156961.75
2026-04-3082111.85
2026-05-158382.02
2026-05-298441.88
2026-06-1597121.8
2026-06-309651.87
2026-07-1510362.27
2026-07-319232.15
2026-08-148882.16
每个数字背后的完整 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 个结算日中,达到五天或以上回补天数的高流动性股票数量从 54 变为 88。分布的极端尾部仍要稀疏得多:最近一次成交记录显示,有 8 只股票达到十天或以上回补天数。高流动性股票的中位数为 2.16 天,这说明五天这一阈值具有实际意义,并非任意设定。回补天数最高的股票页面单独跟踪这一极端尾部。

接下来通常发生了什么

这类筛选页面容易搭建,也容易被过度解读。因此,下面将同一筛选条件向后回溯,并使用文件中相同的时间偏移。对于过去一年中的每次结算成交记录,选出在该记录时通过拥挤度门槛、并在随后六个交易日内上涨的股票。这一时间点距今二十个日历日,也是本页面当前所处的位置。然后,统计这些股票在接下来三十个日历日内的表现。

查询所有历史筛选标的及其随后30天的表现
30天以上变动股票数量累计份额 (%)
Fell more than 20%7211.5
Fell 10% to 20%9727
Fell 0% to 10%15852.2
Rose 0% to 10%16578.5
Rose 10% to 20%6188.2
Rose more than 20%74100
每个数字背后的完整 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
自己运行这个查询

52.2%的股票—结算记录在三十天后下跌。这接近五五开,也是本页面最诚实的结论:卖空者往往是正确的,“高拥挤度加上涨”描述的是一种形态,而不是交易优势。若出现逼空行情,应当体现在两端,而这两端都很薄。72的记录跌幅超过五分之一;74的记录涨幅超过五分之一,这正是典型逼空行情应落入的区间。样本中有88.2%从未达到这一涨幅。

应将该面板视为分布,而不是交易结果。它未计入交易成本、借券费用和仓位规模,并对每只被标记的股票赋予相同权重。两端都以各自结算日后二十个日历日为基准,这与本页面使用的时间偏移相同,因此每只被标记的股票都基于读者当时可以看到的价格。一年的结算数据仍是较短样本。

这些数据如何计算

上方数据背后的所有规则和排除条件。

  • 空头持仓文件由交易所报告,每月发布两次。 本文使用的交易记录结算于 Aug 14, 2026,即 22 天前。美国没有每日披露的空头持仓数据,只有根据证券借贷数据建模的供应商估算值。
  • 流动性门槛:日均成交量为五百万股。 数据来自同一文件。没有这一门槛,榜单会充斥微型股;它们极高的补仓天数往往只是接近零成交量造成的假象。
  • 拥挤度门槛:补仓天数达到或超过五天。 这一水平明显高于上方显示的高流动性股票中位数。
  • 动量指标:最近六个完整常规交易日的收盘价变化,即五个交易日的收益率。 只有当基准行情包含某个交易日完整的分钟线数据后,该交易日才会进入窗口。如果某个交易日的数据仍在接收中,系统会暂不计入,而不是使用尚未完整形成的数据。因此,即使某个交易日已经收盘,该窗口的结束日期仍可能比日历日期晚一个交易日。价格采用常规交易时段收盘价。
  • 两个日期都有边界限制。 顶部面板记录每项输入数据距今的天数,这些天数也设有合理范围。若结算记录早于一个月,或价格行情落后于正常导入延迟,页面会进入审核状态,而不会在新标题下发布过时日期。
  • 排除条件。 杠杆型和反向交易所交易基金会从所有面板中剔除,因为其空头持仓很大程度上是对冲机制造成的。此外,还会剔除一个供应商行情在两家公司之间重复使用、含义不明确的代码。衡量价格变动的面板还会剔除在自身测量窗口内发生股票拆分的标的,因为拆分会制造虚假的大幅变动。在回测中,该测试按每次结算分别执行,因此某个月发生拆分,不会从其他月份删除该标的的观测值。
  • 该文件同时包含基金和运营公司。 债券或指数ETF可能存在较大的空头持仓,其来源是申购与赎回机制,而不是投资者押注其价格下跌。
  • 该文件不包含流通股数量和总股本数据,数据仓库中也没有任何期权未平仓合约数据。上方的总股本数据来自单独的基本面数据表,因此没有公布市值的标的会从该面板中剔除。
  • 本文内容不构成预测或投资建议。 它描述的是可量化的市场条件,并附有结果面板。

常见问题

如何寻找可能发生逼空的股票?

先从交易所公布的空头持仓文件中筛选相对于股票日成交量较大的空头头寸。然后仅保留流动性足以交易的股票,并检查股价是否已经上涨。该筛选使用了Aug 14, 2026空头持仓文件,条件包括补仓天数至少为五天、平均日成交量为五百万股,以及五个交易日累计涨幅为正。最终筛出36只股票。

空头持仓比例达到多少会引发逼空?

没有所谓的神奇数字。任何给出固定数字的人都只是在猜测。历史上,各种空头持仓比例都曾出现逼空,但更多时候什么也不会发生:在过去一年的结算成交记录中,该筛选本会标记的股票,有52.2%只在三十天后下跌。较高的空头持仓比例是必要条件,但从来不是触发因素。

空头持仓数据有多旧?

此处记录的最新结算日期为Aug 14, 2026,距今22天;价格数据更新至Sep 3, 2026。这一时间差来自报告周期,而不是数据源滞后:空头头寸每月统计两次,并在每个结算日后约八个工作日公布。因此,任何地方的空头持仓数据在发布时都已经过了数周。

目前哪些股票的空头持仓最多?

未经筛选的排行榜有两个:一个按补仓天数排名,另一个按空头股数排名。两者均位于空头持仓最多的股票页面。本页面回答的是一个更具体的问题:在Aug 14, 2026文件所列、且股价同时上涨的股票中,ENB最为拥挤,补仓天数为9.8天。这只是筛选结果中的领先者,并不代表它是整个市场空头持仓最多的股票。


每个面板都是基于交易所公布文件运行的、已存储并版本化的查询。您可以展开任意表格下方的SQL,也可以在Strasmore终端中使用自定义阈值运行该筛选。