如何快速对接印度股票市场 (NSE/BSE) 数据接口

在全球资产配置日益流行的今天,印度股市(NSE/BSE)因其高增长潜力成为了开发者和量化团队关注的焦点。然而,寻找稳定、易用且覆盖全面的印度市场数据源往往是一个痛点。

本文将演示如何利用 StockTV API 快速接入印度股票市场数据,涵盖从获取股票列表、指数行情到绘制 K 线图的全流程。

为什么选择这个方案?

根据 API 文档,该接口具有以下特点:

  • 覆盖全面:支持 NSE(印度国家证券交易所)和 BSE(孟买证券交易所)。
  • 数据丰富:包含实时报价、历史 K 线、指数(如 Nifty 50)、IPO 日历及涨跌幅榜。
  • 开发友好:采用标准的 RESTful JSON 格式,且提供 WebSocket 实时推送。

准备工作

在开始之前,你需要获取一个 API key。所有请求都需要在 URL 参数中带上 key=你的密钥

  • API 基础地址 : https://api.stocktv.top
  • 印度市场 Country ID : 14

第一步:获取市场概览与股票列表

要获取数据,首先需要知道股票在系统中的唯一标识符(pidid)。我们需要调用市场列表接口,并指定 countryId=14(代表印度)。

接口地址:
GET /stock/stocks?countryId=14&pageSize=10&page=1&key=YOUR_KEY

返回数据示例:

json 复制代码
{
  "code": 200,
  "data": {
    "records": [
      {
        "id": 946725, // 重要:这是 PID,后续查K线要用
        "name": "Inventure Growth Securities",
        "symbol": "IGSL",
        "exchangeId": 46, // 46 代表 NSE
        "last": 2.46,     // 最新价
        "chgPct": -20.13, // 涨跌幅
        "countryNameTranslated": "India"
      }
    ]
  }
}

注:你可以通过 exchangeId 区分 NSE (46) 和 BSE (74)。


第二步:获取主要指数 (Nifty 50)

印度市场的风向标是 Nifty 50Sensex。我们可以通过指数接口获取实时行情。

接口地址:
GET /stock/indices?countryId=14&flag=IN&key=YOUR_KEY

代码示例 (JavaScript/Node.js):

javascript 复制代码
const API_KEY = 'YOUR_API_KEY';

async function getIndianIndices() {
  const url = `https://api.stocktv.top/stock/indices?countryId=14&flag=IN&key=${API_KEY}`;
  
  try {
    const response = await fetch(url);
    const result = await response.json();
    
    // 查找 Nifty 50
    const nifty = result.data.find(item => item.name === "Nifty 50");
    console.log(`Nifty 50 最新点位: ${nifty.last}, 涨跌: ${nifty.chgPct}%`);
  } catch (error) {
    console.error("获取指数失败", error);
  }
}

第三步:获取 K 线数据 (绘制图表)

这是开发交易面板或看盘软件最核心的部分。接口支持多种时间周期,格式采用 ISO 8601 标准(如 PT1M 代表 1分钟,P1D 代表 1天)。

接口地址:
GET /stock/kline?pid={股票ID}&interval={周期}&key=YOUR_KEY

参数说明:

  • pid: 第一步中获取的 id
  • interval: PT1M (1分), PT15M (15分), PT1H (1小时), P1D (日线) 等。

实战:获取 Reliance Industries 的日线数据

javascript 复制代码
async function getKlineData(pid) {
  // P1D 代表日线数据
  const url = `https://api.stocktv.top/stock/kline?pid=${pid}&interval=P1D&key=${API_KEY}`;
  
  const response = await fetch(url);
  const json = await response.json();
  
  // 转换数据格式以适配前端图表库(如 ECharts 或 KlineCharts)
  const chartData = json.data.map(item => ({
    timestamp: item.time,  // 时间戳
    open: item.open,       // 开盘
    high: item.high,       // 最高
    low: item.low,         // 最低
    close: item.close,     // 收盘
    volume: item.volume    // 成交量
  }));
  
  return chartData;
}

进阶功能:IPO 日历与涨跌榜

除了基础行情,API 还提供了一些特色数据,非常适合做市场热点分析。

  1. IPO 新股日历

    查询印度即将上市或已上市的股票。
    GET /stock/getIpo?countryId=14&type=1&key=YOUR_KEY (type=1表示未上市)

  2. 涨跌幅排行榜

    快速发现市场中波动最大的股票。
    GET /stock/updownList?countryId=14&type=1&key=YOUR_KEY (type=1涨幅榜,2跌幅榜)


总结

通过 StockTV 的 API,我们可以非常便捷地构建一个印度股市行情看板。其核心逻辑总结如下:

  1. 锁定 Country ID = 14
  2. 通过 列表接口 获取 PID。
  3. 通过 K 线接口 获取历史数据用于绘图。
  4. 利用 IPO 和排行榜接口 丰富应用内容。

如果你正在开发全球化的金融应用,这套接口能够极大降低对接印度市场的门槛。

相关推荐
一勺菠萝丶1 分钟前
PDF24 转图片出现“中间横线”的根本原因与终极解决方案(DPI 原理详解)
java
姓蔡小朋友5 分钟前
Unsafe类
java
一只专注api接口开发的技术猿19 分钟前
如何处理淘宝 API 的请求限流与数据缓存策略
java·大数据·开发语言·数据库·spring
superman超哥20 分钟前
Rust 异步递归的解决方案
开发语言·后端·rust·编程语言·rust异步递归
荒诞硬汉20 分钟前
对象数组.
java·数据结构
期待のcode21 分钟前
Java虚拟机的非堆内存
java·开发语言·jvm
黎雁·泠崖22 分钟前
Java入门篇之吃透基础语法(二):变量全解析(进制+数据类型+键盘录入)
java·开发语言·intellij-idea·intellij idea
仙俊红25 分钟前
LeetCode484周赛T4
java