获取印度孟买指数(SENSEX)实时行情API对接指南
本文详细介绍如何通过API获取印度孟买敏感30指数(SENSEX)的实时行情数据,包含多种数据获取方式和代码示例
概述
印度孟买敏感30指数(SENSEX)是印度孟买证券交易所的主要股票市场指数,由30家规模大、流动性好的印度公司组成。本文介绍如何通过API接口获取SENSEX指数的实时行情数据,包括实时价格、涨跌幅、技术指标等信息。
SENSEX指数简介
- 全称: S&P BSE SENSEX
- 成分股数量: 30只
- 基准日期: 1978-1979年 = 100点
- 计算方式: 自由流通市值加权
- 交易所: 孟买证券交易所(BSE)
- 交易时间: 印度标准时间 9:15-15:30
API接口详情
1. 获取印度市场所有指数(包含SENSEX)
接口地址: GET /stock/indices
请求参数:
GET https://api.stocktv.top/stock/indices?countryId=14&key=您的API密钥
参数说明:
countryId
: 国家ID,印度为14key
: API访问密钥
响应示例:
{"code": 200,"message": "操作成功","data": [{"id": 17940,"name": "S&P BSE SENSEX","symbol": "SENSEX","last": 74250.65,"high": 74500.60,"low": 73800.45,"chg": 450.85,"chgPct": 0.61,"changeDecimalPrecision": 2,"changePercentageDecimalPrecision": 2,"isOpen": true,"flag": "IN","url": "/indices/s-p-bse-sensex","lastPairDecimal": 2,"time": 1716458537},{"id": 17941,"name": "Nifty 50","symbol": "NSEI","last": 22500.35,// ...其他指数数据}]
}
2. 通过ID直接查询SENSEX指数
接口地址: GET /stock/indicesById
请求参数:
GET https://api.stocktv.top/stock/indicesById?id=17940&key=您的API密钥
参数说明:
id
: 指数ID,SENSEX的ID为17940key
: API访问密钥
3. 获取SENSEX指数K线数据
接口地址: GET /stock/kline
请求参数:
GET https://api.stocktv.top/stock/kline?pid=17940&interval=P1D&key=您的API密钥
时间间隔参数:
PT5M
: 5分钟PT15M
: 15分钟PT1H
: 1小时P1D
: 1天(日线)P1W
: 1周P1M
: 1月
响应示例:
{"code": 200,"message": "操作成功","data": [{"time": 1719818400000,"open": 73950.42,"high": 74200.60,"low": 73850.42,"close": 74120.60,"volume": 0,"vo": 0},{"time": 1719818460000,"open": 74120.60,"high": 74250.60,"low": 74080.55,"close": 74200.55,"volume": 0,"vo": 0}]
}
使用示例
Python获取SENSEX实时行情
import requests
import json
from datetime import datetimeclass SensexAPI:def __init__(self, api_key):self.api_key = api_keyself.base_url = "https://api.stocktv.top"def get_sensex_real_time(self):"""获取SENSEX实时行情"""url = f"{self.base_url}/stock/indicesById"params = {"id": 17940, # SENSEX指数ID"key": self.api_key}try:response = requests.get(url, params=params, timeout=10)if response.status_code == 200:data = response.json()if data["code"] == 200:return data["data"][0] # 返回SENSEX数据return Noneexcept Exception as e:print(f"获取数据失败: {e}")return Nonedef get_sensex_history(self, interval="P1D"):"""获取SENSEX历史K线数据"""url = f"{self.base_url}/stock/kline"params = {"pid": 17940,"interval": interval,"key": self.api_key}try:response = requests.get(url, params=params, timeout=10)if response.status_code == 200:data = response.json()if data["code"] == 200:return data["data"]return Noneexcept Exception as e:print(f"获取历史数据失败: {e}")return None# 使用示例
if __name__ == "__main__":API_KEY = "您的API密钥"sensex_api = SensexAPI(API_KEY)# 获取实时行情real_time_data = sensex_api.get_sensex_real_time()if real_time_data:print("=== SENSEX实时行情 ===")print(f"指数名称: {real_time_data['name']}")print(f"最新价格: {real_time_data['last']}")print(f"涨跌: {real_time_data['chg']} ({real_time_data['chgPct']}%)")print(f"最高价: {real_time_data['high']}")print(f"最低价: {real_time_data['low']}")print(f"更新时间: {datetime.fromtimestamp(real_time_data['time'])}")# 获取日线数据daily_data = sensex_api.get_sensex_history("P1D")if daily_data:print(f"\n获取到{len(daily_data)}条日线数据")
JavaScript获取SENSEX数据
// 使用Fetch API获取SENSEX数据
const API_KEY = '您的API密钥';
const BASE_URL = 'https://api.stocktv.top';// 获取SENSEX实时行情
async function getSensexRealTime() {const url = `${BASE_URL}/stock/indicesById?id=17940&key=${API_KEY}`;try {const response = await fetch(url);const data = await response.json();if (data.code === 200) {const sensexData = data.data[0];console.log('SENSEX实时行情:', sensexData);return sensexData;}return null;} catch (error) {console.error('获取SENSEX数据失败:', error);return null;}
}// 获取SENSEX历史数据
async function getSensexHistory(interval = 'P1D') {const url = `${BASE_URL}/stock/kline?pid=17940&interval=${interval}&key=${API_KEY}`;try {const response = await fetch(url);const data = await response.json();if (data.code === 200) {return data.data;}return null;} catch (error) {console.error('获取历史数据失败:', error);return null;}
}// 使用示例
getSensexRealTime().then(data => {if (data) {document.getElementById('sensex-price').textContent = data.last;document.getElementById('sensex-change').textContent = `${data.chg} (${data.chgPct}%)`;document.getElementById('sensex-time').textContent = new Date(data.time * 1000).toLocaleString();}
});// 定时更新数据(每30秒)
setInterval(() => {getSensexRealTime().then(updateUI);
}, 30000);
WebSocket实时推送示例
// WebSocket实时获取SENSEX数据
const wsUri = "wss://ws-api.stocktv.top/connect?key=您的API密钥";
const websocket = new WebSocket(wsUri);websocket.onopen = function(event) {console.log("Connected to WebSocket server");// 可以发送订阅请求特定指数
};websocket.onmessage = function(event) {const data = JSON.parse(event.data);if (data.pid === "17940") { // SENSEX的PIDconsole.log("SENSEX实时推送:", data);// 更新页面数据updateSensexDisplay(data);}
};function updateSensexDisplay(data) {document.getElementById('sensex-last').textContent = data.last_numeric;document.getElementById('sensex-change').textContent = `${data.pc} (${data.pcp}%)`;document.getElementById('sensex-time').textContent = new Date().toLocaleTimeString();// 根据涨跌设置颜色const changeElement = document.getElementById('sensex-change');if (data.pc > 0) {changeElement.style.color = 'green';} else if (data.pc < 0) {changeElement.style.color = 'red';} else {changeElement.style.color = 'black';}
}websocket.onclose = function(event) {console.log("Disconnected from WebSocket server");// 可以尝试重连
};websocket.onerror = function(event) {console.log("WebSocket error:", event);
};
数据字段说明
字段名称 | 说明 | 示例值 |
---|---|---|
id |
指数ID | 17940 |
name |
指数名称 | "S&P BSE SENSEX" |
symbol |
指数代码 | "SENSEX" |
last |
最新价格 | 74250.65 |
high |
最高价 | 74500.60 |
low |
最低价 | 73800.45 |
chg |
涨跌额 | 450.85 |
chgPct |
涨跌幅 | 0.61 |
isOpen |
是否开盘 | true |
time |
时间戳 | 1716458537 |
注意事项
- API密钥:需要联系服务商获取有效的API密钥
- 请求频率:注意API的请求频率限制,避免过于频繁的请求
- 时区问题:SENSEX交易时间按照印度标准时间(IST)
- 错误处理:添加适当的错误处理机制
- 数据延迟:实时数据可能有微小延迟,通常为1-3秒
- 市场状态:注意印度市场的交易日和交易时间
常见问题
Q: 如何区分SENSEX和Nifty 50指数?
A: SENSEX的symbol为"SENSEX",而Nifty 50的symbol为"NSEI"
Q: 数据更新频率是多少?
A: 实时数据通常每1-5秒更新一次
Q: 是否提供历史数据下载?
A: 可以通过K线接口获取历史数据,支持导出CSV格式
Q: 如何获取SENSEX成分股信息?
A: 需要通过其他接口获取印度股票数据,然后筛选出SENSEX成分股
总结
通过本文介绍的API接口,开发者可以轻松获取印度孟买SENSEX指数的实时行情数据和历史数据。这些接口支持多种编程语言调用,适合用于开发金融分析应用、投资决策工具或实时行情展示系统。
无论是个人投资者还是金融机构,都可以利用这些API构建专业的印度市场分析工具,实时跟踪SENSEX指数的变化趋势。
版权声明:本文涉及API接口由相应服务商提供,使用前请确保已获得合法授权。本文仅做技术交流用途,不构成任何投资建议。