当前位置: 首页 > news >正文

获取印度股票数据API实战指南:NSE与BSE双市场对接


获取印度股票数据API实战指南:NSE与BSE双市场对接

一、印度股票市场核心特点
  1. 双交易所体系

    • NSE(国家交易所):占全国交易量90%,Nifty 50指数为核心基准
    • BSE(孟买交易所):亚洲最老交易所,Sensex 30指数代表传统企业
    • 交易时段09:15-15:30 IST(UTC+5:30),午休12:00-12:15
  2. 特色数据类型

    • IPO发行文件(DRHP/Prospectus)
    • 机构持仓变化(FII/DII数据)
    • 期权链(Option Chain)隐含波动率

二、API对接全流程(StockTV示例)
1. 环境准备
# 安装必要库(Python示例)
pip install stocktv-sdk pandas pytz# 初始化客户端
from stocktv import Client
client = Client(api_key="YOUR_API_KEY")
2. 基础数据获取
  • 获取NSE/BSE股票列表
# 获取NSE全部股票
nse_stocks = client.get_stocks(exchange="NSE")# 获取BSE Sensex30成分股
sensex30 = client.get_index_constituents(index_code="SENSEX")
  • 解析返回数据(JSON结构示例)
{"symbol": "RELIANCE", "name": "Reliance Industries Ltd","exchange": "NSE","isin": "INE002A01018","industry": "Oil & Gas","last_price": 2856.15,"currency": "INR"
}
3. 实时行情获取
# 单只股票实时报价(支持NSE/BSE双市场)
reliance_quote = client.get_quote(symbol="RELIANCE", exchange="NSE")
print(f"信实工业实时价: {reliance_quote['last_price']} INR")# 批量获取报价(最多50只)
symbols = ["TCS", "INFY", "HDFCBANK", "ICICIBANK"]
quotes = client.get_batch_quotes(symbols=symbols, exchange="NSE")
4. 历史K线获取
// Java示例(需SDK 3.1+)
import com.stocktv.client.StockClient;
import com.stocktv.model.HistoricalData;public class NseDataFetcher {public static void main(String[] args) {StockClient client = new StockClient("YOUR_API_KEY");HistoricalData data = client.getHistoricalData("RELIANCE", "NSE", "2025-01-01", "2025-07-10", "1d"  // 日线数据);// 转换为DataFrameSystem.out.println(data.toDF().show());}
}
5. 实时行情订阅(WebSocket)
# WebSocket实时推送(Nifty 50成分股)
def on_message(message):print(f"实时更新: {message['symbol']} @ {message['price']}")client.subscribe_realtime(symbols=["^NSEI", "RELIANCE", "HDFCBANK"], callback=on_message,data_type="quote"  # 可选trade/quote/option_chain
)

三、高级数据场景实现
1. 印度期权链获取
# 获取Nifty期权链数据
option_chain = client.get_option_chain(index="NIFTY", expiry="2025-07-25")# 解析关键数据
put_call_ratio = option_chain["PCR"]  # 沽购比
iv = option_chain["strikes"][18000]["call_iv"]  # 行权价18000的看涨隐含波动率
2. 机构持仓数据
# 获取外国机构投资者(FII)持仓变化
fii_data = client.get_institutional_holding(symbol="RELIANCE", period="q",  # 季度数据holder_type="fii"
)# 最近季度增持比例
last_q_change = fii_data["holdings"][-1]["change_pct"]
3. IPO数据获取
# 获取近期IPO列表
ipos = client.get_ipos(country="IN", status="upcoming")# 提取关键信息
for ipo in ipos:print(f"{ipo['company_name']}: {ipo['price_range_low']}-{ipo['price_range_high']} INR")

四、避坑指南与最佳实践
  1. 关键参数说明

    参数必填示例值注意事项
    exchangeNSEBSEBSE股票需加.BO后缀
    currencyINR默认返回印度卢比计价
    adjust_splitstrue自动复权除息数据
  2. 时区处理规范

    # 所有时间戳转换为IST时区
    from pytz import timezone
    ist = timezone('Asia/Kolkata')
    trade_time = data["timestamp"].astimezone(ist)
    
  3. 错误处理示例

    try:data = client.get_quote("INVALID_SYMBOL", "NSE")
    except StockTVError as e:if e.code == 404:print("股票代码不存在")elif e.code == 429:print("请求超频,等待60秒重试")
    

五、应用场景扩展
  1. 量化交易信号生成

    # 计算Nifty50 RSI指标
    from stocktv.ta import rsi
    nifty_data = client.get_historical_data("^NSEI", "NSE", period="1y")
    rsi_values = rsi(nifty_data["close"], window=14)
    
  2. 跨市场套利监控

    # 监控ADR与本地股溢价
    infy_nse = client.get_quote("INFY", "NSE")["last_price"]
    infy_nyse = client.get_quote("INFY", "NYSE")["last_price"] * 82  # 汇率换算
    premium = (infy_nyse - infy_nse) / infy_nse
    

资源汇总

  • StockTV印度接口文档
  • NSE官方数据API
  • 完整代码示例GitHub仓库

:本文代码基于StockTV API v3.2(2025-07),实际开发请以最新文档为准。遇到技术问题可在官方论坛提问,平均响应时间<2小时。

http://www.dtcms.com/a/273176.html

相关文章:

  • 华为OD 周末爬山
  • upload-labs靶场通关详解:第21关 数组绕过
  • 微服务架构下的自动化测试策略调优经验分享
  • 【基于大模型 + FAISS 的本地知识库与智能 PPT 生成系统:从架构到实现】
  • Datawhale AI 夏令营:用户洞察挑战赛 Notebook(2)
  • HVV注意事项(个人总结 非技术)
  • 【HTTP服务端】Cookie?Session?Token?
  • React 自定义Hook——页面或元素滚动到底部监听 Hook
  • Java+Vue开发的资产设备全周期管理系统,移动端+后台管理,涵盖采购至报废全程,实现高效管理、成本可控与资源优化
  • Shell脚本一键部署KubeSphere前置环境
  • 04-ES6
  • 多线程 JAVA
  • Java :Optional容器类
  • python的保险业务管理与数据分析系统
  • AI 智能体:从辅助工具到自主决策者
  • 【YOLO脚本】对模型yaml文件测试
  • ZYNQ MPSOC PL端DDR4读写--仿真(3)
  • JDK的Closure闭包详解
  • 发现和发明浅谈
  • 2025年最新Dubbo-admin 部署
  • HTML初学者第四天
  • Android 应用常见安全问题
  • JavaScript基础(三)
  • 一文讲清楚React Hooks
  • 解决问题的“测地线”:关于第一性原理与其他系统思考框架
  • RocksDB 与 ZenFS:原理、特性及在科研与工程中的应用初步探索
  • 使用Arthas监听Spring代理对象
  • 从UI设计到数字孪生实战部署:构建智慧教育的在线学习分析平台
  • Java观察者模式实现方式与测试方法
  • Constants