亚太股票数据API:日股、韩股、新加坡股票、印尼股票市场实时行情,实时数据API-python

在量化交易和金融数据分析领域,获取实时、高质量的股票行情数据是关键。亚太地区作为全球经济的重要引擎,日本、韩国、新加坡和印尼等市场的股市行情备受关注。本文将介绍一个高效的亚太股市数据 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 代码演示如何使用这些功能。假设你已经安装了requestswebsocket-client库(pip install requests websocket-client)。

示例 1:获取实时成交(Tick 数据)

python 复制代码
import requests

# API基础URL和token
BASE_URL = "https://api.itick.org"
TOKEN = "your_token"  # 替换为你的API token

def get_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)
    if response.status_code == 200:
        data = response.json()
        if data['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 线查询

python 复制代码
import requests

def get_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)
    if response.status_code == 200:
        data = response.json()
        if data['code'] == 0:
            for code, klines in data['data'].items():
                print(f"股票 {code} 的K线数据:")
                for k in klines:
                    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 Hynix
get_klines("SG", "D05,O39", 8, 5)  # DBS和OCBC

这个功能便于历史数据查询和 K 线数据分析,支持多股批量操作。

示例 3:WebSocket 实时行情推送

python 复制代码
import websocket
import json
import threading
import time

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

def on_message(ws, message):
    data = json.loads(message)
    if data.get("code") == 1 and data.get("msg") == "Connected Successfully":
        print("连接成功")
    elif data.get("resAc") == "auth" and data.get("code") == 1:
        print("认证成功")
        subscribe(ws)
    elif data.get("resAc") == "subscribe" and data.get("code") == 1:
        print("订阅成功")
    elif data.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}")

def on_error(ws, error):
    print("错误:", error)

def on_close(ws, close_status_code, close_msg):
    print("连接关闭")

def on_open(ws):
    print("WebSocket连接打开")

def subscribe(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("订阅消息已发送")

def send_ping(ws):
    while True:
        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 = True
    ping_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/

相关推荐
deng-c-f2 小时前
C/C++内置库函数(3):future、promise的用法
c语言·开发语言·c++
Hello.Reader2 小时前
用 Python 跑通第一个 Flink ML 项目KMeans 聚类从本地到集群实战
python·flink·kmeans
Wiktok2 小时前
【WIT】解决导入pywinauto相关库会导致程序UI界面(tkinter/pyside6)浏览文件等操作卡住问题
python·ui·pywinauto
chaodaibing2 小时前
【Java】一个批量更新插入数据到MySQL的工具类
java·开发语言·mysql
爱上妖精的尾巴2 小时前
6-1WPS JS宏 new Set集合的创建
前端·后端·restful·wps·js宏·jsa
在坚持一下我可没意见2 小时前
Spring 后端安全双剑(上篇):JWT 无状态认证 + 密码加盐加密实战
java·服务器·开发语言·spring boot·后端·安全·spring
就像风一样抓不住2 小时前
SpringBoot静态资源映射:如何让/files/路径访问服务器本地文件
java·spring boot·后端
sszdlbw2 小时前
前后端在服务器的部署
运维·服务器·前端·后端
tingyu2 小时前
Maven聚合插件2.0版本发布:功能全面升级,开发效率再提升
后端·intellij idea