交易中的Tick是什麼?最小變動價位、Tick價值與Tick圖詳解

交易中的Tick是什麼?最小變動價位、Tick價值與Tick圖詳解
"Tick"是交易中使用最頻繁、也最容易混淆的詞之一。根據語境,它既可以指最小的價格變動單位,也可以指行情中的一筆成交。兩種含義都很重要,並且共同催生了日內交易者最愛用的圖表之一:Tick 圖。
Tick 的兩種含義
1. 作為價格單位的 Tick。 交易所會為每個品種規定最小价格變動,稱為最小變動價位(Tick Size)。股票可能以 0.01 美元為單位變動,E-mini 標普 500 期貨則以 0.25 個指數點為單位變動。
2. 作為一筆成交(或報價更新)的 Tick。 在行情數據中,一個 Tick 就是一個事件——一筆成交及其價格、數量和時間戳。由這些事件組成的數據流稱為 Tick 數據或逐筆數據,詳見 Tick數據詳解。
最小變動價位與每跳價值
- Tick Size(最小變動價位) = 最小价格增量
- Tick Value(每跳價值) = 一手/一張合約變動一個 Tick 的盈虧金額
每跳價值 = 最小變動價位 × 合約乘數
| 品種 | 最小變動價位 | 合約乘數 | 每跳價值 |
|---|---|---|---|
| E-mini 標普500(ES) | 0.25 點 | 每點 50 美元 | 12.50 美元 |
| 微型 E-mini 標普500(MES) | 0.25 點 | 每點 5 美元 | 1.25 美元 |
| 原油(CL) | 0.01 美元/桶 | 1,000 桶 | 10.00 美元 |
| 黃金(GC) | 0.10 美元/盎司 | 100 盎司 | 10.00 美元 |
| 美股 | 0.01 美元 | 1 股 | 每股 0.01 美元 |
合約規格可能調整,交易前請以交易所公佈為準。
一個點等於多少 Tick?
用 1 個點除以最小變動價位:
每點 Tick 數 = 1 / 最小變動價位
ES 期貨:1 / 0.25 = 每點 4 個 Tick。原油上漲 1 美元等於 100 個 Tick。外匯市場通常用**點(pip)**計量(多數貨幣對為 0.0001),很多經紀商還會報價到更小的 0.00001。
什麼是 Tick 圖?
Tick 圖按固定的成交筆數而非固定時間生成新K線。在 233 Tick 圖上,每根K線恰好包含 233 筆成交。
| 時間圖(如 5 分鐘) | Tick 圖(如 233 Tick) | |
|---|---|---|
| 何時生成新K線 | 過了 5 分鐘 | 發生 233 筆成交 |
| 活躍行情 | K線少,每根信息量大 | K線多,細節更豐富 |
| 清淡行情 | 大量平淡、信息量低的K線 | K線少,噪音更低 |
| 適合 | 各類風格、多週期分析 | 活躍日內交易、剝頭皮 |
Tick 圖在成交活躍時展開、清淡時壓縮,因此能顯示真實交易發生在哪裏。常見參數有 133、233、512、1000 Tick——具體數字不如保持一致重要。
優缺點
優點: 過濾清淡時段,更早發現動能爆發,適合剝頭皮與訂單流分析。 缺點: 需要真正的逐筆數據,不適合成交稀少的品種,跨市場比較較難。
用 Python 基於實時逐筆數據生成 Tick 圖
生成 Tick 圖需要每一筆成交。iTick Tick數據API 通過 WebSocket 推送逐筆成交。以下腳本每 100 個 Tick 聚合成一根 OHLCV K線:
import json
import websocket # pip install websocket-client
TOKEN = "YOUR_API_TOKEN"
TICKS_PER_BAR = 100
bar, count = None, 0
def on_open(ws):
ws.send(json.dumps({"ac": "subscribe", "params": "AAPL$US", "types": "tick"}))
def on_message(ws, message):
global bar, count
msg = json.loads(message)
if msg.get("data", {}).get("type") != "tick":
return
t = msg["data"]
price, size = float(t["ld"]), float(t.get("v", 0)) # 字段名請以 iTick WebSocket 文檔為準
if bar is None:
bar = {"open": price, "high": price, "low": price, "close": price, "volume": 0}
bar["high"] = max(bar["high"], price)
bar["low"] = min(bar["low"], price)
bar["close"] = price
bar["volume"] += size
count += 1
if count == TICKS_PER_BAR:
print("新 Tick K線:", bar)
bar, count = None, 0
ws = websocket.WebSocketApp("wss://api.itick.org/stock", header={"token": TOKEN},
on_open=on_open, on_message=on_message)
ws.run_forever(ping_interval=20)
不同資產類別的消息字段請查閲 iTick WebSocket 文檔,聚合邏輯對股票、期貨和加密貨幣完全通用。
常見問題
交易中 1 個 Tick 是什麼意思? 既可以指品種允許的最小价格變動,也可以指行情數據流中的一筆成交。
ES 一個點是多少個 Tick? 4 個,最小變動價位是 0.25 點。
Tick 和 pip 一樣嗎? 不完全一樣。pip 是外匯的慣用單位(通常 0.0001),Tick 是交易場所允許的最小變動,可能更小。
Tick 圖和時間圖哪個好? Tick 圖適合流動性好的市場中的活躍日內交易者;時間圖更通用,更適合多週期分析。
獲取逐筆 Tick 數據
Tick 圖的準確性取決於背後的 Tick 數據源。iTick 以毫秒級延遲提供股票、期貨、外匯和加密貨幣的逐筆成交與 Level 2 盤口。免費開始。