OHLCV数据是什么?K线数据含义、格式及如何通过API获取

OHLCV数据是什么?K线数据含义、格式及如何通过API获取
只要你看过K线图、做过回测或算过均线,就一定用过 OHLCV 数据。它是汇总某一时间段市场活动的标准格式,几乎所有交易库、图表工具和机器学习流程都以它为输入。
OHLCV 的含义
OHLCV 分别代表:
| 字母 | 字段 | 含义 |
|---|---|---|
| O | Open 开盘价 | 该周期内第一笔成交价 |
| H | High 最高价 | 该周期内最高成交价 |
| L | Low 最低价 | 该周期内最低成交价 |
| C | Close 收盘价 | 该周期内最后一笔成交价 |
| V | Volume 成交量 | 该周期内总成交数量 |
OHLC 数据即不含成交量的版本,常见于外汇市场,因为外汇没有统一的集中交易所成交量。
每一行代表一根 K线(也称蜡烛线),对应固定周期,如 1 分钟、1 小时或 1 天。
OHLCV 示例
| 时间 (UTC) | 开盘 | 最高 | 最低 | 收盘 | 成交量 |
|---|---|---|---|---|---|
| 2026-10-26 | 230.10 | 233.45 | 229.80 | 232.90 | 51,203,400 |
| 2026-10-27 | 232.95 | 234.10 | 231.20 | 231.75 | 44,870,100 |
| 2026-10-28 | 231.60 | 236.00 | 231.10 | 235.40 | 58,112,900 |
数值仅作示意。
从 OHLCV 到K线图
一根K线可视化一行 OHLCV:
- 实体从开盘价延伸到收盘价——收盘高于开盘为阳线,反之为阴线。
- 影线延伸到最高价和最低价。
- 成交量通常以柱状图显示在价格图下方。
常用 K 线周期
- 日内: 1、5、15、30、60 分钟线,用于日内交易与执行研究。
- 日线: 回测和选股最常用的周期。
- 周线 / 月线: 长期趋势与组合分析。
K线由底层的 Tick 数据 聚合而成:周期内每笔成交都会更新最高价、最低价、收盘价和成交量。
OHLCV 数据的用途
数据质量陷阱
- 时区: 用 UTC 存储时间戳,展示时再转换。iTick 返回毫秒级 Unix 时间戳。
- 缺失K线: 节假日和流动性差的时段会产生缺口,不要盲目向前填充。
- 公司行为: 拆股和分红会改变历史价格,需确认数据是否复权。
- 未完成K线: 当前正在形成的K线在周期结束前会不断变化,回测时应剔除。
- 交易时段定义: "日线"可能包含或不包含盘前盘后成交。
如何通过 API 下载 OHLCV 数据
iTick 历史行情数据API 以统一的 JSON 格式返回股票、外汇、加密货币、指数、期货和基金的 OHLCV K线:
{"t": 1761609600000, "o": 231.60, "h": 236.00, "l": 231.10, "c": 235.40, "v": 58112900, "tu": 13612345678.0}
字段:t 时间戳(毫秒)、o 开盘、h 最高、l 最低、c 收盘、v 成交量、tu 成交额。
Python 示例:OHLCV 导出为 CSV
import requests
import pandas as pd
TOKEN = "YOUR_API_TOKEN"
headers = {"accept": "application/json", "token": TOKEN}
def get_ohlcv(asset, region, code, ktype=8, limit=1000):
url = f"https://api.itick.org/{asset}/kline"
params = {"region": region, "code": code, "kType": ktype, "limit": limit}
rows = requests.get(url, params=params, headers=headers, timeout=10).json()["data"]
df = pd.DataFrame(rows).rename(columns={"t": "time", "o": "open", "h": "high",
"l": "low", "c": "close", "v": "volume"})
df["time"] = pd.to_datetime(df["time"], unit="ms", utc=True)
return df.set_index("time").sort_index()
aapl = get_ohlcv("stock", "US", "AAPL")
eurusd = get_ohlcv("forex", "GB", "EURUSD")
btc = get_ohlcv("crypto", "BA", "BTCUSDT")
aapl.to_csv("AAPL_ohlcv.csv")
print(btc.tail())
修改 kType 可在分钟线、小时线、日线、周线、月线之间切换(取值见文档),使用 et(结束时间)参数可向前翻页获取更早的历史数据。
常见问题
OHLCV 代表什么? 开盘价、最高价、最低价、收盘价、成交量。
OHLC 和 OHLCV 有什么区别? OHLCV 包含成交量,OHLC 不包含。
哪里可以免费获取 OHLCV 数据? iTick 提供免费 API Key,可在个人场景下获取股票、外汇、加密货币历史 OHLCV 数据。
OHLCV 和 K 线数据是一回事吗? 是的,"K线"是亚洲市场对蜡烛图(OHLCV)数据的常用叫法。
从干净的 OHLCV 数据开始
可靠的 OHLCV 历史数据是一切指标与回测的基础。免费获取 iTick API Key,几分钟内下载全球市场多年K线。