对接全球股票市场K线数据实战(以美国市场为例)
一、API概述
该数据接口提供了股票、外汇、期货、加密货币的全方位金融市场价格数据。
- 支持美股、A股、港股、印股等全球主要股票市场。
- 提供实时报价、历史K线、公司信息、市场新闻等。
- 包含RESTful API和WebSocket实时推送,满足不同场景需求。
- 返回标准化的JSON格式数据,易于解析和处理。
二、K线数据接口详解
获取K线数据的核心端点如下:
-
接口地址:
GET https://api.stocktv.top/stock/kline
-
主要参数:
参数名 是否必须 描述 示例值 备注 key
是 您的访问密钥 MY4b781f618e3f43c4...
需联系服务商获取 pid
是 股票或指数的唯一产品ID 7310
通过市场列表接口查询 interval
是 K线时间周期 PT1H
详见下方周期说明 (startTime)
否 开始时间戳 1719818800000
可选,用于查询特定时间段 (endTime)
否 结束时间戳 1719822400000
可选 -
K线周期 (
interval
) 说明:参数值 代表周期 中文含义 PT5M
5 Minutes 5分钟 PT15M
15 Minutes 15分钟 PT1H
1 Hour 1小时 PT5H
5 Hours 5小时 P1D
1 Day 1日 P1W
1 Week 1周 P1M
1 Month 1月
三、实战:获取美国股票K线示例
假设我们想要获取苹果公司 (Apple Inc.) 过去一周的日K(P1D
)数据。
步骤 1: 获取股票的 pid
首先,我们需要知道苹果公司在美国市场对应的唯一产品ID (pid
)。这可以通过【股票】市场列表或【股票】查询股票接口获得。
请求示例:查询美国市场股票列表
美国对应的 countryId
通常是一个特定数值(例如文档中印度为14,美国需咨询API提供商确认,假设为 1
)。
GET https://api.stocktv.top/stock/stocks?countryId=1&pageSize=20&page=1&key=您的KEY
在返回的结果中,找到 name
为 "Apple Inc"
或 symbol
为 "AAPL"
的股票,记录下其 id
字段,这就是我们所需的 pid
(例如 12345
)。
步骤 2: 请求K线数据
获得 pid
后,即可调用K线接口。
请求示例:获取苹果公司日K数据
GET https://api.stocktv.top/stock/kline?pid=12345&interval=P1D&key=您的KEY
步骤 3: 处理响应结果
接口将返回一个JSON数组,每个元素代表一根K线。
响应示例 (JSON):
{"code": 200,"message": "操作成功","data": [{"time": 1722384000000, // 时间戳 (北京时间2024-08-01 08:00:00)"open": 239.42, // 开盘价"high": 239.6, // 最高价"low": 239.42, // 最低价"close": 239.6, // 收盘价"volume": 1241700, // 成交量"vo": 297500000 // 成交额},{"time": 1722297600000,"open": 238.50,"high": 240.15,"low": 237.80,"close": 239.10,"volume": 1184500,"vo": 283100000},// ... 更多历史K线数据]
}
关键字段解析:
time
: K线周期的开始时间,Unix毫秒时间戳。open
,high
,low
,close
: 对应周期的开盘价、最高价、最低价、收盘价。volume
: 该周期的成交量。vo
: 该周期的成交额。
步骤 4: 数据解析与展示 (Python示例)
您可以使用任何编程语言来处理这些数据。以下是一个简单的Python示例,使用 pandas
和 matplotlib
库将数据转换成DataFrame并绘制成K线图。
import requests
import pandas as pd
import matplotlib.pyplot as plt
from datetime import datetime# 1. 配置请求参数
url = "https://api.stocktv.top/stock/kline"
params = {"pid": 12345, # 替换为你的目标美股pid"interval": "P1D","key": "您的KEY" # 替换为你的有效key
}# 2. 发送请求
response = requests.get(url, params=params)
data = response.json()if data['code'] == 200:kline_data = data['data']# 3. 转换为Pandas DataFramedf = pd.DataFrame(kline_data)# 将时间戳转换为datetime对象,并设为索引df['date'] = pd.to_datetime(df['time'], unit='ms')df.set_index('date', inplace=True)# 查看前几行数据print(df.head())# 4. 简单绘制收盘价走势图plt.figure(figsize=(12, 6))plt.plot(df.index, df['close'], label='AAPL Close Price')plt.title('Apple Inc. (AAPL) Daily Close Price')plt.xlabel('Date')plt.ylabel('Price (USD)')plt.legend()plt.grid(True)plt.show()
else:print("请求失败:", data['message'])
四、获取指数数据
获取指数K线(如纳斯达克100指数)的方式与股票完全一致,只需将 pid
参数替换为对应指数的ID即可。指数的ID可以通过 【股票】指数 接口查询。
GET https://api.stocktv.top/stock/indices?countryId=1&key=您的KEY
五、注意事项
- 访问密钥 (Key):所有请求都必须携带有效的
key
参数,请联系API服务商申请。 - 频率限制:注意遵守API的调用频率限制,避免过度请求。
- 错误处理:在代码中务必检查返回的
code
是否为200
,并妥善处理错误信息 (message
)。 - 时间戳:返回的
time
是毫秒级Unix时间戳,请注意转换为您所需的时区时间。 - 数据延迟:需确认您获取的是实时数据还是略有延迟的数据,这取决于您的API套餐。
总结
通过本文介绍的 GET /stock/kline
接口,我们可以高效、便捷地获取到美国乃至全球多个市场的历史K线数据。无论是用于简单的行情展示,还是复杂的量化分析,这套API都提供了坚实的基础。只需简单的几步调用,海量金融数据即可尽在掌握。
希望本篇教程对您有所帮助!如有任何疑问,欢迎在评论区留言讨论。
声明:本文中使用的API地址和参数示例均来自提供的文档,实际调用时请确保使用从官方渠道获取的正确API端点和有效的访问密钥(key)。