韓國股票 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 | 電池 |
| NAVER | 035420 | 網際網路 |
交易時間(韓國標準時間)
- 09:00 – 15:30(連續交易,無午休)
- 對應北京時間:08:00 – 14:30
四、總結
透過以上範例,您已可快速接入韓國股市的高品質數據。iTick 提供:
- 穩定可靠的數據來源
- 開發者友善的 API 設計
- 免費方案滿足個人與初創團隊需求
延伸閱讀: