本月涨跌幅最大的股票排名
按交易所成交记录排名本月涨跌幅最大的股票,查看每项涨跌、成交额、筛选标准及真实资金支撑,快速找出交易最活跃的赢家与输家。
本月涨跌幅最大的股票按以下排名,数据直接来自交易所成交记录,覆盖从 Aug 5 到 Sep 3 完成的 22 个交易日。筛选仅保留运营中的公司,且这些公司在该区间内的成交额至少达到 10 亿美元,因此榜单上的每一项涨跌都有真实资金支撑。杠杆型和反向基金不纳入统计,随着新的交易日结束,统计区间也会向前滚动。
本月涨幅最大的股票
该表按统计区间内的涨幅排名。每行都在百分比旁列出成交金额,便于区分交易拥挤的重新定价与成交清淡的行情。
| ticker | 月回报率 (%) | 月金额(十亿美元) |
|---|---|---|
| MRNA | 156.7 | 80.7 |
| ASST | 117.1 | 3.2 |
| HTFL | 84.7 | 1.8 |
| TEAM | 72.4 | 16.6 |
| CRCL | 66.6 | 22.8 |
| ARX | 60.7 | 2.2 |
| CAI | 57.9 | 2.4 |
| AMLX | 54.2 | 2.1 |
| AMR | 51.8 | 1.2 |
| MSTR | 47.9 | 54.8 |
每个数字背后的完整 SQL
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
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 IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC
LIMIT 10MRNA 以 156.7% 领涨,成交额为 80.7 十亿美元,领先于 ASST 的 117.1% 和 HTFL 的 84.7%。一个月内出现如此大的涨幅,通常首先会表现为相对成交量高于该股的日均成交量。这种行情往往始于某个交易日的隔夜跳空,而不是在整个统计区间内稳步攀升。
本月跌幅最大的股票
采用相同的构建方式,但方向相反:在这段时间内跌幅最大的股票,筛选范围仍为市值达到同一十亿美元门槛的公司。
| ticker | 月回报率 (%) | 月金额(十亿美元) |
|---|---|---|
| VISN | -49 | 1.8 |
| RARE | -47.9 | 1.2 |
| LASR | -45.7 | 1.5 |
| AGX | -33.6 | 3 |
| FLNC | -33.2 | 1.7 |
| FCEL | -33.1 | 3.1 |
| BLZE | -32.8 | 1 |
| YOU | -31.2 | 1.6 |
| SEZL | -31.1 | 1.9 |
| WYFI | -30 | 1.2 |
每个数字背后的完整 SQL
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct,
round(sum(dollars) / 1e9, 1) AS month_dollar_bn
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
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 IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) ASC
LIMIT 10VISN 跌幅最大,跌幅为 -49%,成交额为 1.8 十亿美元;其次是 RARE,跌幅为 -47.9%。请关注这张表中的美元成交额列。大成交量市场中的下跌,与清淡市场中录得的下跌,是两种不同的事件。这里会将二者区分开来,而不是想当然地视为相同。
三个时间周期下的同一个问题
同一个问题,三个时间窗口。一只股票可能登上一个榜单,却在另外两个榜单上完全不见踪影。
- 在过去五个交易日内,本周跌幅最大的股票及其旁边的涨幅最大股票
- 本页面,统计过去一个月
- 2026年涨跌幅最大的股票,按年初至今计算
三个榜单分别编制,筛选条件也不完全相同。周榜以五个交易日为窗口,设定自身的流动性门槛和最低交易日数。年初至今榜则按日均成交金额筛选,而不是按整个窗口内的累计成交额筛选。每个页面都会在各自的方法说明部分列出规则,因此在不同榜单之间对照某只股票前,应先阅读这些规则。
单日跳空可能主导周榜,但一年后其影响会被稀释。缓慢持续一个月的走势则可能根本无法登上周榜。将三个榜单并列阅读,是区分单日事件与趋势的最低成本方法。
同一时间窗口内市场的表现
将一只股票的月度表现与市场本身的月度表现进行比较,结论会有所不同。以下四大指数跟踪产品均以该时间窗口内首次开盘成交价为基准重新计算:
| 交易时段 | 标普500 (%) | 纳斯达克100 (%) | 道琼斯 (%) | 罗素2000 (%) |
|---|---|---|---|---|
| 2026-08-05 | -0.78 | -1.24 | -0.09 | -0.88 |
| 2026-08-06 | -0.94 | -1.61 | -0.94 | -1.38 |
| 2026-08-07 | -0.34 | -0.45 | -0.68 | -0.3 |
| 2026-08-10 | -0.36 | -0.75 | -0.79 | -0.81 |
| 2026-08-11 | -0.7 | -1.09 | -1.11 | -0.47 |
| 2026-08-12 | -0.43 | -0.36 | -1.14 | 0.09 |
| 2026-08-13 | 0.25 | 0.8 | -1 | 0.35 |
| 2026-08-14 | 0.06 | 0.66 | -1.19 | 0.87 |
| 2026-08-17 | -0.41 | 0.5 | -1.67 | 0.54 |
| 2026-08-18 | -1.09 | -1.19 | -1.91 | -0.72 |
| 2026-08-19 | -0.88 | -1.39 | -1.65 | -0.23 |
| 2026-08-20 | -1.7 | -2.11 | -2.91 | -1.57 |
| 2026-08-21 | -1.31 | -1.77 | -2.04 | -0.82 |
| 2026-08-24 | -1.6 | -2.75 | -1.78 | -1.48 |
| 2026-08-25 | -1.29 | -2.15 | -1.49 | -1.05 |
| 2026-08-26 | -1.27 | -2.06 | -1.67 | -1.16 |
| 2026-08-27 | -0.62 | -0.71 | -1.5 | -0.86 |
| 2026-08-28 | -0.84 | -1.35 | -1.52 | -2.21 |
| 2026-08-31 | -1.15 | -1.3 | -2.16 | -2.82 |
| 2026-09-01 | -1.83 | -2.56 | -2.87 | -3.91 |
每个数字背后的完整 SQL
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT session,
round(anyIf(cum_pct, ticker = 'SPY'), 2) AS sp500_pct,
round(anyIf(cum_pct, ticker = 'QQQ'), 2) AS nasdaq100_pct,
round(anyIf(cum_pct, ticker = 'DIA'), 2) AS dow_pct,
round(anyIf(cum_pct, ticker = 'IWM'), 2) AS russell2000_pct
FROM (
SELECT ticker,
formatDateTime(d, '%Y-%m-%d') AS session,
100 * (c / first_value(o) OVER (PARTITION BY ticker ORDER BY d) - 1) AS cum_pct
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND ticker IN ('SPY', 'QQQ', 'DIA', 'IWM')
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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, d
)
)
GROUP BY session
ORDER BY session截至最后一个交易日,标普500指数跟踪产品为 -0.35%,纳斯达克100指数跟踪产品为 -1.19%,道琼斯指数跟踪产品为 -1.17%,罗素2000指数跟踪产品为 -2.4%。同一时间窗口,四个篮子给出了四种不同结果。再将排行榜放到这一波动区间中看:涨幅榜榜首在同期交易日内超过了 156.7%。个股的表现分化远大于持有它们的篮子,这正是涨跌幅榜以单只股票为单位的原因。
家喻户晓的大型股表现如何
寻找本月表现最佳股票的读者,通常也想知道自己已经持有的知名股票表现如何。以下是由八只家喻户晓的超大市值股票组成的固定篮子,观察区间和构建方式相同:
| ticker | 月回报率 (%) |
|---|---|
| TSLA | 16.4 |
| AAPL | 6.1 |
| NVDA | 5.3 |
| MSFT | 2.8 |
| META | 1.7 |
| AMZN | -8.1 |
| GOOGL | -10.7 |
| AVGO | -15.3 |
每个数字背后的完整 SQL
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT ticker,
round((argMax(c, d) / argMin(o, d) - 1) * 100, 1) AS month_return_pct
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND ticker IN ('AAPL', 'MSFT', 'NVDA', 'AMZN', 'GOOGL', 'META', 'TSLA', 'AVGO')
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING count() >= 15
ORDER BY argMax(c, d) / argMin(o, d) DESC该组合的表现从顶部的 16.4% 至 TSLA,到末位的 -15.3% 至 AVGO。这些股票并未同步变动,这很常见。指数成分身份将它们归入同一组,但它们的收入来源几乎没有关联。该篮子是八只股票的固定名单,而不是排名。因此,应将其视为参考,而不是对哪些公司规模最大的判断。
正常月份通常是什么样
排行榜展示的是尾部。这里展示的是主体。所有通过筛选的 1110 家公司,都按统计窗口内的回报率分组:
| 回报区间 | 股票 |
|---|---|
| down 20% or more | 52 |
| down 10% to 20% | 158 |
| down 0% to 10% | 422 |
| up 0% to 10% | 314 |
| up 10% to 20% | 100 |
| up 20% or more | 64 |
每个数字背后的完整 SQL
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
)
SELECT tup.1 AS return_bucket,
tup.3 AS stocks
FROM (
SELECT arrayJoin(arrayZip(
['down 20% or more', 'down 10% to 20%', 'down 0% to 10%',
'up 0% to 10%', 'up 10% to 20%', 'up 20% or more'],
[1, 2, 3, 4, 5, 6],
[countIf(r <= -20), countIf(r > -20 AND r <= -10), countIf(r > -10 AND r < 0),
countIf(r >= 0 AND r < 10), countIf(r >= 10 AND r < 20), countIf(r >= 20)])) AS tup
FROM (
SELECT ticker,
(argMax(c, d) / argMin(o, d) - 1) * 100 AS r
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
argMax(toFloat64(close), window_start) AS c,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
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 IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
)
ORDER BY tup.2在统计窗口内,64 的筛选公司上涨了 20% 或以上,52 下跌了 20% 或以上。最接近平盘的两个区间分别包含 422 和 314 家公司。这张图展示了涨跌幅排行榜的分布形态,而前十名位于最右侧的尾部。结合这一点阅读上面的排行榜:月度涨跌幅进入前十,本身就是异常值,绝不是普通股票的典型月份表现。
股票为何会登上月度涨跌幅榜
一个月足够容纳多个事件,但时间又不长,通常会有一个事件占据主导地位。榜单上的股票通常都对应公司日历中的某个已确定日期。季度业绩最常见:业绩超预期或不及预期会在一个交易日内重新定价,随后市场围绕新的价格水平交易至月底。业绩指引调整也会产生同样的影响,只是没有同时公布业绩。
并购消息在月度榜单上留下的特征最明显。股价会跳升至接近公布的交易价格的水平,随后趋于平静。成交金额仍然很大,但涨跌幅逐渐趋平。如果涨幅榜前列的股票显示出巨额成交金额,而价格在统计区间中途停止变动,那么在分析其他因素前,值得先核查这一模式。
行业走势在月度周期中的影响通常大于周度周期。利率、油价或存储芯片价格的变化,可能同时推动整个行业上涨或下跌。因此,月度榜单上经常会出现多家相似业务公司的集中出现,而不是十只互不相关的股票。分析师评级调整、指数纳入与剔除、临床试验及监管结果,以及逼空行情,则构成其余主要因素。仅看涨跌幅无法发现这些情况。因此,这里的每一项涨跌幅旁边都会列出成交金额和市场自身的统计区间。
衡量方法
这里明确列出每项门槛,不作隐含处理。隐藏规则的筛选结果看似数据,实际上包含主观判断。
- 时间窗口。 取最近一个完整加载成交记录的交易日结束时向前追溯的30个日历日,覆盖22个交易日,即从Aug 5至Sep 3。交易日是否符合有两项规则。该交易日必须已在纽约当前日期之前收盘,因此进行中的交易日永远不纳入范围。其常规交易时段的分钟线数量还必须达到34日扫描期内单个交易日中位数的85%,以排除成交记录仍在补齐的较早交易日。缩短交易时段的节假日交易日通常只有正常交易日约一半的分钟线,因此同一规则会将其剔除,而不是把它当作半个完整交易日来衡量。
- 收益率。 以窗口内第一个常规交易时段的开盘价为起点,以最后一个常规交易时段的收盘价为终点,基于分钟线计算。仅包含常规交易时段,因此不纳入盘前和盘后成交。这里计算的是价格收益率,不加回股息。
- 门槛。 整个窗口内累计成交金额至少为10亿美元,开盘价至少为10美元,并且窗口内至少15个交易日有成交。成交金额门槛按月度总额计算,因此比按单周计算同一金额更容易达到。
- 排除项。 按名称剔除杠杆型和反向基金。每个 ticker 还必须在我们的参考数据中有公司基本面资料和已记录的市值。第二项规则会剔除 ETF、封闭式基金、商品信托,以及快速增长的杠杆单股产品;否则这些品种会占据两个榜单的大部分位置。该参考表每个 ticker 只有一行,而不是按日期记录的每日快照。因此,筛选会读取整张表,不由某个单一日期决定哪些 ticker 符合条件。最近45天内执行过股票拆分的 ticker 也会被剔除,而不是进行后复权,因为拆分会改变每股价格,却不会改变持仓价值。某个供应商数据源曾将其重新分配给两家不同公司的 symbol,也按名称排除。
- 超大市值面板。 由八家广泛持有的大型美国公司组成的固定篮子,具体名称列在该面板的 SQL 中。它采用与两个榜单相同的时间窗口和收益率计算方式,但不受成交金额筛选限制。
- 未采用的条件。 没有行业筛选、没有市值下限,也没有指数成分资格要求。因此,一家交易换手非常频繁的小公司可能与大型公司并列上榜。排名仅按百分比变动,因此榜单旁边还列出成交金额。
其中一个面板提供全部筛选记录:时间窗口覆盖的交易日,以及每个榜单筛选所使用的股票范围。
| 首个交易日 | 最后交易日 | 交易日数 | 存档公司数 | 筛选公司数 |
|---|---|---|---|---|
| Aug 5 | Sep 3 | 22 | 4077 | 1110 |
每个数字背后的完整 SQL
WITH window_days AS (
SELECT d
FROM (
SELECT d, max(d) OVER () AS last_full
FROM (
SELECT d
FROM (
SELECT d, bars, medianExact(bars) OVER () AS typical_bars
FROM (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS d, count() AS bars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 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 d
HAVING d < toDate(toTimeZone(now(), 'America/New_York'))
)
)
WHERE bars >= 0.85 * typical_bars
)
)
WHERE d > last_full - 30
),
screened AS (
SELECT ticker
FROM (
SELECT ticker,
toDate(toTimeZone(window_start, 'America/New_York')) AS d,
argMin(toFloat64(open), window_start) AS o,
sum(toFloat64(close) * toFloat64(volume)) AS dollars
FROM global_markets.delayed_stocks_minute_aggs
WHERE window_start >= now() - INTERVAL 34 DAY
AND toDate(toTimeZone(window_start, 'America/New_York')) IN (SELECT d FROM window_days)
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
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 IN (SELECT ticker FROM global_markets.stocks_ratios
WHERE market_cap > 0)
AND ticker NOT IN (SELECT ticker FROM global_markets.stocks_splits
WHERE execution_date BETWEEN today() - 45 AND today())
GROUP BY ticker, d
)
GROUP BY ticker
HAVING sum(dollars) >= 1000000000 AND argMin(o, d) >= 10 AND count() >= 15
)
SELECT formatDateTime(w.first_d, '%b %e') AS first_session_date,
formatDateTime(w.last_d, '%b %e') AS last_session_date,
w.n AS sessions,
(SELECT count() FROM global_markets.stocks_ratios WHERE market_cap > 0) AS companies_on_file,
(SELECT count() FROM screened) AS companies_screened
FROM (SELECT min(d) AS first_d, max(d) AS last_d, count() AS n FROM window_days) AS w筛选最初从参考表中有市值记录的4077个 ticker 开始,最终有1110家公司同时达到成交金额、价格和交易日门槛。每次刷新本页面时都会保存这两个数字,因此当股票范围缩小时,记录中会显示出来,不会被忽略。
常见问题
本月涨幅最大的股票有哪些?
截至 Sep 3,在市值交易金额超过 10 亿美元的公司中,涨幅最大的是 MRNA,涨幅为 156.7%;其次是 ASST,涨幅为 117.1%。完整的前十名列在本页第一个表格中。随着新的交易时段结束,榜单会持续更新。
本月跌幅最大的股票有哪些?
VISN 跌幅最大,为 -49%;其次是 RARE,跌幅为 -47.9%。两者均按相同的 22 个交易时段计算,且与涨幅榜一样,最低成交金额为 10 亿美元。
月度股票回报如何计算?
这里的月度回报,是指股票在统计窗口内第一个常规交易时段的开盘价与最后一个常规交易时段的收盘价之间的变动,数据基于分钟线计算。这是价格回报,因此不计入股息。若公司在统计窗口附近发生股票拆分,则会被剔除,而不会进行后复权调整。
为什么股票涨跌幅榜不包括杠杆 ETF?
杠杆基金或反向基金会放大指数或单只股票的日度涨跌。因此,在没有公司相关消息的普通交易日,它们也可能登上原始涨跌幅榜。剔除这类基金后,榜单只保留经营性公司。杠杆 ETF 如何运作介绍了每日重置机制,以及持有这类基金一个月可能产生的跟踪偏离。
上方的每个面板都对应一条已保存的查询,并附有 SQL。打开其中一条查询,调整美元门槛或统计窗口长度,即可在 Strasmore 终端上自行筛选同一市场行情。