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

AI摘要
本文介绍了一个专注于日本、韩国、新加坡和印尼市场的亚太股市数据API。该API提供实时行情、历史K线、逐笔成交等低延迟数据,支持RESTful和WebSocket接口,并附有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 数据)


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 线查询


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 实时行情推送


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 将大大提升你的数据获取效率。

温馨提示:本文仅供参考,不构成任何投资建议。市场有风险,投资需谨慎

参考文档:docs.itick.org/rest-api/stocks/sto...

GitHub:https://github.com/itick-org/

本作品采用《CC 协议》,转载必须注明作者和本文链接
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!