对接印度股票市场数据源API:K线与实时行情获取实现

2 阅读3分钟

一、印度股票市场概述

印度证券市场主要由孟买证券交易所(BSE) 和印度国家证券交易所(NSE) 主导,其中Nifty 50指数是市场的重要风向标。近年来,印度市场凭借严格的监管、年轻的人口结构和高增长的经济表现,成为全球资本布局的热点之一。

二、技术实现:对接印度股票API

本文基于一个可用的行情数据服务(以下简称“脉动数据”),实现以下两个核心功能:

1. API接入准备

在开始之前,请注意:

  • 联系客服授权IP:服务器IP授权后才能请求到数据。
  • 支持两种方式:WebSocket实时推送 或 HTTP接口轮询,二者选一即可。

核心接口列表:

  • 实时行情接口(WebSocket 或 HTTP)
  • K线数据接口(HTTP)
  • 产品分类与订阅代码接口(用于获取可交易品种)

2. 获取实时行情数据

方式一:WebSocket实时推送

WebSocket地址:ws://39.107.99.235/ws

连接后需:

  • 每10秒发送一次心跳:{"ping":时间戳}
  • 订阅产品代码:{"Key":"btcusdt,ethusdt"}

示例返回数据(JSON格式):

{
  "body": {
    "StockCode": "btcusdt",
    "Price": 90722.15,
    "Open": 91058.94,
    "LastClose": 90722.15,
    "High": 91161.61,
    "Low": 90158.12,
    "Time": "2025-11-30 14:10:03",
    "LastTime": "1764483003",
    "BP1": 90722.15,
    "BV1": 0.58,
    "SP1": 90722.16,
    "SV1": 0.25,
    "TotalVol": 1444.62
  }
}

方式二:HTTP接口获取

接口地址: http://39.107.99.235:1008/getQuote.php?code=btcusdt

请求方式:GET 建议在Header中加入:Accept-Encoding: gzip

3. 获取K线数据

接口地址: http://39.107.99.235:1008/redis.php?code=fx_sgbpusd&time=1m&rows=40

参数说明:

  • code:产品代码
  • time:K线周期(1m, 5m, 15m, 30m, 1h, 1d, 1M)
  • rows:获取条数

示例返回:

[
  [1623061860000, 36500, 36540.08, 36500, 36510.65, "2021-06-07 18:31:00", 100],
  [1623061800000, 36500, 36540.08, 36500, 36510.65, "2021-06-07 18:30:00", 100]
]

字段依次为:时间戳、开盘价、最高价、最低价、收盘价、时间字符串、成交量。

4. Java实现示例(Spring Boot + HTTP)

下面是一个简单的Spring Boot服务,用于获取实时价格和K线数据:

import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/api/india-stock")
public class IndiaStockController {

    private final String BASE_URL = "http://39.107.99.235:1008";
    private final RestTemplate restTemplate = new RestTemplate();

    // 获取实时行情
    @GetMapping("/quote")
    public String getQuote(@RequestParam String code) {
        String url = BASE_URL + "/getQuote.php?code=" + code;
        return restTemplate.getForObject(url, String.class);
    }

    // 获取K线数据
    @GetMapping("/kline")
    public String getKline(@RequestParam String code, 
                           @RequestParam String interval, 
                           @RequestParam int rows) {
        String url = BASE_URL + "/redis.php?code=" + code + 
                     "&time=" + interval + "&rows=" + rows;
        return restTemplate.getForObject(url, String.class);
    }
}

5. 开发注意事项

  • 断线重连:WebSocket需实现自动重连机制。
  • 数据压缩:建议启用gzip压缩提升传输效率。
  • 错误处理:做好HTTP状态码和异常处理,如401、429等。

三、总结

通过本文介绍的API接口,开发者可以快速实现对印度股票市场(或其他市场)的行情数据接入。无论是实时价格还是K线数据,都能通过简单的HTTP或WebSocket调用获取,适合用于量化系统、行情监控、投资分析等场景。

如果你对具体实现有更多疑问,或需要完整的项目代码,欢迎在评论区留言交流。