对接印度股票数据源API:基于WebSocket的实时数据获取指南(无次数限制+免费Key申请)
一、接口核心优势
1. 零限制实时数据流
StockTV API提供无调用次数限制的WebSocket服务,支持7×24小时持续订阅印度NSE/BSE交易所数据。
2. 免费测试Key申请
开发者可通过StockTV官网联系客服获取免费API Key(格式如MY4b781f618e3f43c4b055f25fa61941ad
),无需企业认证。
二、环境搭建(Python示例)
1. 安装依赖库
pip install websocket-client pandas
2. 获取API密钥
步骤:
- 访问开发者门户,点击「获取测试Key」
- 填写邮箱+用途说明(如:个人研究/量化开发)
- 10分钟内收到含密钥的邮件
三、WebSocket实时对接实战
1. 建立长连接
import websocket, json, threading
API_KEY = "YOUR_KEY"
WS_URL = f"wss://ws-api.stocktv.top/connect?key={API_KEY}"
def on_message(ws, message):
"""处理实时行情"""
data = json.loads(message)
if data.get('type') == 'stock':
print(f"[{data['symbol']}] 价格: {data['last']} 涨跌幅: {data['pcp']}%")
2. 自动订阅股票
def on_open(ws):
subscribe_msg = json.dumps({
"action": "subscribe",
"symbols": ["RELIANCE", "TCS", "NSEI"] # 印度信实工业/TATA/Nifty50指数
})
ws.send(subscribe_msg)
3. 心跳保活机制
def send_heartbeat(ws):
"""每30秒发送心跳包"""
while True:
try:
ws.send(json.dumps({"action": "ping"}))
time.sleep(30)
except: break
# 在on_open中启动线程
def on_open(ws):
threading.Thread(target=send_heartbeat, args=(ws,), daemon=True).start()
# ...订阅代码...
四、实时数据输出示例
[RELIANCE] 价格: 2856.15 涨跌幅: +1.23%
[NSEI] 价格: 22985.40 涨跌幅: +0.75%
[TCS] 价格: 3850.50 涨跌幅: +0.68%
五、核心参数说明
字段 | 说明 | 示例值 |
---|---|---|
symbol | 股票/指数代码 | RELIANCE, NSEI |
last | 最新成交价 | 2856.15 |
pcp | 涨跌幅百分比(带±号) | +1.23% |
volume | 成交量(股) | 1254875 |
timestamp | 数据时间戳(Unix毫秒级) | 1725002394123 |
六、生产环境优化建议
-
连接稳定性
采用自动重连机制(断线后5秒重连)def start_websocket(): while True: try: ws.run_forever() except Exception as e: print(f"连接异常,5秒后重连: {str(e)}") time.sleep(5)
-
性能优化
使用异步框架(如asyncio
)处理高频数据流,单连接支持100+标的实时推送 -
交易时段提醒
印度市场交易时间:IST 9:15-15:30(北京时间11:45-18:00)
注意事项
- 免费Key仅限测试使用,商业用途需联系购买企业版
- WebSocket推送频率可达每秒10次更新,建议做好数据存储
- 支持通过
countryId=14
参数筛选印度市场数据