免费获取股票历史行情与分时K线数据 API

在全球金融市场中,获取准确的股票历史行情数据至关重要。无论是港股、美股、A 股、日股、德国还是新加坡等市场的投资者和开发者,都需要可靠的股票分时 K 线数据来支持分析和决策。本文将介绍一个高效的股票 API,支持批量历史 K 线数据 API 查询,帮助您轻松获取从分钟级到月线的 OHLCV 数据,包括开盘价、最高价、最低价、收盘价和成交量等关键指标。

API 概述

提供全球股票市场的历史 K 线数据,覆盖数千只股票。支持的市场包括 HK(港股)、US(美股)、SZ/SH(A 股)、JP(日股)、DE(德国)、SG(新加坡)等。数据包括标准 OHLC 字段(开盘、最高、最低、收盘),并支持多种时间周期,如 1 分钟、5 分钟、日 K、周 K 和月 K 等。通过简单的 GET 请求,您可以获取单个股票或批量股票的历史行情数据,确保数据准确性和实时性。

该 API 特别适合用于 TradingView 图表集成、行情软件开发或量化分析。注册既可获取免费 token,查询限额合理。

单个股票历史 K 线查询

接口地址

GET /stock/kline?region={region}&code={code}&kType={kType}&limit={limit}&et={et}

请求参数

  • region: 市场代码(如 HK、US、SZ 等),必填。
  • code: 股票代码(如 700),必填。
  • kType: K 线类型(1: 分钟 K,2: 5 分钟 K,...,10: 月 K),必填。
  • limit: K 线数量,必填。
  • et: 截止时间戳(可选,默认当前时间)。

响应参数

  • t: 时间戳
  • o: 开盘价
  • h: 最高价
  • l: 最低价
  • c: 收盘价
  • v: 成交数量
  • tu: 成交额

Python 示例代码

以下是使用 Python 请求单个股票 K 线数据的示例:

python 复制代码
import requests

url = "https://api.itick.org/stock/kline?region=HK&code=700&kType=2&limit=10"

headers = {
    "accept": "application/json",
    "token": "your_token"
}

response = requests.get(url, headers=headers)

print(response.text)

Java 示例代码

以下是使用 Java(OkHttp 库)请求单个股票 K 线数据的示例:

java 复制代码
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
    .url("https://api.itick.org/stock/kline?region=HK&code=700&kType=2&limit=10")
    .get()
    .addHeader("accept", "application/json")
    .addHeader("token", "your_token")
    .build();

Response response = client.newCall(request).execute();
System.out.println(response.body().string());

Go 示例代码

以下是使用 Go 请求单个股票 K 线数据的示例:

go 复制代码
package main

import (
    "fmt"
    "net/http"
    "io"
)

func main() {
    url := "https://api.itick.org/stock/kline?region=HK&code=700&kType=2&limit=10"

    req, _ := http.NewRequest("GET", url, nil)

    req.Header.Add("accept", "application/json")
    req.Header.Add("token", "your_token")

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)

    fmt.Println(string(body))
}

示例响应

json 复制代码
{
  "code": 0,
  "msg": null,
  "data": [
    {
      "tu": 56119888070.5,
      "c": 534.5,
      "t": 1741239000000,
      "v": 104799385,
      "h": 536,
      "l": 534.5,
      "o": 535
    }
  ]
}

批量历史 K 线查询

对于需要同时获取多只股票数据的场景,批量接口更高效。

接口地址

GET /stock/klines?region={region}&codes={codes}&kType={kType}&limit={limit}&et={et}

请求参数

  • region: 市场代码,必填。
  • codes: 股票代码,多个用逗号隔开(如 700,9988),必填。
  • kType: K 线类型,必填。
  • limit: K 线数量,必填。
  • et: 截止时间戳(可选)。

响应参数

响应为一个对象,键为股票代码,值为 K 线数据数组(同单个查询)。

Python 示例代码

以下是批量查询的 Python 示例:

python 复制代码
import requests

url = "https://api.itick.org/stock/klines?region=HK&codes=700,9988&kType=2&limit=5"

headers = {
    "accept": "application/json",
    "token": "your_token"
}

response = requests.get(url, headers=headers)

print(response.text)

Java 示例代码

以下是使用 Java(OkHttp 库)批量查询的示例:

java 复制代码
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
    .url("https://api.itick.org/stock/klines?region=HK&codes=700,9988&kType=2&limit=5")
    .get()
    .addHeader("accept", "application/json")
    .addHeader("token", "your_token")
    .build();

Response response = client.newCall(request).execute();
System.out.println(response.body().string());

Go 示例代码

以下是使用 Go 批量查询的示例:

go 复制代码
package main

import (
    "fmt"
    "net/http"
    "io"
)

func main() {
    url := "https://api.itick.org/stock/klines?region=HK&codes=700,9988&kType=2&limit=5"

    req, _ := http.NewRequest("GET", url, nil)

    req.Header.Add("accept", "application/json")
    req.Header.Add("token", "your_token")

    res, _ := http.DefaultClient.Do(req)

    defer res.Body.Close()
    body, _ := io.ReadAll(res.Body)

    fmt.Println(string(body))
}

示例响应

json 复制代码
{
  "code": 0,
  "msg": null,
  "data": {
    "700": [
      {
        "tu": 56119888070.5,
        "c": 534.5,
        "t": 1741239000000,
        "v": 104799385,
        "h": 536,
        "l": 534.5,
        "o": 535
      }
    ],
    "9988": [
      {
        "tu": 75404622753.1,
        "c": 140.1,
        "t": 1741239000000,
        "v": 538602171,
        "h": 140.3,
        "l": 139.8,
        "o": 139.9
      }
    ]
  }
}

使用注意事项

  • 替换 headers 中的"your_token"为您注册的实际 token。
  • API 支持高并发,但免费版有查询限额,建议根据需求升级。
  • 数据时间戳为 Unix 时间戳,便于处理。
  • Java 示例需引入 OkHttp 库,Go 示例使用标准库。

结语

通过本文的介绍,我们了解到这个 API 提供的免费股票历史数据 API 是一个功能强大且易于使用的工具,能够满足不同市场、不同周期的 K 线数据需求。无论您是个人投资者、金融分析师还是量化交易开发者,这个 API 都能为您提供准确、及时的全球股票行情数据支持。

对于希望构建自己的金融分析系统、开发交易策略或者进行市场研究的用户来说,这个 API 无疑是一个理想的选择。免费额度足以支撑中小规模的项目开发和测试,而付费方案则能为专业用户提供更高频、更稳定的数据服务。

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

参考文档:https://docs.itick.org/

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

相关推荐
尤物程序猿3 小时前
Java如何不建表完成各种复杂的映射关系(鉴权概念、区域概念、通用概念)
java·开发语言
高洁013 小时前
DNN案例一步步构建深层神经网络(二)
人工智能·python·深度学习·算法·机器学习
Insight.3 小时前
背包问题——01背包、完全背包、多重背包、分组背包(Python)
开发语言·python
aini_lovee3 小时前
改进遗传算法求解VRP问题时的局部搜索能力
开发语言·算法·matlab
Lucky高3 小时前
Pandas库实践1_预备知识准备
python·pandas
Yeniden4 小时前
Deepeek用大白话讲解 --> 迭代器模式(企业级场景1,多种遍历方式2,隐藏集合结构3,Java集合框架4)
java·开发语言·迭代器模式
SmoothSailingT4 小时前
C#——LINQ方法
开发语言·c#·linq
景川呀4 小时前
Java的类加载器
java·开发语言·java类加载器
Salt_07284 小时前
DAY 36 官方文档的阅读
python·算法·机器学习·github