成交量加权平均价(VWAP)是基于选定区间内的价格与成交量构建的基准。在加密货币中,重置规则本身就是计算的一部分:市场全天候交易,因此“日线”数值需要明确边界和时区。改变边界,就会改变哪些成交或K线计入平均值。一条没有重置规则、价格输入和成交量单位的线,既难以复现,也容易被误读。
用K线示例演算
对于基于K线的近似计算,一种常见输入是典型价格:(最高价 + 最低价 + 收盘价)÷ 3。将该价格乘以该K线的基础资产成交量,将各乘积相加,再除以基础资产总成交量。以下三根虚构K线让算术过程清晰可见:
| K线 | 最高价 / 最低价 / 收盘价 | 典型价格 | 基础资产成交量 | 价格 × 成交量 |
|---|---|---|---|---|
| 1 | 101 / 99 / 100 | 100 | 10 | 1,000 |
| 2 | 102 / 99 / 102 | 101 | 20 | 2,020 |
| 3 | 105 / 101 / 103 | 103 | 5 | 515 |
第2根K线之后,累计值为 3,020 ÷ 30 = 100.67。第3根K线之后,为 3,535 ÷ 35 = 101.00。最后一根K线的典型价格升至 103,而累计平均值仅从 100.67 变为 101.00,因为该K线成交量较低。这是教学演算,不是市场观察,也不是交易结果。
逐笔成交层面的VWAP则按每笔合格交易的成交数量加权。K线近似会丢失K线内部的路径,可能与逐笔成交层面的数值不同。请核实数据提供方所称的“成交量”含义:它可能指基础资产单位、计价货币成交额,或带有乘数的合约张数。这些单位不可互换。缺失区间和数据提供方的归一化处理也会改变分母,从而改变结果。例如,两笔虚构成交分别为 1 BTC 在 $100 和 $110,按基础资产成交量计算的VWAP为 ($100 + $110) ÷ 2 = $105。若改按其 $100 和 $110 的计价货币成交额加权,则为 ($100 × $100 + $110 × $110) ÷ ($100 + $110) = $105.24。这是名义价值加权平均,与按基础资产成交量的计算不同。若本意是按基础资产数量加权,需按各价格将计价货币成交额换算回基础资产单位;对于衍生品,还需核实合约乘数。
在数据边界处核实成交量字段
字段名称是方法的一部分。Binance 现货K线接口将基础资产成交量与计价资产成交量分别标注:在其文档所述的响应元组中,它们分别位于 [5] 和 [7] 位置。因此,一根 BTCUSDT 现货K线可以同时带有同一区间的 BTC 数量序列和 USDT 成交额序列。选择成交额字段会给予价格更高的活动更大权重;它无法复现按 BTC 数量计算的VWAP。该字段编号属于此接口的架构,因此不要将其套用到其他交易所或产品。
TradingView 的图表信息参考指出,volume 的单位因品种而异:对于加密货币交易对,通常为基础货币;对于期货及其他衍生品,则为合约张数。请同时确认图表所报告的单位以及 API 字段。对于合约序列,在换算数量之前,先记录合约乘数和敞口定义;合约张数并不自动等于一定数量的 BTC。请将原始字段、单位、计价货币、交易对、时间周期、时区和来源版本与计算出的序列一并保存。保留原始值和归一化值,以便其他审阅者能够复现分母。
声明重置规则,而不只是公式
对于累计的时段计算,请记录重置时间戳、时区和夏令时规则。锚定VWAP从选定的事件或日期开始重置;请记录该锚点是如何选定的,以及在决策时是否已知。在看到摆动高点之后再选择锚点,会把事后之明引入研究。在 TradingView Pine Script v6 文档中,VWAP 示例接受一个显式的重置条件。这说明了某种实现选择;它并不确立一个适用于所有加密货币市场或图表工具的通用时段。
加密货币没有统一的开盘钟。UTC 日、当地股票交易时段和事件锚点会形成不同的窗口。如果假设涉及某个具名的当地时段,请用带时区数据库的方式换算每个日期,而不是在夏令时变化期间套用固定的 UTC 偏移。在评估结果之前先确定边界;尝试多个重置时间并保留表现最好的一个,是另一种参数搜索。
信号时间戳同样重要。基于某根K线最终最高价、最低价、收盘价和成交量的已完成K线VWAP,在该K线收盘前并不已知;实时指标在该K线仍在形成时可能变动。如果某条规则将最终收盘价与该最终VWAP进行比较,请将信号标注在收盘时,并建模为在之后可得的某个价格入场。TradingView 当前的策略文档称,其默认的历史经纪商模拟市价单在下一根K线开盘时成交。这是特定平台的模拟惯例,并不保证真实交易所或本产品引擎会如此。在信号K线收盘时成交,需要另行论证的时点模型,并且如果决策使用了在该收盘时才最终确定的数据,可能产生偏乐观的结果。
在测试之前,请写下市场与数据源、价格输入、成交量单位、重置边界与时区、缺失或零成交量K线的处理方式、信号时间戳、假定的入场时点、手续费和价差。然后冻结这些输入。缺失区间可能同时扭曲累计的分子和分母;没有合格成交量的时段没有定义明确的VWAP。如果在查看结果后更改重置规则会改变某项决策,请记录新版本,并在之后未触碰的数据上评估它。
把这条线转化为可检验的问题
VWAP 可以描述相对于基准的执行情况,也可以作为研究规则的输入。价格穿越该线本身并不是交易理由。请写下确切的触发条件、它何时变得可知、入场假设、出场、失效条件和基准。用声明的替代重置边界以及更高的手续费和价差假设重新计算。将所有测试过的变体保留在实验日志中,以免最具吸引力的窗口被误认为是未被触碰过的新发现。
SuperQuant 内置的小时级示例是合成数据,无法回答特定交易所、逐笔成交层面的执行问题。当前研究界面不提供通用的VWAP指标构建器。请使用市场时段指南声明窗口,使用数据质量清单检查覆盖范围,并使用成本指南质疑看似微小的优势。这是方法示例,不是信号,也不构成个性化投资建议。
下载 VWAP 输入审计工作表,在计算或比较序列之前记录字段映射、单位、重置规则、时间戳和测试变体。