VWAP是什么意思?成交量加权平均价详解
VWAP即成交量加权平均价:用成交金额除以成交股数得出,每个交易日归零重算。本文给出定义与算法,并用真实的分钟K线和逐笔成交,展示它在一个完整交易日里的实际表现。
VWAP即成交量加权平均价(volume-weighted average price):一个交易日内每股实际成交的平均价格,用当日成交总金额除以成交总股数得出,每天从零开始重新累计。成交活跃的分钟比清淡的分钟权重更大,因此VWAP是“这只股票今天究竟成交在什么价位”这个问题的标准答案。本页的每一个数字都来自一条已存储、可查验的查询,基于真实的分钟K线和逐笔成交。
VWAP在股票里是什么意思?
股票的分时图上每一分钟都有一个价格,但这些价格并不同等重要:某一分钟可能有几十万股易手,另一分钟只有它的零头。把这些分钟价格简单平均,等于把两者一视同仁。VWAP按每个价位上成交的股数给价格加权,于是平均值落在真正有成交发生的地方。
换个说法,VWAP是每股的平均价,而不是每分钟的平均价。如果把今天成交的每一股排成一列,逐一问它成交在什么价位,VWAP就是这些答案的均值。
定义本身带来两条性质:VWAP是分股票的——苹果(AAPL)的VWAP说明不了微软(MSFT)的——而且是分交易日的,累计值在下一个开盘时从零重新开始。
VWAP怎么计算?
公式很短:
- 用每根分钟K线的价格乘以该分钟的成交股数。
- 把整个交易日的这些乘积加总。
- 除以当日成交总股数。
举一个极简的假设例子:某只股票今天只成交两笔——先是100股成交在10.00美元,随后900股成交在11.00美元。两个价格的简单平均是10.50美元。但1,000股中有900股成交在11.00美元,每股实际支付的平均金额是(100 × 10.00美元 + 900 × 11.00美元)÷ 1,000 = 10.90美元。这10.90美元就是VWAP——被第二笔成交的规模拉向了11美元。
实际操作中没有人手工加总数百万笔成交;通用的简便算法用一分钟K线——每分钟的价格乘以该分钟成交量,求和后再除以总成交量。这里有两点惯例需要说明。第一,本页所有数字只使用常规交易时段的分钟K线,从美东时间上午9:30开盘(北京时间21:30)到下午3:59(北京时间次日03:59)的最后一根K线为止——下午4:00(北京时间次日04:00)的收盘集合竞价成交打印在这根K线之后,不计入本页数字,而机构用来考核成交质量的全日基准VWAP通常把它包含在内。第二,许多行情软件的当日VWAP改从凌晨4:00(北京时间16:00)的盘前开始累计。同一只股票、同一个交易日,不同惯例给出的数字并不相同。
真实交易日里的VWAP
现在看真实数据:AAPL在2026年7月2日——一个经核验的完整交易日(我们的数据中有390根一分钟K线),也是美股假日与提前收盘安排中独立日休市前的最后一个完整交易日。下图每五分钟采样一次价格与累计VWAP。
每个数字背后的完整 SQL
SELECT et_time, price, running_vwap
FROM (
SELECT window_start,
formatDateTime(toTimeZone(window_start, 'America/New_York'), '%H:%i') AS et_time,
round(close, 2) AS price,
round(sum(close * volume) OVER (ORDER BY window_start)
/ sum(volume) OVER (ORDER BY window_start), 2) AS running_vwap
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York')
)
WHERE toMinute(window_start) % 5 = 4
ORDER BY window_start美东时间09:34,也就是第一个采样点(夏令时期间北京时间=美东时间+12小时),价格(298.2美元)与累计VWAP(298.09美元)几乎重合——此时才累积了几分钟的成交量。到最后一个采样点,价格为308.22美元,而累计VWAP停在305.99美元:这就是当日VWAP。随着交易日推进,VWAP这条线越来越稳——到了下午,它已经承载了数小时累积的成交量,任何单独一分钟都无法把它拉动多少。
还有一个数字能体现这种加权:仅开盘后的头半小时就贡献了当日成交量的14.9%,大约是它在390分钟交易时钟中所占份额的两倍——而这些量大的早盘K线,成交价低于下午的价位。成交量在开盘时扎堆,临近下午4:00(北京时间次日04:00)的收盘集合竞价时再次扎堆——这也正是相对成交量读数必须加以调整的日内U型分布——而VWAP按成交股数,把它所覆盖的繁忙时段应得的更高权重交给了它们。
VWAP与移动平均线的区别
移动平均线同样对价格做平滑处理,两者经常被混为一谈。区别是机械性的:
- 简单移动平均线取最近N个收盘价,每个价格一票,完全不看成交量。它是滑动的:下午2:00的20分钟移动平均只覆盖1:40到2:00,此外什么都不包含。
- VWAP从开盘钟声开始累计,按成交股数给每根K线加权,并在下一个开盘时归零重来。它回答的是另一个问题——不是“最近价格走势如何”,而是“今天平均每个买家付了多少钱”。
加权与不加权之间的差距就是这一节的全部内容,一行数据就能看清:
每个数字背后的完整 SQL
SELECT formatDateTime(toDate(toTimeZone(min(window_start), 'America/New_York')), '%Y-%m-%d') AS session_date,
count() AS minute_bars,
round(sum(close * volume) / sum(volume), 2) AS session_vwap,
round(avg(close), 2) AS unweighted_avg_price,
round(argMax(close, window_start), 2) AS final_minute_price,
round((avg(close) - sum(close * volume) / sum(volume)) * 100) AS avg_premium_cents,
round(toFloat64(sum(volume)) / 1e6) AS total_volume_millions,
round(sumIf(toFloat64(volume), window_start < toDateTime('2026-07-02 10:00:00', 'America/New_York'))
/ toFloat64(sum(volume)) * 100, 1) AS first_30min_volume_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York')把AAPL的390个分钟收盘价等权平均,得到306.54美元。把同样这些收盘价按各分钟成交量加权,得到305.99美元——低了55美分。同一个交易日、同样的K线、同样的60百万股成交;唯一的改变是数股数而不是数分钟。正负号也有含义:等权平均高于VWAP,意味着成交量大的那些分钟成交在低于当日典型价位的地方。当日最后一根分钟K线报308.22美元——官方收盘价在片刻之后的收盘集合竞价中产生。
用分钟K线算出的VWAP有多准?
VWAP的定义建立在逐笔成交之上,而分钟K线只是一种近似——这条捷径的代价是多少?多数科普文章从不做这个核对。下面把同一个交易日的VWAP用笨办法重算一遍——基于合并行情带(consolidated tape)上的每一笔成交——并与分钟K线版本并列。(官方和行情商的VWAP还会剔除少数带成交条件代码的成交,例如平均价成交,因此各平台之间可能存在细微差别。)
每个数字背后的完整 SQL
WITH every_trade AS (
SELECT round(sum(price * size) / sum(size), 4) AS trade_vwap,
round(count() / 1e6, 1) AS trades_millions
FROM global_markets.stocks_trades
WHERE ticker = 'AAPL'
AND sip_timestamp >= toDateTime('2026-07-02 09:30:00', 'America/New_York')
AND sip_timestamp < toDateTime('2026-07-02 16:00:00', 'America/New_York')
),
minute_bars AS (
SELECT round(sum(close * volume) / sum(volume), 4) AS bar_vwap
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'AAPL'
AND window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York')
)
SELECT every_trade.trade_vwap AS trade_level_vwap,
minute_bars.bar_vwap AS minute_bar_vwap,
round(abs(every_trade.trade_vwap - minute_bars.bar_vwap) * 100, 1) AS gap_cents,
round(abs(every_trade.trade_vwap - minute_bars.bar_vwap) / every_trade.trade_vwap * 10000, 1) AS gap_bps,
every_trade.trades_millions
FROM every_trade, minute_bars在1.1百万笔逐笔成交上,逐笔口径的VWAP为305.9162美元;分钟K线的简便算法给出305.9908美元。两者相差7.5美分——相当于股价的2.4个基点(万分之一)。就这一天的当日参考线而言,分钟K线捷径与逐笔计算的结果相差不到一角钱。
每只股票的VWAP都一样吗?
不存在全市场统一的VWAP;每只股票每个交易日都有自己的VWAP。下面是同一个7月2日交易日下的五只家喻户晓的股票,每只都经核验拥有完整的390根K线:
每个数字背后的完整 SQL
SELECT ticker,
round(sum(close * volume) / sum(volume), 2) AS session_vwap,
round(argMax(close, window_start), 2) AS final_minute_price,
round((argMax(close, window_start) - sum(close * volume) / sum(volume))
/ (sum(close * volume) / sum(volume)) * 100, 2) AS final_vs_vwap_pct
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker IN ('AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO')
AND window_start >= toDateTime('2026-07-02 09:30:00', 'America/New_York')
AND window_start < toDateTime('2026-07-02 16:00:00', 'America/New_York')
GROUP BY ticker
HAVING count() = 390
ORDER BY indexOf(['AAPL', 'MSFT', 'NVDA', 'TSLA', 'KO'], ticker)可口可乐(KO)的当日VWAP报82.96美元;特斯拉(TSLA)报399.64美元。最后一分钟的收法也各不相同:AAPL收在自身VWAP之上0.73%,KO高出1.23%,MSFT几乎正好收在自己的VWAP上(0.07%),而NVDA和TSLA收在各自VWAP之下(-0.32%和-1.71%)。五只股票、同一天、五个不同的答案。
谁在用VWAP?用来做什么?
考核成交质量的机构。 一只基金买入大额头寸不可能只成交在一个价格上,它得到的是一个平均价。当日VWAP就是那把尺子:成交价低于VWAP的买单,付出的钱低于当日的平均成交价。交易执行部门用相对VWAP的滑点来汇报成绩,就像学生汇报分数一样——对标的通常是包含收盘集合竞价成交的全日基准。
算法交易。 券商提供VWAP算法——把一张大额母单拆成数百张小额子单,在整个交易日内按当日典型的成交量分布节奏投放,目标是成交在基准附近而不是把价格推走。每一张子单仍然要付买卖价差,其中很多成交的对手方是双边报价的做市商。
日内交易者——把VWAP指标当作日内参考线。 日内交易者把它挂在图上,作为当日的平均成本线:价格在VWAP之上,说明近期买入者付的价格高于当日均价;价格在VWAP之下则相反。这是对已经发生的成交所在位置的观察,而不是对价格下一步走向的预测。
锚定VWAP(Anchored VWAP) 是常见的变体:算术完全相同,只是起点不同——累计从交易者自己选定的一根K线开始(一次财报发布、一个IPO当日、一个显著的高点或低点),而不是从开盘开始。
常见问题
VWAP和均线(MA)有什么区别?
VWAP不是均线。移动平均线滑动一个固定的回看窗口,无论成交量多少,每根K线一票。VWAP从当日开盘开始累计,按成交股数给每根K线加权,并且每天归零。2026年7月2日,在完全相同的K线上,AAPL分钟收盘价的等权平均高出其当日VWAP 55美分。
VWAP包含盘前和盘后交易吗?
取决于平台。本页只使用常规交易时段的分钟K线,截至美东时间下午3:59(北京时间次日03:59)的最后一根K线——下午4:00(北京时间次日04:00)的收盘竞价成交打印在这根K线之后,而全日基准VWAP通常包含它。许多行情软件则从凌晨4:00(北京时间16:00)的盘前开始累计;在比较数字之前,先确认平台的设置。
股价在VWAP之上说明什么?
说明当前价格高于本交易日到目前为止每股的平均成交价。2026年7月2日,AAPL在常规交易时段最后一分钟收在其当日VWAP之上0.73%,而TSLA收在自身VWAP之下。这个比较描述的是当日已经发生的成交,并不预测下一步走势。
股价跌破VWAP说明什么?
说明当前价格低于本交易日到目前为止每股的平均成交价。2026年7月2日,TSLA在常规交易时段最后一分钟收在其当日VWAP之下(-1.71%),而AAPL收在自身VWAP之上。这个比较描述的是当日已经发生的成交,并不预测下一步走势。
VWAP的全称是什么?
VWAP是volume-weighted average price的缩写,即成交量加权平均价:一只股票在整个交易日内的平均成交价格,每一笔成交都按其成交股数加权。大额成交对它的影响大于小额成交——正是这一性质使它成为考核成交质量的标准基准。
锚定VWAP(Anchored VWAP)是什么?
就是同一套算法,只不过起点改为自选的一根K线,而不是当日开盘——比如一份财报、一次IPO、一个波段高点或低点。这条线跟踪的是自那个事件以来所有成交者付出的平均价格。
上面每一个面板都附带产生它的完整SQL——展开任意面板即可核对数字。若想计算任意代码、任意交易日的VWAP,可以在Strasmore终端用日常语言直接提问。