博客 / 詳情

返回

如何接入歐洲股票實時行情與歷史數據:德國、荷蘭、英國、意大利

如何接入歐洲股票實時行情與歷史數據:德國、荷蘭、英國、意大利

在全球金融市場日益互聯的今天,歐洲股票市場作為經濟引擎之一,吸引了無數投資者和開發者。德國(DE)、荷蘭(NL)、英國(GB)和意大利(IT)等市場以其成熟的交易體系和活躍的股票品種聞名。但如何高效接入這些市場的實時行情和歷史數據?本文介紹一款專業的股票行情接口提供商,通過低延時數據 API、股票接口和實時行情接口,幫助您輕鬆獲取金融行情,包括股票 tick 數據和全面的股票 API 接口。今天,我們將詳細指導您如何使用 WebSocket 和 REST API 接入歐洲股票的實時與歷史數據,讓您的量化策略、交易應用或數據分析更具競爭力。

多個市場支持,包括歐洲的核心交易所。無論是追蹤德國 DAX 指數成分股、荷蘭 AEX 指數股票、英國 FTSE 100 上市公司,還是意大利 MIB 指數下的藍籌股,他的的股票 api 接口都能提供毫秒級推送和歷史查詢,確保數據準確、低延時。接下來,我們分步解析接入流程,並提供 Python 代碼示例、參數表格、入參/出參示例以及響應示例。

實時行情接入:使用 WebSocket API 獲取股票 tick 和報價

WebSocket API 是實時行情接口的核心,支持 Level 1 & Level 2 數據推送,包括成交(tick)、報價(quote)和盤口(depth)。對於歐洲市場,您可以訂閲德國(region=DE)、荷蘭(NL)、英國(GB)和意大利(IT)的股票代碼,實現低延時數據 API 接入。連接過程包括連接、驗證、訂閲和心跳維護。

WebSocket API 參數説明

WebSocket 連接 URL:wss://api.itick.org/stock

參數名稱 描述 類型 必填
token API 密鑰,用於授權連接 String

訂閲請求(JSON 格式):

參數名稱 描述 類型 必填 示例
ac 操作類型,固定為 "subscribe" String "subscribe"
params 標的代碼,支持多個,用逗號分隔。格式:code$region(例如,德國股票:ADS$DE) String "ADS$DE,UNA$NL,VOD$GB,ENI$IT"
types 訂閲類型,支持 "tick"(成交)、"quote"(報價)、"depth"(盤口),用逗號分隔 String "tick,quote,depth"

入參示例(訂閲德國 Adidas、荷蘭 Unilever、英國 Vodafone 和意大利 Eni 的實時數據):

{
  "ac": "subscribe",
  "params": "ADS$DE,UNA$NL,VOD$GB,ENI$IT",
  "types": "tick,quote,depth"
}

出參示例(響應數據結構):

參數名稱 描述 類型 示例
code 響應代碼,1 表示成功 Integer 1
msg 消息描述 String "subscribe Successfully"
data 數據內容,包含 s(符號)、ld(最新價)、v(成交量)等,根據 types 不同而變 Object 詳見響應示例

Python 代碼示例:接入實時行情

以下是使用 Python 的 WebSocket 客户端示例,訂閲歐洲股票的股票 tick、報價和盤口數據。確保替換 your_token 為您的 API 密鑰。

import websocket
import json
import threading
import time

# WebSocket 連接地址和 token
WS_URL = "wss://api.itick.org/stock"
API_TOKEN = "your_token"

def on_message(ws, message):
    """處理接收到的消息"""
    print("Received message:", message)
    data = json.loads(message)

    # 處理連接成功的消息
    if data.get("code") == 1 and data.get("msg") == "Connected Successfully":
        print("Connected successfully, waiting for authentication...")

    # 處理認證結果
    elif data.get("resAc") == "auth":
        if data.get("code") == 1:
            print("Authentication successful")
            # 認證成功後訂閲數據
            subscribe(ws)
        else:
            print("Authentication failed")
            ws.close()

    # 處理訂閲結果
    elif data.get("resAc") == "subscribe":
        if data.get("code") == 1:
            print("Subscription successful")
        else:
            print("Subscription failed:", data.get("msg"))

    # 處理市場數據
    elif data.get("data"):
        # 打印實時行情數據
        market_data = data["data"]
        data_type = market_data.get("type")
        symbol = market_data.get("s")
        print(f"{data_type.upper()} data for {symbol}:", market_data)

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

def on_close(ws, close_status_code, close_msg):
    """連接關閉回調"""
    print("Connection closed")

def on_open(ws):
    """連接建立後的回調"""
    print("WebSocket connection opened")

def subscribe(ws):
    """訂閲行情數據"""
    subscribe_msg = {
        "ac": "subscribe",
        "params": "ADS$DE,UNA$NL,VOD$GB,ENI$IT",
        "types": "tick,quote,depth"
    }
    ws.send(json.dumps(subscribe_msg))
    print("Subscribe message sent")

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 sent")

if __name__ == "__main__":
    # 創建 WebSocket 連接,通過header傳遞token
    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()

    # 啓動 WebSocket 連接
    ws.run_forever()

響應示例

成交(tick)響應:

{
  "code": 1,
  "data": {
    "s": "ADS.DE",
    "ld": 225.215,
    "v": 16742235,
    "t": 1731689407000,
    "type": "tick"
  }
}

報價(quote)響應:

{
  "code": 1,
  "data": {
    "s": "ADS.DE",
    "ld": 225.215,
    "o": 226.27,
    "h": 226.92,
    "l": 224.44,
    "t": 1731689407000,
    "v": 16742235,
    "tu": 3774688301.452,
    "ts": 0,
    "type": "quote"
  }
}

盤口(depth)響應:

{
  "code": 1,
  "data": {
    "s": "ADS.DE",
    "a": [
      { "po": 1, "p": 3034.01, "v": 10.6023, "o": 10.6023 }
      // ... 更多賣盤
    ],
    "b": [
      { "po": 1, "p": 3034, "v": 20.9758, "o": 20.9758 }
      // ... 更多買盤
    ],
    "type": "depth"
  }
}

通過這個實時行情接口,您可以構建低延時交易系統,實時監控歐洲股票的金融行情和股票 tick 變化。

歷史數據接入:使用 REST API 查詢 K 線

對於歷史分析股票接口的 K 線查詢 API,支持從分鐘線到月線的多週期數據。歐洲市場如德國、荷蘭、英國和意大利的股票歷史數據完整,包括 OHLCV(開盤、最高、最低、收盤、成交量)和成交額,確保復權準確。

REST API 參數説明

請求 URL:GET https://api.itick.org/stock/kline?region={region}&code={code}&kType={kType}&limit={limit}&et={et}

參數名稱 描述 類型 必填 示例
region 市場代碼,支持 DE(德國)、NL(荷蘭)、GB(英國)、IT(意大利)等 String "DE"
code 產品代碼 String "ADS"
kType K 線類型(1:1 分鐘, 2:5 分鐘, 3:15 分鐘, 4:30 分鐘, 5:1 小時, 6:2 小時, 7:4 小時, 8:日, 9:周, 10:月) Integer 2
limit K 線數量 Integer 10
et 截止時間戳(為空默認為當前) Integer 1741239000000

入參示例(查詢德國 Adidas 的最近 10 條 5 分鐘 K 線):
https://api.itick.org/stock/kline?region=DE&code=ADS&kType=2&limit=10

出參示例(響應數據結構):

參數名稱 描述 類型 示例
t 時間戳 Number 1741239000000
o 開盤價 Number 535
h 最高價 Number 536
l 最低價 Number 534.5
c 收盤價 Number 534.5
v 成交數量 Number 104799385
tu 成交額 Number 56119888070.5

Python 代碼示例:查詢歷史 K 線

以下是使用 Python 的 REST 請求示例,查詢歐洲股票的歷史數據。確保替換 your_token 為您的 API 密鑰。

import requests

url = "https://api.itick.org/stock/kline?region=DE&code=ADS&kType=2&limit=10"

headers = {
    "accept": "application/json",
    "token": "your_token"
}

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

print(response.text)

響應示例

{
  "code": 0,
  "msg": null,
  "data": [
    {
      "tu": 56119888070.5,
      "c": 534.5,
      "t": 1741239000000,
      "v": 104799385,
      "h": 536,
      "l": 534.5,
      "o": 535
    }
    // ... 更多 K 線數據
  ]
}

這個股票 api 接口適合回測策略或構建圖表,提供全面的金融行情歷史洞察。

結語

歐洲股市作為全球金融市場的重要組成部分,掌握實時行情數據的獲取方式,是你踏入這片投資天地的第一步,也是構建成功投資策略的基石。無論是實時行情監控、高頻 Tick 分析還是歷史策略回測,你都可以在這裏找到適合的解決方案輕鬆接入德國、荷蘭、英國和意大利等歐洲市場的低延時數據 API、股票 tick 和歷史 K 線。

注:本文提供的代碼示例僅供參考,實際使用請根據官方最新文檔修改

GitHub:https://github.com/itick-org/

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

發佈 評論

Some HTML is okay.