Strasmore Research
Tổng hợp thị trường Matt ConnorBởi Matt Connor · Cập nhật 2026-09-05 · data as of September 5, 2026 · refreshed weekly

Cổ phiếu có thể short squeeze tuần này

Sàng lọc cổ phiếu có thể short squeeze dựa trên days to cover, shares short và giá tăng, kèm từng ngưỡng bằng lời cùng xác suất đo được.

Cổ phiếu có nguy cơ short squeeze được sàng lọc dựa trên hai yếu tố: vị thế bán khống lớn so với thanh khoản giao dịch của cổ phiếu, và giá cổ phiếu đang tăng. Trang này thực hiện sàng lọc trên hồ sơ short interest mới nhất do các sở giao dịch báo cáo, được chốt vào Aug 14, 2026, đồng thời đo diễn biến giá trong năm phiên kết thúc vào Sep 3, 2026. Đây là những đặc điểm từng xuất hiện trong các đợt short squeeze trước đây. Nội dung này không phải dự báo, và phần lớn cổ phiếu bị bán khống mạnh sẽ không xảy ra short squeeze.

Hãy đọc các mốc thời gian trước khi xem tên cổ phiếu. Theo quy định, dữ liệu short interest trên trang này đã cũ vài tuần; nguyên nhân không nằm ở nguồn dữ liệu. Các công ty môi giới báo cáo vị thế bán khống lên FINRA hai lần mỗi tháng vào những ngày thanh toán theo lịch, sau đó hồ sơ tổng hợp được công khai khoảng tám ngày làm việc. Bản ghi mới nhất mà bất kỳ ai cũng có thể tiếp cận mang ngày Aug 14, 2026, tức cách đây 22 ngày, trong khi dữ liệu giá được cập nhật đến Sep 3, 2026. Mọi thay đổi của phía bán khống trong khoảng thời gian đó đều không thể hiện trong bất kỳ công cụ sàng lọc nào, kể cả công cụ này. Vì sao dữ liệu short interest luôn chậm hai tuần giải thích từng bước chu kỳ báo cáo.

Truy vấnMức độ cập nhật dữ liệu đầu vào và số ngày dữ liệu đã cũ
tính đến ngàychặngsố ngày
Jul 31, 2026Short interest, previous settlement36
Aug 14, 2026Short interest, latest settlement22
Sep 3, 2026Price tape, last fully loaded session2
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Tự chạy truy vấn này

Hai bản ghi thanh toán được lập cách đây lần lượt 3622 ngày. Khoảng cách này bao gồm chu kỳ thống kê hai lần mỗi tháng và độ trễ biên soạn dữ liệu. Dữ liệu giá chậm 2 ngày. Đây là độ trễ tiếp nhận dữ liệu từ kho lưu trữ, không phải độ trễ do quy định. Cả hai mốc thời gian đều có giới hạn. Vì vậy, nếu nguồn dữ liệu bị gián đoạn, trang này sẽ giữ nguyên thay vì đăng lại một ngày cũ dưới tiêu đề mới.

Danh sách cổ phiếu có nguy cơ short squeeze: bộ lọc hiện tại

Mỗi mã dưới đây đều vượt qua cùng các điều kiện trên cùng một tệp dữ liệu: khối lượng giao dịch bình quân ngày từ five million cổ phiếu, số ngày cần để đóng vị thế short từ five ngày trở lên, và mức tăng dương trong five phiên kết thúc vào Sep 3, 2026. Có 36 mã đáp ứng toàn bộ điều kiện, trong đó 12 mã có mức độ tập trung vị thế short cao nhất được hiển thị tại đây. Số ngày cần để đóng vị thế short được tính bằng số cổ phiếu bị bán khống chia cho khối lượng giao dịch bình quân ngày. Chỉ số này cho biết bên short cần bao nhiêu ngày giao dịch đầy đủ của mã cổ phiếu để mua lại toàn bộ vị thế.

Truy vấnCơ chế squeeze: các mã thanh khoản cao bị short tập trung, trong khi giá tăng
tickersố ngày để covercổ phiếu bán khống (triệu)lợi suất 5 ngày (%)
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
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Tự chạy truy vấn này

Mã có mức độ tập trung vị thế short cao nhất trong danh sách, ENB, có 9.8 ngày cần để đóng vị thế short, với 69.8 million cổ phiếu bị bán khống. Mã này tăng 1.2% trong five phiên kết thúc vào Sep 3, 2026. Hàng cuối cùng được hiển thị có 6.7 ngày cần để đóng vị thế short. Đây là giới hạn của phần hiển thị, không phải ngưỡng thấp nhất của bộ lọc. Thứ hạng được xếp theo mức độ tập trung vị thế short, không phải quy mô vị thế. Vì vậy, một vị thế vừa phải trên mã có thanh khoản thấp vẫn có thể xếp trên vị thế lớn hơn nhiều trên mã có thanh khoản cao. Để xếp hạng theo quy mô, các cổ phiếu đang bị bán khống nhiều nhất hiển thị hai bảng xếp hạng cạnh nhau.

Điều kiện về giá tăng có lý do mang tính cơ học. Short squeeze là hoạt động mua bắt buộc của bên bán khống khi đóng vị thế. Đóng vị thế short đồng nghĩa với việc mua lại cổ phiếu. Hoạt động này chỉ bắt đầu khi giá đi ngược vị thế. Cơ chế short squeeze, được minh họa qua dữ liệu của GameStop năm 2021, cho thấy trình tự này bằng các con số.

Các quy tắc và tác động loại trừ của từng quy tắc

Một bộ lọc là một quan điểm được thể hiện bằng các con số. Vì vậy, đây là nơi phạm vi danh mục được xác định.

Truy vấnTừ toàn bộ file settlement đến danh sách đã lọc, qua từng quy tắc
nhãn
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
Câu lệnh SQL chính xác đằng sau mỗi con số
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
)
Tự chạy truy vấn này

Tệp Aug 14, 202622480 mã chứng khoán. Ngưỡng thanh khoản tối thiểu và danh sách loại trừ còn lại 697 mã. Ngưỡng mức độ tập trung nhà đầu tư giảm con số này xuống 87 mã. Điều kiện giá tăng để lại 36 mã. Mỗi ngưỡng đều là một lựa chọn, và một lựa chọn khác sẽ tạo ra một danh sách khác. Đó là lý do các quy tắc được trình bày ngay trên trang, thay vì nằm trong chú thích.

Tỷ lệ cổ phần bị bán khống của từng công ty

Con số được tìm kiếm nhiều nhất thường là tỷ lệ short interest trên lượng cổ phiếu tự do chuyển nhượng (float), nhưng dữ liệu này không có chỉ tiêu đó. Tệp dữ liệu từ sở giao dịch chỉ báo cáo số cổ phiếu bị bán khống và khối lượng giao dịch bình quân hằng ngày, không kèm bất kỳ số liệu nào về tổng số cổ phiếu. Chỉ có thể suy ra vị thế bán khống so với tổng số cổ phiếu đang lưu hành, bằng cách lấy giá trị vốn hóa của từng công ty chia cho giá cổ phiếu.

Truy vấnCác mã đã lọc, xếp hạng theo short interest so với shares outstanding (không phải float)
tickerSI (% cổ phiếu lưu hành)cổ phiếu bán khống (triệu)cổ phiếu lưu hành (triệu)số ngày để cover
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
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Tự chạy truy vấn này

RIG doanh nghiệp đứng đầu có tỷ lệ cổ phiếu bị bán khống tối thiểu là 24.1% tổng số cổ phiếu đang lưu hành: 268.9 triệu cổ phiếu bị bán khống trên tổng số 1117 triệu cổ phiếu đang lưu hành. 10 dòng được hiển thị là các mức cao nhất trong số những mã vượt qua bộ lọc và có công bố số lượng cổ phiếu. Ngay cả mức thấp nhất trong nhóm này vẫn là 10.8%. Hãy xem cột này là mức sàn, không phải số lượng cổ phiếu tự do chuyển nhượng. Lượng cổ phiếu tự do chuyển nhượng chỉ bao gồm những cổ phiếu thực sự được giao dịch, sau khi loại trừ cổ phần của người nội bộ và các cổ phần bị hạn chế chuyển nhượng khác. Float là mẫu số nhỏ hơn, nên tỷ lệ cổ phiếu tự do chuyển nhượng bị bán khống thực tế cao hơn mọi con số được hiển thị. Mức chênh lệch cao hơn bao nhiêu phụ thuộc vào cơ cấu sở hữu của từng công ty, trong khi kho dữ liệu này không có thông tin đó.

Mức độ tập trung vị thế bán khống đang tăng hay giảm?

Một phiên khớp lệnh chỉ phản ánh một thời điểm. Cùng bộ dữ liệu này kéo dài nhiều năm, nên câu hỏi trên toàn thị trường có thể được trả lời bằng dữ liệu.

Truy vấnCác mã thanh khoản cao có 5+ và 10+ ngày để cover, theo từng kỳ settlement
ngày thanh toánsố mã DTC từ 5 trở lênsố mã DTC từ 10 trở lênDTC trung vị của mã thanh khoản cao
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
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Tự chạy truy vấn này

Trong các kỳ thanh toán 12 được hiển thị, số cổ phiếu có thanh khoản với thời gian tất toán vị thế bán khống từ năm ngày trở lên đã thay đổi từ 54 lên 88. Phần đuôi hiếm của phân phối vẫn mỏng hơn nhiều: tại lần ghi nhận gần nhất, có 8 cổ phiếu có thời gian tất toán vị thế bán khống từ mười ngày trở lên. Cổ phiếu có thanh khoản ở trung vị ghi nhận 2.16 ngày. Đây là lý do ngưỡng năm ngày có ý nghĩa, thay vì chỉ là một mốc tùy ý. Trang Các cổ phiếu có thời gian tất toán vị thế bán khống dài nhất theo dõi riêng phần đuôi cực đoan này.

Điều gì thường xảy ra tiếp theo

Những màn hình như thế này dễ xây dựng và cũng dễ bị diễn giải quá mức. Vì vậy, dưới đây là cùng màn hình đó nhưng chạy ngược thời gian, với cùng khoảng lệch so với dữ liệu. Với mỗi giao dịch được khớp trong năm qua, chúng tôi lấy các mã vượt qua ngưỡng crowded tại thời điểm đó và tăng trong sáu phiên kết thúc sau hai mươi ngày theo lịch. Đây là khoảng thời gian mà trang này đang hiển thị. Sau đó, chúng tôi đo diễn biến của từng mã trong 30 ngày theo lịch tiếp theo.

Truy vấnMọi mã từng được lọc, dựa trên diễn biến trong 30 ngày tiếp theo
biến động trong 30 ngàysố mãtỷ lệ cổ phiếu tích lũy (%)
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
Câu lệnh SQL chính xác đằng sau mỗi con số
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
Tự chạy truy vấn này

52.2% trong số các quan sát theo mã và thời điểm thanh toán giao dịch giảm sau 30 ngày. Kết quả này gần như một lần tung đồng xu. Đó là thông điệp chính xác nhất của trang này: bên bán khống thường xuyên đúng, còn trạng thái vừa crowded vừa tăng giá chỉ mô tả một bối cảnh, không phải lợi thế giao dịch. Một đợt short squeeze sẽ thể hiện ở hai đầu phân phối, nhưng cả hai đầu đều mỏng. 72 quan sát giảm hơn một phần năm; 74 tăng hơn một phần năm, thuộc nhóm mà một đợt squeeze thực sự sẽ rơi vào. 88.2% trong mẫu không bao giờ đạt đến mức đó.

Hãy xem bảng này như một phân phối kết quả, không phải một kết quả giao dịch. Bảng không tính chi phí, phí vay chứng khoán và quy mô vị thế. Bảng cũng gán trọng số như nhau cho mọi mã được đánh dấu. Cả hai nhánh đều được neo tại thời điểm hai mươi ngày theo lịch sau mỗi ngày thanh toán giao dịch, đúng với khoảng lệch mà trang này sử dụng. Vì vậy, mọi mã được đánh dấu đều dựa trên mức giá mà người đọc có thể đã quan sát được. Một năm dữ liệu thanh toán giao dịch là một mẫu ngắn.

Cách đo lường

Toàn bộ quy tắc và tiêu chí loại trừ đứng sau các số liệu trên.

  • Dữ liệu short interest do sở giao dịch báo cáo và được cập nhật hai lần mỗi tháng. Bản ghi được sử dụng ở đây có ngày thanh toán cách đây Aug 14, 2026, tức 22 ngày. Tại Mỹ không có số liệu short interest được công bố hằng ngày; chỉ có các ước tính của nhà cung cấp dữ liệu, được mô hình hóa từ dữ liệu cho vay chứng khoán.
  • Ngưỡng thanh khoản: khối lượng giao dịch bình quân ngày từ năm triệu cổ phiếu, theo báo cáo trong cùng tệp dữ liệu. Nếu không có ngưỡng này, danh sách sẽ bị lấp đầy bởi các cổ phiếu microcap có số ngày cần để đóng vị thế short cực lớn chỉ vì khối lượng giao dịch gần như bằng không.
  • Ngưỡng tập trung vị thế: từ năm ngày cần để đóng vị thế short trở lên, cao hơn nhiều so với trung vị của nhóm có thanh khoản được trình bày ở trên.
  • Phần momentum: chênh lệch giữa giá đóng cửa của sáu phiên giao dịch thông thường gần nhất đã có đầy đủ dữ liệu, tương đương với lợi suất trong năm phiên. Một phiên chỉ được đưa vào khoảng đo lường sau khi dữ liệu benchmark ghi nhận đầy đủ các thanh giá theo phút của cả ngày. Nếu dữ liệu của một phiên vẫn đang được nạp, phiên đó sẽ được giữ lại thay vì đo khi dữ liệu chưa đầy đủ. Vì vậy, khoảng đo lường có thể kết thúc chậm hơn lịch một phiên, ngay cả khi phiên đó đã đóng cửa. Giá sử dụng là giá đóng cửa của phiên thông thường.
  • Cả hai mốc thời gian đều có giới hạn hợp lệ. Bảng ở đầu trang lưu số ngày đã trôi qua kể từ mỗi đầu vào, và các số ngày này phải nằm trong khoảng kiểm tra hợp lý. Nếu bản ghi thanh toán cũ hơn một tháng hoặc dữ liệu giá chậm hơn độ trễ nạp dữ liệu thông thường, trang này sẽ được giữ lại để kiểm tra thay vì công bố một ngày cũ dưới tiêu đề mới.
  • Các trường hợp loại trừ. ETF đòn bẩy và ETF nghịch đảo bị loại khỏi mọi bảng, vì short interest của chúng phần lớn là hệ quả của hoạt động phòng hộ. Một ticker không rõ ràng cũng bị loại do các nguồn dữ liệu của nhà cung cấp từng dùng ticker đó cho hai công ty khác nhau. Các bảng đo biến động giá cũng loại một mã có đợt chia tách cổ phiếu rơi vào chính khoảng đo lường của bảng, vì chia tách có thể tạo ra biến động lớn giả tạo. Trong backtest, tiêu chí này được áp dụng cho từng kỳ thanh toán. Vì vậy, một đợt chia tách trong một tháng không loại bỏ dữ liệu quan sát của mã đó ở các tháng khác.
  • Các quỹ nằm trong cùng tệp với các công ty hoạt động kinh doanh. ETF trái phiếu hoặc ETF chỉ số có thể có vị thế short lớn do quy trình tạo lập và mua lại chứng chỉ quỹ, thay vì do nhà đầu tư đặt cược giá quỹ sẽ giảm.
  • Tệp dữ liệu này không có số cổ phiếu lưu hành tự do và cũng không có tổng số cổ phiếu lưu hành, đồng thời kho dữ liệu không lưu open interest của quyền chọn. Cột số cổ phiếu lưu hành ở trên lấy từ một bảng dữ liệu cơ bản riêng. Vì vậy, mã không có giá trị vốn hóa thị trường được công bố sẽ bị loại khỏi bảng đó.
  • Không nội dung nào ở đây là dự báo hay khuyến nghị. Bài viết chỉ mô tả các điều kiện có thể đo lường, kèm theo bảng kết quả tương ứng.

Câu hỏi thường gặp

Làm thế nào để tìm các cổ phiếu có khả năng xảy ra short squeeze?

Sàng lọc tệp short interest do sở giao dịch báo cáo để tìm các vị thế có quy mô lớn so với khối lượng giao dịch hằng ngày của cổ phiếu. Chỉ giữ lại những mã có thanh khoản đủ để giao dịch, sau đó kiểm tra xem giá có đang tăng hay không. Bộ lọc trên tệp short interest Aug 14, 2026 này sử dụng từ năm ngày cover trở lên, khối lượng giao dịch trung bình hằng ngày năm triệu cổ phiếu và mức tăng dương trong năm phiên. Kết quả còn lại 36 mã.

Tỷ lệ short interest bao nhiêu sẽ gây ra short squeeze?

Không có một con số cố định. Bất kỳ ai đưa ra một ngưỡng duy nhất đều chỉ đang phỏng đoán. Short squeeze từng bắt đầu ở nhiều mức khác nhau, nhưng thường thì không có chuyện gì xảy ra: trong các giao dịch được ghi nhận sau kỳ thanh toán của một năm trước, 52.2% số mã mà bộ lọc này có thể chọn ra đã giảm giá sau 30 ngày. Short interest cao là điều kiện cần, nhưng không bao giờ là yếu tố kích hoạt.

Dữ liệu short interest cũ đến mức nào?

Kỳ thanh toán mới nhất trong dữ liệu này có ngày Aug 14, 2026, cách đây 22 ngày. Dữ liệu giá được cập nhật đến Sep 3, 2026. Khoảng trễ này là do chu kỳ báo cáo, không phải do nguồn dữ liệu lỗi thời: các vị thế được thống kê hai lần mỗi tháng và công bố khoảng tám ngày làm việc sau mỗi ngày thanh toán. Vì vậy, mọi số liệu short interest đều đã có độ trễ vài tuần ngay khi được công bố.

Hiện tại, những cổ phiếu nào bị bán khống nhiều nhất?

Các bảng xếp hạng chưa lọc, gồm một bảng theo số ngày cover và một bảng theo số cổ phiếu bị bán khống, nằm trên trang các cổ phiếu bị bán khống nhiều nhất. Trang này trả lời một câu hỏi hẹp hơn: trong số các mã thuộc tệp Aug 14, 2026 có giá cũng đang tăng, mã có vị thế bán khống tập trung nhất là ENB, với 9.8 ngày cover. Đây là mã dẫn đầu theo bộ lọc, không phải cổ phiếu bị bán khống nhiều nhất trên toàn thị trường.


Mỗi bảng đều là một truy vấn được lưu trữ và lập phiên bản trên tệp dữ liệu do sở giao dịch báo cáo. Bạn có thể mở phần SQL bên dưới bất kỳ bảng nào hoặc chạy bộ lọc với các ngưỡng riêng trên terminal Strasmore.

#short interest#short squeeze#days to cover#short selling#screens