对接全球股票市场K线数据实战

对接全球股票市场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示例,使用 pandasmatplotlib 库将数据转换成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 DataFrame
    df = 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

五、注意事项

  1. 访问密钥 (Key):所有请求都必须携带有效的 key 参数,请联系API服务商申请。
  2. 频率限制:注意遵守API的调用频率限制,避免过度请求。
  3. 错误处理:在代码中务必检查返回的 code 是否为 200,并妥善处理错误信息 (message)。
  4. 时间戳:返回的 time 是毫秒级Unix时间戳,请注意转换为您所需的时区时间。
  5. 数据延迟:需确认您获取的是实时数据还是略有延迟的数据,这取决于您的API套餐。

总结

通过本文介绍的 GET /stock/kline 接口,我们可以高效、便捷地获取到美国乃至全球多个市场的历史K线数据。无论是用于简单的行情展示,还是复杂的量化分析,这套API都提供了坚实的基础。只需简单的几步调用,海量金融数据即可尽在掌握。

希望本篇教程对您有所帮助!如有任何疑问,欢迎在评论区留言讨论。

声明:本文中使用的API地址和参数示例均来自提供的文档,实际调用时请确保使用从官方渠道获取正确API端点有效的访问密钥(key)

posted @ 2025-09-23 15:51  CryptoPP  阅读(67)  评论(0)    收藏  举报