新加坡股票API快速上手:itick SGX实时行情与历史K线教程

新加坡股票API、SGX实时行情、新加坡历史K线数据,这几个是这篇教程要解决的问题。新加坡交易所(SGX)是东南亚重要的金融枢纽,星展银行(DBS)、新电信(Singtel)这些蓝筹股一直是量化和资讯类产品的常见标的。下面用itick的Python SDK,按四个步骤把对接流程走完,照着做基本10分钟能跑通。

新加坡股票API快速上手:itick SGX实时行情与历史K线教程

第一步:安装SDK

pip install itick-sdk

第二步:注册账号,拿到token

itick.org注册,登录后台的Dashboard页面能看到你的API Key,这个token接下来REST和WebSocket都要用。

第三步:初始化客户端,跑一次REST查询

from itick.sdk import Client

token = "your_api_token"
client = Client(token)

# 新加坡region代码是SG
# 星展银行 D05
quote = client.get_stock_quote("SG", "D05")
print("DBS Quote:", quote)

# 新电信 Z74,历史K线,日线,取30天
kline = client.get_stock_kline("SG", "Z74", 8, 30)
print("Singtel Kline:", kline)

这里要注意,新加坡股票代码用的是SGX的交易代码,比如星展银行是D05、新电信是Z74、华侨银行(OCBC)是O39,跟股票名称的英文缩写没有直接对应关系,具体代码可以在itick的产品列表接口里查询确认。

kType参数照旧:1分钟=1,5分钟=2,15分钟=3,30分钟=4,1小时=5,日线=8,周线=9,月线=10。

第四步:建立WebSocket连接,订阅实时推送

import time

def on_message(msg):
    print("行情:", msg)

def on_error(err):
    print("出错:", err)

client.set_message_handler(on_message)
client.set_error_handler(on_error)

client.connect_stock_websocket()

client.send_websocket_message(
    '{"ac":"subscribe","params":"D05$SG,Z74$SG,O39$SG","types":"quote,tick"}'
)

time.sleep(15)
print("连接状态:", client.is_websocket_connected())
client.close_websocket()

订阅成功之后,服务端返回quote类型的数据大概长这样:

{
  "code": 1,
  "data": {
    "s": "D05",
    "r": "SG",
    "ld": 36.5,
    "o": 36.2,
    "h": 36.7,
    "l": 36.1,
    "t": 1731689407000,
    "v": 2345000,
    "ch": 0.3,
    "chp": 0.82,
    "type": "quote"
  }
}

字段含意跟其他市场保持一致,ld最新价、ch涨跌额、chp涨跌幅百分比,这套字段结构是itick所有股票市场统一的,学一次就能用在所有市场上。

一些补充说明

  • SDK自带心跳保活(30秒一次)和断线自动重连(5秒间隔,最多10次),不用自己额外写。
  • 免费套餐WebSocket只能开1条连接、订阅3个标的,测试阶段够用,正式上线前记得评估要不要升级套餐。
  • 批量接口(get_stock_quotesget_stock_klines)适合同时查询多只新加坡股票的场景,能省掉循环调用单个接口的麻烦。

写在最后

新加坡这条线整体对接下来比较轻量,四步走完基本能拿到实时行情和历史K线两块数据。如果你的产品还需要覆盖泰国、越南这些东南亚其他市场,itick也是支持的,切换region参数就行,SDK的调用逻辑完全不用变。


posted @ 2026-07-16 22:52  时间算法  阅读(13)  评论(0)    收藏  举报