在量化交易和金融数据分析领域,获取实时、高质量的股票行情数据是关键。亚太地区作为全球经济的重要引擎,日本、韩国、新加坡和印尼等市场的股市行情备受关注。本文将介绍一个高效的亚太股市数据 API,支持日本股市行情、韩国股市行情、新加坡股市行情和印尼股市行情的实时数据查询。该 API 提供实时价格、K 线数据、历史数据查询、实时 tick、实时报价、低延时报价 api、盘口数据和逐笔成交等功能,特别适合量化交易开发者使用。我们将重点通过 Python 代码示例来演示如何实现这些功能。
API 概述
这个亚太股市数据 API 专注于日本(JP)、韩国(KR)、新加坡(SG)和印尼(ID)等市场的股票行情数据。数据源直接对接交易所,确保低延迟和高可用性。API 支持 RESTful 接口和 WebSocket 推送,覆盖实时 tick、实时报价、盘口数据、逐笔成交以及历史 K 线数据查询。无论是构建投资仪表盘、进行量化交易策略回测,还是监控市场波动,这个 API 都能提供可靠的支持。
主要优势:
- 实时数据:毫秒级更新,支持实时价格和逐笔成交。
- 历史数据查询:批量获取多股 K 线数据,包括开盘价、最高价、最低价、收盘价和成交量(OHLCV)。
- 多市场覆盖:专注于亚太地区,轻松切换日本股市行情、韩国股市行情、新加坡股市行情和印尼股市行情。
- 低延时报价 API:适合高频交易场景。
- 易集成:提供 Python、Java、Go 等多种语言示例,这里重点用 Python 实现。
在使用前,需要获取 API token,并注意速率限制和订阅计划。
核心功能详解
1. 实时成交(Tick 数据)
这个功能提供股票的逐笔成交数据,包括最新价、成交数量和时间戳。适用于监控实时 tick 和逐笔成交,支持低延时报价 api。
- 请求路径:GET /stock/tick?region={region}&code={code}
- 参数:
- region:市场代码(如 JP 日本、KR 韩国、SG 新加坡、ID 印尼)。
- code:股票代码。
- 响应:包含产品代码、最新价、时间戳和成交数量。
2. 批量历史 K 线查询
支持多股同时查询历史 K 线数据,周期从分钟线到月线。适合历史数据查询和 K 线数据分析。
- 请求路径:GET /stock/klines?region={region}&codes={codes}&kType={kType}&limit={limit}&et={et}
- 参数:
- region:市场代码。
- codes:多个股票代码,用逗号分隔。
- kType:K 线类型(1:分钟 K,8:日 K 等)。
- limit:K 线数量。
- et:截止时间戳(可选)。
- 响应:OHLCV 数据数组,包括成交额。
3. WebSocket 实时行情推送
通过 WebSocket 实现实时报价、盘口数据和逐笔成交的推送。适合需要持续监控的应用,如量化交易系统。
- 连接:wss://api.itick.org/stock,携带 token header。
- 订阅:发送 JSON 指令订阅股票和类型(tick、quote、depth)。
- 心跳:每 30 秒发送 ping 保持连接。
Python 代码示例
下面通过 Python 代码演示如何使用这些功能。假设你已经安装了requests和websocket-client库(pip install requests websocket-client)。
示例 1:获取实时成交(Tick 数据)
importrequests# API基础URL和tokenBASE_URL="https://api.itick.org"TOKEN="your_token"# 替换为你的API tokendefget_tick_data(region,code):url=f"{BASE_URL}/stock/tick?region={region}&code={code}"headers={"accept":"application/json","token":TOKEN}response=requests.get(url,headers=headers)ifresponse.status_code==200:data=response.json()ifdata['code']==0:tick=data['data']print(f"股票{tick['s']}最新价:{tick['ld']}, 成交量:{tick['v']}, 时间:{tick['t']}")else:print("请求失败:",data['msg'])else:print("HTTP错误:",response.status_code)# 示例:查询日本股市行情(例如Toyota股票,代码7203)get_tick_data("JP","7203")# 示例:查询韩国股市行情(例如Samsung,代码005930)get_tick_data("KR","005930")# 示例:查询新加坡股市行情(例如DBS银行,代码D05)get_tick_data("SG","D05")# 示例:查询印尼股市行情(例如Bank Central Asia,代码BBCA)get_tick_data("ID","BBCA")这个示例展示了如何获取实时 tick 数据,支持日本股市行情、韩国股市行情等市场的低延时报价 api。
示例 2:批量历史 K 线查询
importrequestsdefget_klines(region,codes,k_type,limit):url=f"{BASE_URL}/stock/klines?region={region}&codes={codes}&kType={k_type}&limit={limit}"headers={"accept":"application/json","token":TOKEN}response=requests.get(url,headers=headers)ifresponse.status_code==200:data=response.json()ifdata['code']==0:forcode,klinesindata['data'].items():print(f"股票{code}的K线数据:")forkinklines:print(f"时间:{k['t']}, 开:{k['o']}, 高:{k['h']}, 低:{k['l']}, 收:{k['c']}, 量:{k['v']}")else:print("请求失败:",data['msg'])else:print("HTTP错误:",response.status_code)# 示例:批量查询韩国股市行情和新加坡股市行情的日K线(5条)get_klines("KR","005930,000660",8,5)# Samsung和SK Hynixget_klines("SG","D05,O39",8,5)# DBS和OCBC这个功能便于历史数据查询和 K 线数据分析,支持多股批量操作。
示例 3:WebSocket 实时行情推送
importwebsocketimportjsonimportthreadingimporttime WS_URL="wss://api.itick.org/stock"defon_message(ws,message):data=json.loads(message)ifdata.get("code")==1anddata.get("msg")=="Connected Successfully":print("连接成功")elifdata.get("resAc")=="auth"anddata.get("code")==1:print("认证成功")subscribe(ws)elifdata.get("resAc")=="subscribe"anddata.get("code")==1:print("订阅成功")elifdata.get("data"):market_data=data["data"]data_type=market_data.get("type")symbol=market_data.get("s")print(f"{data_type}数据 for{symbol}:{market_data}")defon_error(ws,error):print("错误:",error)defon_close(ws,close_status_code,close_msg):print("连接关闭")defon_open(ws):print("WebSocket连接打开")defsubscribe(ws):subscribe_msg={"ac":"subscribe","params":"7203$JP,005930$KR,D05$SG,BBCA$ID",# 日本、韩国、新加坡、印尼股票"types":"tick,quote,depth"# 实时tick、报价、盘口数据}ws.send(json.dumps(subscribe_msg))print("订阅消息已发送")defsend_ping(ws):whileTrue:time.sleep(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":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=Trueping_thread.start()ws.run_forever()这个 WebSocket 示例实现了实时报价、盘口数据和逐笔成交的推送,适用于量化交易场景。
结语
通过这个亚太股市数据 API,你可以轻松获取日本股市行情、韩国股市行情、新加坡股市行情和印尼股市行情的股票行情数据。Python 实现简单高效,适合初学者和专业开发者。注意在实际使用中,遵守 API 的速率限制,并处理异常情况。如果你是量化交易爱好者,这个 API 将大大提升你的数据获取效率。
温馨提示:本文仅供参考,不构成任何投资建议。市场有风险,投资需谨慎
参考文档:https://docs.itick.org/rest-api/stocks/stock-kline
GitHub:https://github.com/itick-org/