529 / 736OHLCV

OHLCV

指定区间的开盘、最高、最低、收盘价与成交量

亚娜打开比特币图表,看到的不是长长的成交列表,而是一根根蜡烛线。每根蜡烛线都把一段时间压缩为几个信息:价格从哪里开始,最高和最低到过哪里,最后停在哪里,以及成交了多少。这份摘要叫作 OHLCV。它让过去的行情一目了然,却装不下全部交易过程。

OHLCV 代表 Open、High、Low、Close 和 Volume,即一个时段内的首笔成交价、最高价、最低价、最后成交价和成交量。这些数据属于特定市场及时间范围,描述已经发生的交易,而不是你现在可以买入的报价。

亚娜先选择交易所、交易对和时间间隔。交易对说明什么资产换什么资产,例如比特币兑美元。Kraken 将 Open 定义为时段内首笔交易的价格,Close 则是最后一笔的价格。High 和 Low 是实际达到的最高和最低成交价。亚娜不用逐笔阅读,就能看出价格区间和首尾变化。但这些价格都不自动等于平均价,也不是订单簿里的当前报价。 [1]

除了价格变化,亚娜还想知道实际成交了多少。Kraken 用交易对的基础资产表示 Volume,因此 BTC/USD 的成交量以比特币计。Binance 还区分计价资产的成交额,在这个例子中就是美元,并单独列出成交笔数。比特币数量、美元价值和成交次数是不同指标。一个没有单位的大数字并不能说明市场多活跃,首先要知道数据源究竟在统计什么。 [1] [2]

亚娜在别处看到不同的日线,怀疑数据有错。下结论前,她还得比较时间边界。Binance 可以通过时区参数 timeZone 定义区间,但用于选取数据的 startTime 和 endTime 仍按 UTC 这一通用世界时间基准解释。一天的起点不同,纳入的交易就可能不同。因此只写日线还不够,市场、时间范围和时间戳的含义都需要一致。 [2]

实时图上最新的蜡烛线会不断变化。Kraken 的 REST 接口供程序按需请求数据,其中始终包含当前尚未结束的时段。它的 Close 暂时只是最近已知成交价,不是最终收盘价,成交量也可能继续增加。亚娜比较已结束时段时,需要把这根未完成的蜡烛线区别开来,否则就是把已经定稿的历史与仍在形成的数据放在一起比较。 [3]

有时数据中缺少一个时段。Coinbase 提醒历史记录可能不完整,而且没有交易事件的时段不会发布蜡烛线。因此亚娜不能把空白理解成价格跌到了零。她首先需要确认,是没有发生交易,还是数据缺失。沿用上一笔价格也不会产生一笔新交易;如果图表用这种方式填补空白,就应让读者能够识别这项处理。 [4]

编写图表程序还有一个陷阱:OHLCV 这个缩写并不保证返回字段的排列顺序。Coinbase 列出的是时间、Low、High、Open、Close、Volume。Kraken 还单独提供成交笔数和 VWAP,也就是按成交数量加权的平均价格。程序必须按照具体接口的文档读取每个字段。字段错位未必让图表明显损坏,也可能画出一条看似可信、含义却错误的曲线。 [4] [1]

从 Kraken 的定义还能推导正确的区间合并方法。如果亚娜拥有同一市场完整、连续且互不重叠的时段,应取第一个 Open 和最后一个 Close。High 取各最高价中的最大值,Low 取各最低价中的最小值,可比较的 Volume 则相加。把开盘价求平均会得到另一种结果。合并前还须检查时间顺序、重复数据及缺口,相加并不能补回遗漏的交易。 [1]

Coinbase 的汇总字段没有保留完整成交顺序,也没有保留订单簿中的等待报价。蜡烛线可以同时显示高价和低价,却不告诉你哪个先出现。亚娜拿历史数据测试假设订单时,单凭 High 和 Low 无法证明价格门槛被触及的顺序,也无法证明订单真的会成交。OHLCV 是了解过去的有用摘要,但不能取代逐笔记录或自己的订单确认。 [4]

示例 · OHLCV

亚娜怎样把交易整理成摘要

在一个虚构且已结束的时段内,依次成交:0.01 BTC,价格 100000 USD/BTC;0.02 BTC,价格 100020 USD/BTC;0.01 BTC,价格 99980 USD/BTC;最后是 0.03 BTC,价格 100010 USD/BTC。亚娜取首价为 Open 100000,最高价为 High 100020,最低价为 Low 99980,末价为 Close 100010,价格单位均为 USD/BTC。把数量相加得到 Volume:0.01 + 0.02 + 0.01 + 0.03 = 0.07 BTC。这一行能迅速展示区间和总量,但已无法说明最高价先于最低价出现。这不是实时行情,也不保证亚娜的订单能按这些价格成交。

要获得更完整的理解,请将本词条与以下词条结合阅读: Candlestick chart, Timeframe, Technical analysis, Order book, Backtesting, Volume weighted average price. 反向关联还来自: Technical analysis, Timeframe, Candlestick chart, Simple moving average.

01下一个 Open 必须等于上一个 Close 吗?

不必。下一个 Open 是下一时段的第一笔真实成交,不是必须复制的旧价格。交易可以在另一价格发生,中间也可能有交易暂停或数据缺口。

02能从 OHLCV 还原每一笔交易吗?

不能。不同的成交序列可能产生完全相同的极值、开盘价、收盘价和成交量。要了解顺序,需要更详细的记录;要判断自己的订单,还需要当时可用的报价和成交规则。

DOC · 001Kraken — WebSocket OHLC文档 DOC · 002Binance — Spot Market Data文档 DOC · 003Kraken — REST OHLC文档 DOC · 004Coinbase — Product Candles文档
修订日期: 来源优先 · 非投资建议