博客 / 詳情

返回

如何獲取美股實時行情:Python 量化交易指南

在量化交易領域,美股實時行情數據是構建高效交易策略的核心要素。通過實時 Tick、實時報價、美股歷史 K 線、美股歷史數據等信息,交易者可以實現精準的市場分析和決策。本文將介紹如何利用股票數據 API、股票數據接口、金融 API、金融行情數據 API 以及股指期貨 API 等工具,在 Python 環境中獲取這些數據,幫助初學者快速上手量化交易實踐。

為什麼需要美股實時行情數據?

量化交易依賴於高質量的數據源,尤其是美股市場的高流動性要求實時性和準確性。實時 Tick 數據提供逐筆成交細節,實時報價包括開盤、最高、最低、收盤價等 OHLC 信息,而歷史 K 線則用於回測策略。通過可靠的 API 接口,我們可以輕鬆集成這些數據,避免手動採集的低效。

本文將以 iTick API 為例進行演示。該 API 覆蓋美股(US 地區)、港股(HK)、A 股(SZ/SH)等市場,支持 RESTful 和 WebSocket 兩種方式。注意:使用前需在官網註冊獲取 API Token。

獲取實時 Tick 數據

實時 Tick 數據包括最新價、成交數量和時間戳,適合高頻交易監控。iTick 提供 GET 接口:/stock/tick?region={region}&code={code}

Python 代碼示例

import requests

# API endpoint
url = "https://api.itick.org/stock/tick?region=US&code=AAPL"  # 以蘋果股票為例

headers = {
    "accept": "application/json",
    "token": "your_api_token"  # 替換為你的實際Token
}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    data = response.json()
    print("實時Tick數據:", data)
else:
    print("請求失敗:", response.status_code)

響應示例:

{
  "code": 0,
  "msg": null,
  "data": {
    "s": "AAPL",
    "ld": 225.215,
    "t": 1754554087000,
    "v": 1134500
  }
}

這裏,ld是最新價,v是成交量,t是時間戳。通過輪詢此接口,你可以實現簡單的實時監控。

使用 WebSocket 獲取實時報價和盤口

對於毫秒級推送,WebSocket 是首選。iTick 的 WebSocket 支持訂閲 quote(報價)、depth(盤口)和 tick(成交)類型。連接後發送訂閲指令,即可接收流式數據。

Python 代碼示例

使用websocket庫實現:

import websocket
import json
import threading
import time

# WebSocket URL和Token
WS_URL = "wss://api.itick.org/stock"
API_TOKEN = "your_api_token"  # 替換為你的實際Token

def on_message(ws, message):
    data = json.loads(message)
    if data.get("code") == 1 and data.get("msg") == "Connected Successfully":
        print("連接成功")
    elif data.get("resAc") == "auth" and data.get("code") == 1:
        print("認證成功")
        subscribe(ws)  # 訂閲數據
    elif data.get("data"):
        market_data = data["data"]
        data_type = market_data.get("type")
        symbol = market_data.get("s")
        print(f"{data_type.upper()} 數據 for {symbol}:", market_data)

def on_error(ws, error):
    print("錯誤:", error)

def on_close(ws, close_status_code, close_msg):
    print("連接關閉")

def on_open(ws):
    print("WebSocket連接打開")

def subscribe(ws):
    subscribe_msg = {
        "ac": "subscribe",
        "params": "AAPL$US,TSLA$US",  # 支持多個股票,格式:code$region
        "types": "depth,quote,tick"   # 訂閲類型
    }
    ws.send(json.dumps(subscribe_msg))
    print("訂閲消息已發送")

def send_ping(ws):
    while True:
        time.sleep(30)  # 每30秒心跳
        ping_msg = {
            "ac": "ping",
            "params": str(int(time.time() * 1000))
        }
        ws.send(json.dumps(ping_msg))
        print("Ping 已發送")

if __name__ == "__main__":
    ws = websocket.WebSocketApp(
        WS_URL,
        header={"token": API_TOKEN},
        on_open=on_open,
        on_message=on_message,
        on_error=on_error,
        on_close=on_close
    )

    # 啓動心跳線程
    ping_thread = threading.Thread(target=send_ping, args=(ws,))
    ping_thread.daemon = True
    ping_thread.start()

    ws.run_forever()

此代碼連接 WebSocket,認證後訂閲 AAPL 和 TSLA 的美股數據。響應包括報價(OHLC、成交量)、盤口(買賣五檔)和成交細節。適合構建實時交易系統。

獲取美股歷史 K 線數據

歷史 K 線用於策略回測,支持分鐘線到月線。接口:/stock/kline?region={region}&code={code}&kType={kType}&limit={limit}&et={et}

  • kType:1(1 分鐘)、2(5 分鐘)、...、10(月 K)

Python 代碼示例

import requests

# API endpoint
url = "https://api.itick.org/stock/kline?region=US&code=AAPL&kType=1&limit=10"  # 最近10條1分鐘K線

headers = {
    "accept": "application/json",
    "token": "your_api_token"  # 替換為你的實際Token
}

response = requests.get(url, headers=headers)

if response.status_code == 200:
    data = response.json()
    print("歷史K線數據:", data)
else:
    print("請求失敗:", response.status_code)

響應示例:

{
  "code": 0,
  "msg": null,
  "data": [
    {
      "tu": 56119888070.5,
      "c": 225.215,
      "t": 1741239000000,
      "v": 104799385,
      "h": 226.92,
      "l": 224.44,
      "o": 226.27
    }
  ]
}

通過調整kTypelimit,你可以獲取不同週期的歷史數據,用於趨勢分析或機器學習模型訓練。

結語

本文詳細介紹瞭如何使用 Python 獲取美股實時行情數據,包括實時 Tick 數據、WebSocket 實時報價和盤口數據,以及歷史 K 線數據。這些數據是構建量化交易策略的重要基礎。通過實際代碼示例,我們展示瞭如何用簡單的方式接入這些金融數據 API,並對獲取的數據進行初步處理。

在實際應用中,你可以將這些數據整合進更復雜的量化交易系統,結合技術指標計算、策略回測框架以及風險管理模塊,構建完整的自動化交易解決方案。同時需要注意 API 調用的頻率限制、數據安全性及合規性等問題。

希望這篇指南能幫助你快速入門美股量化交易的數據獲取環節。隨着實踐經驗的積累,你可以進一步探索高級功能,如多市場數據同步、高頻交易優化和大數據量下的性能調優等課題。

提示:本文基於公開文檔整理,僅供學習參考,非投資建議

參考文檔:https://docs.itick.org/websocket/stocks
GitHub:https://github.com/itick-org/

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.