引言:为什么关注印度BSE交易所?

简介: 本文详解如何通过StockTV API对接印度BSE交易所,涵盖API密钥获取、核心接口调用(股票行情、指数、K线)、WebSocket实时推送及Python实战示例,助开发者快速构建印度金融市场数据应用。

文章大纲

  1. 引言:为什么关注印度BSE交易所?
  2. 准备工作:获取API密钥与理解关键参数
  3. 核心API接口详解
    • 获取BSE股票列表
    • 查询特定股票实时行情
    • 获取指数数据(如S&P BSE SENSEX)
    • 获取K线数据
  4. 高级功能与实时数据
    • IPO新股日历
    • 涨跌排行榜
    • WebSocket实时推送
  5. 实战代码示例(Python)
  6. 注意事项与最佳实践
    • 频率限制
    • 时区处理
    • 错误处理
  7. 结语

引言:为什么关注印度BSE交易所?

印度孟买证券交易所(BSE)是亚洲最古老的证券交易所,也是印度两大主要证券交易市场之一。随着印度经济的快速增长,BSE市场吸引了大量全球投资者的目光。对于开发者而言,能够便捷地获取BSE的实时股票数据,是构建量化交易系统、投资分析平台或金融看板应用的关键第一步。

本文将基于 StockTV 提供的 API,详细讲解如何快速、稳定地对接印度BSE交易所的股票数据接口,涵盖从获取API密钥、查询实时行情到订阅实时推送的全流程,并提供完整的Python代码示例。

准备工作:获取API密钥与理解关键参数

在开始调用API之前,需要完成两项准备:

  1. 获取API Key:所有接口调用都需要在请求参数中携带有效的API Key进行身份验证。你可以通过官方提供的联系方式(如Telegram)申请密钥。密钥格式通常类似 MY4b781f618e3f43c4b055f25fa61941ad
  2. 理解关键参数:对接印度BSE市场,以下两个参数至关重要:
    • countryId=14:这代表印度市场,是几乎所有接口的必填参数。
    • exchangeId=74:这是BSE(孟买证券交易所)在系统中的唯一标识符。另一个主要交易所NSE的ID是46。

API基础地址为:https://api.stocktv.top

核心API接口详解

1. 获取BSE股票列表

这是获取数据的第一步,目的是得到BSE上市公司的基本信息和唯一标识符(idpid),后续查询详细行情都需要用到它。

  • 接口地址GET /stock/stocks
  • 请求参数
    | 参数名 | 必填 | 说明 |
    | :--- | :--- | :--- |
    | countryId | 是 | 印度市场ID,固定为 14 |
    | exchangeId | 否 | BSE交易所ID,此处应填 74 |
    | pageSize | 否 | 每页数量 |
    | page | 否 | 页码 |
    | key | 是 | 你的API密钥 |

  • 返回示例:返回的JSON数据中,data.records数组包含了股票列表,每个股票对象都有 id(后续接口中的pid)、symbol(股票代码)、name(公司名称)、last(最新价)、chgPct(涨跌幅)等关键字段。

2. 查询特定股票实时行情

在已知股票ID (pid)、代码 (symbol) 或名称 (name) 的情况下,可以直接查询其最新行情。

  • 接口地址GET /stock/queryStocks
  • 请求参数:可使用 idsymbolname 中的一个或多个进行查询。

3. 获取指数数据(如S&P BSE SENSEX)

S&P BSE SENSEX(敏感30指数)是BSE市场的风向标。通过此接口可以获取其实时点位和涨跌幅。

  • 接口地址GET /stock/indices
  • 请求参数countryId=14
  • 返回示例:从返回的指数列表中,可以找到 name 为 "S&P BSE SENSEX" 的指数数据。

4. 获取K线数据

这是绘制图表进行技术分析的核心接口,支持从1分钟到月线等多种时间粒度。

  • 接口地址GET /stock/kline
  • 请求参数
    | 参数名 | 必填 | 说明 |
    | :--- | :--- | :--- |
    | pid | 是 | 股票的唯一ID |
    | interval | 是 | 时间间隔,例如 PT15M(15分钟), P1D(日线) |
    | key | 是 | 你的API密钥 |

  • 返回示例:接口返回指定时间周期的K线数据数组,每条数据包含时间戳 (time)、开盘价 (open)、最高价 (high)、最低价 (low)、收盘价 (close) 和成交量 (volume)。

高级功能与实时数据

IPO新股日历

印度IPO市场活跃,此接口可用于获取已上市或即将上市的新股信息。

  • 接口地址GET /stock/getIpo
  • 请求参数countryId=14type=1(未上市)或 type=2(已上市)。

涨跌排行榜

快速发现市场中的热点股票。

  • 接口地址GET /stock/updownList
  • 请求参数countryId=14type 参数可指定榜单类型(1=涨幅榜,2=跌幅榜,3=涨停榜,4=跌停榜)。

WebSocket实时推送

对于需要低延迟实时数据的应用(如交易终端),WebSocket是比反复轮询REST API更高效的选择。

  • 连接地址wss://ws-api.stocktv.top/connect?key=YOUR_KEY
  • 使用流程:建立连接后,发送订阅消息指定要关注的股票ID (pids),服务器便会持续推送这些股票的实时行情变动。需要定期发送心跳消息(如"ping")以保持连接。

实战代码示例(Python)

以下是一个完整的Python示例,演示如何获取BSE股票列表和SENSEX指数数据。

import requests

# 配置信息
API_KEY = "YOUR_API_KEY"  # 请替换为你的真实API Key
BASE_URL = "https://api.stocktv.top"
COUNTRY_ID = 14  # 印度
BSE_EXCHANGE_ID = 74  # BSE交易所

def get_bse_stocks(page_size=20):
    """
    获取BSE股票列表
    """
    url = f"{BASE_URL}/stock/stocks"
    params = {
   
        "countryId": COUNTRY_ID,
        "exchangeId": BSE_EXCHANGE_ID,
        "pageSize": page_size,
        "page": 1,
        "key": API_KEY
    }
    try:
        response = requests.get(url, params=params)
        response.raise_for_status()  # 如果请求失败会抛出HTTPError异常
        data = response.json()

        if data.get('code') == 200:
            stocks = data['data']['records']
            print("BSE股票列表(前{}条):".format(page_size))
            for stock in stocks:
                print(f"股票代码: {stock['symbol']}, 名称: {stock['name']}, 最新价: {stock['last']}, 涨跌幅: {stock['chgPct']}%")
            return stocks
        else:
            print("请求失败:", data.get('message'))
            return None
    except requests.exceptions.RequestException as e:
        print("网络请求错误:", e)
        return None

def get_sensex_index():
    """
    获取S&P BSE SENSEX指数数据
    """
    url = f"{BASE_URL}/stock/indices"
    params = {
   
        "countryId": COUNTRY_ID,
        "key": API_KEY
    }
    try:
        response = requests.get(url, params=params)
        data = response.json()

        if data.get('code') == 200:
            indices = data['data']
            for index in indices:
                if index['name'] == 'S&P BSE SENSEX':
                    print(f"\nS&P BSE SENSEX 指数:")
                    print(f"最新点位: {index['last']}")
                    print(f"涨跌: {index['chg']}")
                    print(f"涨跌幅: {index['chgPct']}%")
                    return index
            print("未找到SENSEX指数数据")
            return None
        else:
            print("请求指数数据失败:", data.get('message'))
            return None
    except Exception as e:
        print("获取指数数据时发生错误:", e)
        return None

# 执行示例
if __name__ == "__main__":
    stocks = get_bse_stocks()
    sensex_data = get_sensex_index()

注意事项与最佳实践

  1. 频率限制:REST API通常有调用频率限制(例如每分钟不超过10次请求),需合理安排请求间隔,避免触发限流。
  2. 时区处理:印度标准时间(IST)为UTC+5:30,在处理时间戳数据时需要注意时区转换。
  3. 错误处理:健壮的程序必须包含错误处理逻辑,检查HTTP状态码和响应体中的code字段(200表示成功,非200需处理错误)。
  4. 数据缓存:对于不经常变动的数据(如股票列表、公司信息),可以考虑在本地实现缓存机制,以减少API调用次数。

结语

通过 StockTV API,我们可以以标准化的方式高效接入印度BSE交易所的丰富数据,从基础的实时行情到深度的K线和基本面信息。本文介绍的接口和代码示例为开发者提供了一个坚实的起点,助力快速构建面向印度市场的金融应用。

希望这篇指南对你有所帮助!如果在对接过程中遇到任何技术问题,建议查阅官方文档或与API提供方的技术支持团队联系。

相关文章
|
3天前
|
数据采集 人工智能 安全
|
13天前
|
云安全 监控 安全
|
4天前
|
自然语言处理 API
万相 Wan2.6 全新升级发布!人人都能当导演的时代来了
通义万相2.6全新升级,支持文生图、图生视频、文生视频,打造电影级创作体验。智能分镜、角色扮演、音画同步,让创意一键成片,大众也能轻松制作高质量短视频。
1089 152
|
18天前
|
机器学习/深度学习 人工智能 自然语言处理
Z-Image:冲击体验上限的下一代图像生成模型
通义实验室推出全新文生图模型Z-Image,以6B参数实现“快、稳、轻、准”突破。Turbo版本仅需8步亚秒级生成,支持16GB显存设备,中英双语理解与文字渲染尤为出色,真实感和美学表现媲美国际顶尖模型,被誉为“最值得关注的开源生图模型之一”。
1752 9
|
9天前
|
人工智能 自然语言处理 API
一句话生成拓扑图!AI+Draw.io 封神开源组合,工具让你的效率爆炸
一句话生成拓扑图!next-ai-draw-io 结合 AI 与 Draw.io,通过自然语言秒出架构图,支持私有部署、免费大模型接口,彻底解放生产力,绘图效率直接爆炸。
695 152
|
11天前
|
人工智能 安全 前端开发
AgentScope Java v1.0 发布,让 Java 开发者轻松构建企业级 Agentic 应用
AgentScope 重磅发布 Java 版本,拥抱企业开发主流技术栈。
660 14
|
6天前
|
SQL 自然语言处理 调度
Agent Skills 的一次工程实践
**本文采用 Agent Skills 实现整体智能体**,开发框架采用 AgentScope,模型使用 **qwen3-max**。Agent Skills 是 Anthropic 新推出的一种有别于mcp server的一种开发方式,用于为 AI **引入可共享的专业技能**。经验封装到**可发现、可复用的能力单元**中,每个技能以文件夹形式存在,包含特定任务的指导性说明(SKILL.md 文件)、脚本代码和资源等 。大模型可以根据需要动态加载这些技能,从而扩展自身的功能。目前不少国内外的一些框架也开始支持此种的开发方式,详细介绍如下。
446 5