休市提醒日股將於 2026-11-03 休市(文化日),距今天還有 5 天。全部公告
文章

延遲行情 vs 實時行情:套餐選擇決策框架

選套餐不該問「哪個更高級」,而該問「決策週期有多長」。本文給出延遲數據夠用的四類場景、必須上實時的三類場景、按市場維度的權限對照表,以及代碼裡判斷 delayed 字段的正確做法。

選套餐時最容易犯的錯誤,是默認「實時一定比延遲好」。事實上,很多團隊每月多付幾百美元買來的實時數據,用在了根本不需要實時的場景上;而另一些團隊為了省錢選了延遲套餐,結果核心功能不可用。

判斷標準不應該是「哪個更高級」,而應該是你的業務決策週期有多長。

「延遲」到底意味著什麼

延遲行情指的是數據不是隨市場變化即時下發,而是經過一段時間後才可用。它與你熟悉的「實時行情」在數據結構上完全一致——同樣的字段、同樣的接口、同樣的格式,區別只在時效性。

這一點很重要,因為它意味著:從延遲切換到實時,不需要改代碼結構,只需要改套餐權限。 這也讓「先用延遲開發、上線前再升級」成為一種可行的策略。

怎麼在代碼裡判斷拿到的是不是延遲數據

不要靠假設,要靠字段。行情接口的響應裡帶有 delayed 布爾字段,為 true 時表示該數據當前是延遲的:

Python
import httpx

resp = httpx.get(
    "https://api.tiqex.io/api/v1/market/quote",
    params={"codes": "AAPL,EURUSD,BTCUSDT"},   # 單次最多 50 個 codes
    headers={"X-API-Key": "your_api_key"},
    timeout=10,
)
body = resp.json()
for row in body["data"]:
    flag = "延遲" if row.get("delayed") else "實時"
    if row.get("unavailable"):
        flag = "不可用"
    print(f"{row['code']:<10} {flag}  last={row.get('last')}")

把 delayed 與 unavailable 都納入判斷,可以避免一個常見事故:開發環境用免費套餐跑通,生產環境上線後發現某些市場其實是延遲的,而代碼裡沒有任何校驗。 建議在應用啟動時做一次自檢,把各市場的實時/延遲狀態打印出來,或直接對關鍵市場斷言必須為實時。

延遲數據足夠用的四類場景

  1. 歷史數據分析與可視化:只要數據最終一致,用於圖表、報表、趨勢分析時延遲完全不影響結論。
  2. 低頻策略與再平衡:按日或按周調倉的策略,決策週期以天計,秒級延遲毫無意義。
  3. 組合估值與風險快照:每日收盤後的估值、持倉核對、風險敞口計算,用延遲數據即可。
  4. 開發與測試:接口聯調、單元測試、CI 流水線驗證,延遲數據完全夠用,而且免費。

必須用實時數據的三類場景

  1. 交易執行與下單決策:價格是決策的直接輸入,延遲意味著按過時價格成交。
  2. 實時告警與風控:止損提醒、異常波動告警、風險閾值觸發,延遲會讓告警失去意義。
  3. 面向用戶的實時界面:交易終端、行情看板、投研工具。用戶能直接看到價格在跳,延遲數據會造成明顯的體驗落差和信任問題。

這三類的共同點是:延遲直接改變了決策結果或用戶感知。只要滿足這一條,就必須上實時。

按場景對照套餐

你的場景所需權限參考套餐
接口聯調、原型驗證延遲即可Free
歷史數據回填與報表延遲即可Free / Growth
加密與金屬的實時監控實時(部分市場)Growth
跨市場實時看板(股票 + 外匯 + 加密)全市場實時Pro
Level 2 深度與私有連接全市場 Level 2Enterprise

值得注意的一點是:不同套餐的市場權限是分檔的,不是簡單的「全延遲 / 全實時」。某個中間檔套餐可能讓加密與金屬實時,而股票、外匯、指數仍是延遲。所以選型時要按市場維度核對,而不是隻看套餐名稱。

混合方案:把實時額度花在刀刃上

如果預算有限但又有實時需求,常見的做法是混合使用:

  • 關鍵標的走實時流式:只對需要實時決策的少數標的訂閱 WebSocket。
  • 其餘走延遲查詢:非關鍵標的用 REST 定期拉取延遲數據。
  • 前端明確標註數據時效:延遲數據在界面上加時間戳或標識,避免用戶誤判。

這樣既控制了成本,也避免了「全量實時」帶來的額度與流量壓力。需要注意 WebSocket 的訂閱數量受套餐約束,選型時要一併確認。

你的策略能容忍多少延遲

一個實用的判斷方法,是從決策週期反推延遲預算:

策略週期決策頻率有意義的延遲量級
高頻 / 做市亞秒級個位數毫秒
日內交易秒級到分鐘級一秒以內
每日調倉每天一次分鐘級
周度 / 月度配置數天到數週小時級

拿這張表對照你自己的決策頻率。如果最快的決策一天只發生一次,為毫秒級數據付費就是在買你永遠用不上的精度;如果最快的決策每秒都在發生,延遲數據會讓系統「算錯」,而不只是「慢一點」。

一個容易忽略的坑:延遲數據的緩存語義

延遲數據有個特性容易被忽略:同一時刻多次請求,返回的可能是同一個值。這意味著你在延遲模式下寫的緩存邏輯,切換到實時後會失效——因為實時數據的每次請求都可能返回新值。

典型症狀是:開發時緩存 60 秒看起來完全沒問題,上線切實時後用戶反饋「價格不動」。所以緩存策略必須與數據時效性匹配:延遲數據可以長緩存,實時數據應該走推送而不是輪詢 + 緩存。

常見問題

延遲數據會影響回測結果嗎?

會,但影響取決於策略週期。按日調倉的策略,延遲幾分鐘對結果影響極小;分鐘級或更短週期的策略,延遲會直接改變信號,回測結果不可信。

免費套餐的數據可以用來做什麼?

免費套餐覆蓋加密、美股與金屬的延遲數據,適合接口聯調、原型驗證、歷史數據回填和低頻分析。它的定位是讓你在零成本下跑通完整流程。

怎麼確認某個市場在我的套餐下是實時還是延遲?

兩種方式:查響應裡的 delayed 字段,或對照套餐的市場權限說明。建議在代碼裡對關鍵市場做斷言,避免上線後才發現是延遲數據。

可以先按延遲開發,之後再切實時嗎?

可以,而且推薦。延遲與實時的數據結構完全一致,切換隻需改套餐權限,不需要重構代碼。但要注意緩存策略需要相應調整。

Level 2 數據屬於哪一類?

Level 2 提供更深的訂單簿檔位,屬於更高權限的範疇,通常只在最高檔套餐開放。它和「實時 / 延遲」是兩個獨立的維度——Level 1 也可以是實時的。

延遲數據更便宜是因為質量更差嗎?

不是。底層是同一份數據源,區別只在於你什麼時候能拿到。延遲檔位更便宜,是因為數據的即時商業價值更低,而不是因為準確性更差。

下一步

先明確你的決策週期,再按市場維度核對權限。各套餐的市場覆蓋與實時 / 延遲劃分見 套餐定價;具體市場的權限說明可查閱 加密貨幣行情 與 美股行情 頁面;接口返回的 delayed 與 unavailable 字段定義見 多市場行情接口文檔;如果你在權衡訂單簿深度,可先看 Level 1 與 Level 2 對比。