韓國股票 API 接入指南:KRX 即時行情與歷史數據獲取

  1. iTick
  2. 教程
韓國股票 API 接入指南:KRX 即時行情與歷史數據獲取 - iTick
韓國股票 API 接入指南:KRX 即時行情與歷史數據獲取

韓國交易所(KRX)是全球最具活力的證券市場之一,KOSPI 與 KOSDAQ 兩大板塊匯聚了三星電子、SK 海力士、現代汽車等享譽全球的企業。隨著韓流文化、半導體產業以及新能源汽車供應鏈的全球影響力持續提升,韓國股市已成為量化交易者與跨境投資人高度關注的市場。

本指南將詳細說明如何透過 iTick API 一站式接入韓國股票市場,獲取即時行情、歷史 K 線數據,並提供完整的 Python 實戰程式碼,協助您快速建構韓國股市數據分析系統。

為什麼選擇 iTick?

  • 全面覆蓋:支援 KOSPI、KOSDAQ 全部股票
  • 低延遲:WebSocket 即時推送 <50ms
  • 多協議支援:REST + WebSocket + FIX
  • 免費方案:基礎行情無限次呼叫

一、快速開始

1. 註冊並取得 API Token

前往 iTick 官網 註冊帳號,在控制台取得您的專屬 Token。

2. 安裝依賴套件

      pip install requests websocket-client pandas

    

二、核心功能實現

2.1 即時行情(REST API)

獲取三星電子(005930)的即時報價:

      import requests

API_TOKEN = "your_token"
BASE_URL = "https://api.itick.org"

def get_quote(symbol):
    url = f"{BASE_URL}/stock/quote"
    params = {"region": "KR", "code": symbol}
    headers = {"token": API_TOKEN}

    resp = requests.get(url, params=params, headers=headers).json()
    if resp.get("code") == 0:
        data = resp["data"]
        print(f"{data['n']} ({data['s']})")
        print(f"最新價: {data['ld']} KRW | 漲跌幅: {data['chp']}%")
    else:
        print("錯誤:", resp.get("msg"))

get_quote("005930")  # 三星電子

    

2.2 歷史 K 線數據(REST API)

獲取日線數據用於策略回測:

      def get_kline(symbol, ktype=8, limit=100):
    url = f"{BASE_URL}/stock/kline"
    params = {"region": "KR", "code": symbol, "kType": ktype, "limit": limit}
    headers = {"token": API_TOKEN}

    resp = requests.get(url, params=params, headers=headers).json()
    if resp.get("code") == 0:
        for item in resp["data"][-5:]:  # 顯示最近 5 條
            print(f"日期: {item['t']} 開:{item['o']} 高:{item['h']} 低:{item['l']} 收:{item['c']} 量:{item['v']}")
    else:
        print("錯誤:", resp.get("msg"))

get_kline("005930", limit=10)  # 最近 10 個交易日

    

2.3 WebSocket 即時推送(低延遲)

訂閱三星電子與 SK 海力士的即時成交與報價更新:

      import websocket
import json
import threading
import time

WS_URL = "wss://api.itick.org/stock"
API_TOKEN = "your_token"

def on_message(ws, message):
    data = json.loads(message)
    if "data" in data:
        md = data["data"]
        if md["type"] == "quote":
            print(f"{md['s']} 最新: {md['ld']} KRW 漲跌:{md['chp']}%")

def on_open(ws):
    ws.send(json.dumps({
        "ac": "subscribe",
        "params": "005930$KR,000660$KR",
        "types": "quote"
    }))

def send_ping(ws):
    while True:
        time.sleep(30)
        ws.send(json.dumps({"ac": "ping", "params": str(int(time.time()*1000))}))

ws = websocket.WebSocketApp(WS_URL, header={"token": API_TOKEN},
                            on_open=on_open, on_message=on_message)
threading.Thread(target=send_ping, args=(ws,), daemon=True).start()
ws.run_forever()

    

三、韓國市場實用指南

股票代碼格式

  • 6 位數字代碼,例如三星電子 005930
  • REST 請求:region=KR, code=005930
  • WebSocket 訂閱:005930$KR

主流股票參考表

公司代碼板塊
三星電子005930半導體
SK 海力士000660半導體
現代汽車005380汽車
LG 能源解決方案373220電池
NAVER035420網際網路

交易時間(韓國標準時間)

  • 09:00 – 15:30(連續交易,無午休)
  • 對應北京時間:08:00 – 14:30

四、總結

透過以上範例,您已可快速接入韓國股市的高品質數據。iTick 提供:

  • 穩定可靠的數據來源
  • 開發者友善的 API 設計
  • 免費方案滿足個人與初創團隊需求

延伸閱讀: