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

金融后端Java

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

picture.image

API 概述

这个 API 来自 itick.org,提供全球股票市场的历史 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 线数据的示例:

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 线数据的示例:

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 线数据的示例:

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))
}

示例响应

{
  "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 示例:

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 库)批量查询的示例:

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 批量查询的示例:

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))
}

示例响应

{
  "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/

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生机器学习系统落地和实践
机器学习在字节跳动有着丰富业务场景:推广搜、CV/NLP/Speech 等。业务规模的不断增大对机器学习系统从用户体验、训练效率、编排调度、资源利用等方面也提出了新的挑战,而 Kubernetes 云原生理念的提出正是为了应对这些挑战。本次分享将主要介绍字节跳动机器学习系统云原生化的落地和实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论