找回密码
 立即注册
首页 业界区 安全 如何快速对接印度股票市场 (NSE/BSE) 数据接口 ...

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

吕清莹 6 天前
在全球资产配置日益流行的今天,印度股市(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
第一步:获取市场概览与股票列表

要获取数据,首先需要知道股票在系统中的唯一标识符(pid 或 id)。我们需要调用市场列表接口,并指定 countryId=14(代表印度)。
接口地址:
GET /stock/stocks?countryId=14&pageSize=10&page=1&key=YOUR_KEY
返回数据示例:
  1. {
  2.   "code": 200,
  3.   "data": {
  4.     "records": [
  5.       {
  6.         "id": 946725, // 重要:这是 PID,后续查K线要用
  7.         "name": "Inventure Growth Securities",
  8.         "symbol": "IGSL",
  9.         "exchangeId": 46, // 46 代表 NSE
  10.         "last": 2.46,     // 最新价
  11.         "chgPct": -20.13, // 涨跌幅
  12.         "countryNameTranslated": "India"
  13.       }
  14.     ]
  15.   }
  16. }
复制代码
注:你可以通过 exchangeId 区分 NSE (46) 和 BSE (74)。
第二步:获取主要指数 (Nifty 50)

印度市场的风向标是 Nifty 50Sensex。我们可以通过指数接口获取实时行情。
接口地址:
GET /stock/indices?countryId=14&flag=IN&key=YOUR_KEY
代码示例 (JavaScript/Node.js):
  1. const API_KEY = 'YOUR_API_KEY';
  2. async function getIndianIndices() {
  3.   const url = `https://api.stocktv.top/stock/indices?countryId=14&flag=IN&key=${API_KEY}`;
  4.   
  5.   try {
  6.     const response = await fetch(url);
  7.     const result = await response.json();
  8.    
  9.     // 查找 Nifty 50
  10.     const nifty = result.data.find(item => item.name === "Nifty 50");
  11.     console.log(`Nifty 50 最新点位: ${nifty.last}, 涨跌: ${nifty.chgPct}%`);
  12.   } catch (error) {
  13.     console.error("获取指数失败", error);
  14.   }
  15. }
复制代码
第三步:获取 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 的日线数据
  1. async function getKlineData(pid) {
  2.   // P1D 代表日线数据
  3.   const url = `https://api.stocktv.top/stock/kline?pid=${pid}&interval=P1D&key=${API_KEY}`;
  4.   
  5.   const response = await fetch(url);
  6.   const json = await response.json();
  7.   
  8.   // 转换数据格式以适配前端图表库(如 ECharts 或 KlineCharts)
  9.   const chartData = json.data.map(item => ({
  10.     timestamp: item.time,  // 时间戳
  11.     open: item.open,       // 开盘
  12.     high: item.high,       // 最高
  13.     low: item.low,         // 最低
  14.     close: item.close,     // 收盘
  15.     volume: item.volume    // 成交量
  16.   }));
  17.   
  18.   return chartData;
  19. }
复制代码
进阶功能:IPO 日历与涨跌榜

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

  • IPO 新股日历
    查询印度即将上市或已上市的股票。
    GET /stock/getIpo?countryId=14&type=1&key=YOUR_KEY (type=1表示未上市)
  • 涨跌幅排行榜
    快速发现市场中波动最大的股票。
    GET /stock/updownList?countryId=14&type=1&key=YOUR_KEY (type=1涨幅榜,2跌幅榜)
总结

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

  • 锁定 Country ID = 14
  • 通过 列表接口 获取 PID。
  • 通过 K 线接口 获取历史数据用于绘图。
  • 利用 IPO 和排行榜接口 丰富应用内容。
如果你正在开发全球化的金融应用,这套接口能够极大降低对接印度市场的门槛。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册