iT邦幫忙

1

如何使用 A 股即時數據介面獲取分鐘級行情(實戰教學)

  • 分享至 

  • xImage
  •  

在開發行情展示工具、量化策略程式或資料監控系統時,穩定、低延遲的分鐘級行情是核心基礎。過去我在實作過程中,長期受到資料延遲、介面限流、行情遺失等問題困擾,直到改用 WebSocket 擷取 Tick 資料並於本機聚合計算,才有效解決多數痛點。
本文以實戰角度,完整說明如何運用 A 股即時數據介面,快速建置一套可靠的分鐘級行情服務,程式碼可直接複製使用。

一、傳統資料獲取方式的常見問題
開發即時行情系統時,多數人會遇到以下狀況:
HTTP 輪詢容易被限流,延遲多落在秒級,無法滿足即時需求。
第三方封裝 K 線邏輯不透明,回測與實盤容易出現落差。
交易高峰時段易發生資料遺失,影響指標計算與策略穩定性。
自訂指標、擴充性不足,難以對接個人策略框架。
最實用的解決方案:
WebSocket 長連線 → 即時接收 Tick → 本機聚合分鐘 K 線 → 持久化儲存

二、兩種連線方式比較
連線方式 延遲 穩定性 資源消耗 適用場景
HTTP 輪詢 秒級 普通,易被限流 高 非即時、低頻查詢
WebSocket 毫秒級 高,長連線穩定 低 即時行情、策略後台
針對即時行情場域,WebSocket 是更具優勢的選擇。

三、Tick 資料轉換為分鐘 K 線核心邏輯
Tick 為逐筆成交資料,包含價格、量、時間等資訊,依一分鐘窗口聚合即可產生標準 K 線:
開盤價:當前分鐘第一筆成交價
收盤價:當前分鐘最後一筆成交價
最高價:分鐘內最高價
最低價:分鐘內最低價
成交量:分鐘累計總量
程式碼實作:Tick 聚合分鐘行情

from datetime import datetime

minute_data = {}

def update_tick(tick):
    minute = datetime.fromtimestamp(tick['time']).strftime('%Y-%m-%d %H:%M')
    if minute not in minute_data:
        minute_data[minute] = {
            'open': tick['price'],
            'high': tick['price'],
            'low': tick['price'],
            'close': tick['price'],
            'volume': tick['volume']
        }
    else:
        minute_data[minute]['close'] = tick['price']
        minute_data[minute]['high'] = max(minute_data[minute]['high'], tick['price'])
        minute_data[minute]['low'] = min(minute_data[minute]['low'], tick['price'])
        minute_data[minute]['volume'] += tick['volume']

四、實戰連線:AllTick API WebSocket 串接
以 AllTick API 為例,直接透過 WebSocket 訂閱逐筆 Tick 資料,適合行情工具與策略系統使用。
完整連線程式碼

import websocket
import json

def on_message(ws, message):
    tick = json.loads(message)
    update_tick(tick)

ws = websocket.WebSocketApp(
    "wss://api.alltick.co/stock/ws",
    on_message=on_message
)
ws.run_forever()

資料推送後立即觸發處理,可達到秒級更新,適合量化策略與即時分析場景。

五、分鐘資料儲存方案
依開發與上線場景選擇儲存方式:
儲存格式 優點 缺點
CSV / Parquet 簡單易用、除錯方便 資料量大時讀取較慢
SQLite 單檔案、支援 SQL 不適合高併發寫入
Redis 讀取快速、適合即時服務 持久化能力有限
實務建議:先用 CSV/Parquet 驗證邏輯,穩定後再切換至資料庫或 Redis。

六、實務開發小技巧
一併計算均價、振幅等輔助指標,強化策略可用度。
支援多檔股票批次訂閱與彙整,提升分析效率。
使用歷史 Tick 重新計算,確保回測 K 線一致性。
自行建置的行情可自由擴充指標,彈性遠高於第三方 K 線。

七、總結
運用 WebSocket 即時 Tick + 本機聚合 建置 A 股分鐘級行情,是兼具低延遲、高穩定、高彈性的實戰方案。
相較於直接使用第三方 K 線,自行建置可完全掌控計算邏輯,方便擴充指標與對接策略,適合行情工具、量化系統、回測平台等各類開發場景。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言