支持多国股票数据源API对接实战:印度、泰国、韩国等市场实时获取指南
一、API服务商选择与核心优势
1. StockTV多国数据支持
- 覆盖国家:支持印度(NSE/BSE)、韩国(KRX)、马来西亚(MYX)、日本(JPX)、印尼(IDX)等10+国家交易所数据。
- 核心功能:
- 实时数据推送:通过WebSocket实现毫秒级延迟的行情更新,支持股票、指数、期货等数据。
- 无调用限制:针对高频交易场景设计,支持7×24小时持续订阅。
- 免费测试Key:开发者可通过官网申请,无企业认证门槛。
2. 其他API补充方案
- Alpha Vantage:覆盖全球股市(如泰国SET指数需验证),提供免费基础接口。
- Yahoo Finance:通过
yfinance
库获取多国历史数据(适合非实时场景)。
二、StockTV多国数据对接实战(以印度、韩国为例)
1. 获取API密钥
- 访问 StockTV官网 注册账号。
- 联系客服获取免费API Key(格式如
MY4b781f618e3f43c4b055f25fa61941ad
)。
2. WebSocket实时数据订阅
import websocket
import json
API_KEY = "YOUR_API_KEY"
WS_URL = f"wss://ws-api.stocktv.top/connect?key={API_KEY}"
def on_message(ws, message):
data = json.loads(message)
if data.get('type') == 'stock':
print(f"[{data['symbol']}] 价格: {data['last']} 涨跌幅: {data['pcp']}%")
def on_open(ws):
# 订阅多国标的:印度RELIANCE、韩国三星电子(005930.KS)
subscribe_msg = json.dumps({
"action": "subscribe",
"symbols": ["RELIANCE", "005930.KS"]
})
ws.send(subscribe_msg)
# 启动WebSocket连接
ws = websocket.WebSocketApp(WS_URL, on_message=on_message, on_open=on_open)
ws.run_forever()
3. RESTful API获取市场列表
import requests
def get_stock_list(country_id):
url = "https://api.stocktv.top/stock/stocks"
params = {
"key": API_KEY,
"countryId": country_id, # 14=印度, 7=韩国
"pageSize": 10
}
response = requests.get(url, params=params)
return response.json()['data']['records']
# 获取印度股票列表
indian_stocks = get_stock_list(14)
print("印度市场热门股票:", [stock['symbol'] for stock in indian_stocks])
三、多国数据适配与参数说明
1. 国家代码映射表
国家 | 参数countryId | 交易所代码示例 |
---|---|---|
印度 | 14 | RELIANCE(NSE) |
韩国 | 7 | 005930.KS(KRX) |
马来西亚 | 42 | PETRONAS(MYX) |
印尼 | 9 | BBCA.JK(IDX) |
2. 核心数据字段
- 实时行情:
last
(最新价)、pcp
(涨跌幅)、volume
(成交量)。 - K线数据:通过
/stock/kline
接口获取OHLCV数据,支持分钟级至月线周期。
四、扩展:泰国股票数据获取方案
1. Alpha Vantage对接示例
import requests
API_KEY = "YOUR_ALPHA_VANTAGE_KEY"
symbol = "SET.BK" # 泰国SET指数
url = "https://www.alphavantage.co/query"
params = {
"function": "GLOBAL_QUOTE",
"symbol": symbol,
"apikey": API_KEY
}
response = requests.get(url, params=params)
data = response.json()
print(f"泰国SET指数实时价格: {data['Global Quote']['05. price']}")
2. 注意事项
- 数据覆盖验证:需确认API是否支持特定国家(如泰国SET交易所)。
- 合规性:商业用途需遵守当地金融数据使用规定。
五、生产环境优化建议
- 连接稳定性
- 实现WebSocket自动重连机制(断线后5秒重试)。
- 异步处理
- 使用
asyncio
库管理高频数据流,避免阻塞主线程。
- 使用
- 数据存储
- 结合MongoDB或InfluxDB持久化实时数据,便于后续分析。
注意事项
- 免费Key适用于测试环境,企业级需求需购买商业授权。
- 实时数据仅在交易时段更新(如印度NSE交易时间为IST 9:15-15:30)。