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線。