加拿大多伦多交易所TSX综合指数是全球矿业和能源股最集中的市场。接入加拿大行情数据API后,我在阿里云上用弹性架构实现了稳定拉取,成本可控。
正文
加拿大市场的交易时段是北京时间22:30-05:00(冬令时),与美股同步。TSX综合指数成分股超过200只,监控全部股票需要高效的批量查询。
弹性架构的核心是函数计算+定时触发器+动态并发。交易时段每5秒触发一次函数,开盘和收盘时段自动扩容。
python
def handler(event, context):
url = f"http://api.jkidata.com/stock/indices?countryId=加拿大ID&key={KEY}"
resp = requests.get(url, timeout=10)
data = resp.json()
save_to_rds(data['data'][0])
return {"status": "ok"}
【数据API】jkidata.com | 文档中心 docs.jkidata.com
TSX综合指数成分股超过200只,我用分页拉取方式,每批50只,分4批拉完。
python
def get_all_tsx_stocks():
all_stocks = []
for page in range(1, 5):
url = f"http://api.jkidata.com/stock/stocks?countryId=加拿大ID&page={page}&pageSize=50&key={KEY}"
data = requests.get(url).json()
all_stocks.extend(data['data']['records'])
return all_stocks
加拿大市场的节假日与美股略有不同,维多利亚日、感恩节等日期差异大。用加拿大行情数据API的isOpen字段动态判断。
数据存储用了RDS Serverless。TSX指数每5秒拉取一次,一天约4000条记录,数据量适中。
告警规则配了三个:连续3次拉取失败触发钉钉;数据新鲜度超过30秒触发邮件;TSX指数单日跌幅超过3%触发告警(加拿大矿业股波动大)。
docs.jkidata.com上有阿里云函数计算的部署模板,包含加拿大市场的完整配置。
【数据API】jkidata.com | 文档中心 docs.jkidata.com