如何快速对接印度股票市场 (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

返回数据示例:

{
  "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):

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 的日线数据

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 和排行榜接口 丰富应用内容。

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

posted @ 2025-12-01 21:45  CryptoRzz  阅读(0)  评论(0)    收藏  举报