多国股票数据源API对接实战:印度、泰国、韩国实时行情获取(WebSocket+免费Key)

一、多国股票API核心能力

1. 覆盖国家与交易所

  • 印度:NSE(国家证券交易所)、BSE(孟买交易所)
  • 韩国:KRX(韩国交易所),支持股票如三星电子(005930.KS
  • 泰国:SET(泰国证券交易所),需通过countryId参数过滤
  • 其他:马来西亚(MYX)、印尼(IDX)、日本(JPX)等10+国家

2. 核心特性

  • 无调用限制:支持7×24小时高频实时数据推送
  • 双协议接入
    • WebSocket:毫秒级延迟的行情更新(股票/指数/期货)
    • RESTful API:批量获取历史K线、财务数据
  • 免费测试Key:官网申请即用,无企业认证门槛

二、WebSocket实时对接实战(Python + Node.js双语言)

1. Python示例:实时订阅多国股票

import websocket, json, threading

# 配置参数(替换为你的API Key)
API_KEY = "YOUR_API_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':
        symbol = data['symbol']
        # 过滤特定国家数据(如印度RELIANCE、韩国三星)
        if symbol in ["RELIANCE", "005930.KS"]:  
            print(f"[{symbol}] 价格: {data['last']} 涨跌幅: {data['chgPct']}")

def on_open(ws):
    # 启动心跳线程
    threading.Thread(target=send_heartbeat, args=(ws,), daemon=True).start()
    # 订阅股票(支持多国混合订阅)
    ws.send(json.dumps({"action": "subscribe", "symbols": ["RELIANCE", "005930.KS"]}))

def send_heartbeat(ws):
    """每30秒发送心跳包维持连接"""
    while True:
        try: 
            ws.send(json.dumps({"action": "ping"}))
            time.sleep(30)
        except: break

# 启动连接(含自动重连)
while True:
    try:
        ws = websocket.WebSocketApp(WS_URL, on_message=on_message, on_open=on_open)
        ws.run_forever()
    except Exception as e:
        print(f"连接断开,5秒后重连: {e}")
        time.sleep(5)

2. Node.js示例:过滤泰国SET数据

const WebSocket = require('ws');
const ws = new WebSocket('wss://ws-api.stocktv.top/connect?key=YOUR_API_KEY');

// 订阅泰国股票(需先通过REST接口获取pid列表)
ws.on('open', () => {
  ws.send(JSON.stringify({ 
    action: 'subscribe', 
    countryId: 44  // 泰国countryId=44 
  }));
});

// 处理实时数据
ws.on('message', (data) => {
  const quote = JSON.parse(data);
  if (quote.countryId === 44) {  // 过滤泰国数据
    console.log(`[${quote.symbol}] ${quote.last} THB`);
  }
});

三、关键参数与数据处理技巧

1. 国家代码映射表

国家countryId交易所代码示例
印度14RELIANCE (NSE)
韩国7005930.KS (KRX)
泰国44ADVANC.BK (SET)
马来西亚42PETRONAS (MYX)

2. 核心数据字段解析

{
  "pid": "992844",        // 产品ID(唯一标识)
  "last": "239.34",       // 最新价
  "chgPct": "+1.64%",     // 涨跌幅
  "volume": "3672800",    // 成交量
  "timestamp": 1717728251  // Unix时间戳(秒级)
}

时区处理:时间戳需转换为目标国家时区(如泰国UTC+7)


四、生产环境优化建议

  1. 连接稳定性
    • 实现断线自动重连(重试间隔建议5秒)
    • 心跳包维持长连接(避免运营商链路回收)
  2. 高频数据处理
    • Python:使用asyncio异步处理数据流,避免阻塞
    • Node.js:连接池配置(keepAlive: true, maxSockets: 20
  3. 数据缓存
    • 历史K线存储至本地数据库(如InfluxDB),减少重复请求
    • 前端用IndexedDB缓存实时数据,优化渲染性能

五、免费Key申请与扩展方案

1. StockTV免费Key申请

  1. 访问 StockTV官网
  2. 联系客服发送申请邮件(说明用途:个人研究/量化测试)
  3. 获取Key(格式:MY4b781f618e3f43c4b055f25fa61941ad

2. 其他API补充方案

服务适用国家实时性限制
Alpha Vantage泰国(SET.BK)15分钟延迟免费版5请求/分钟
Yahoo Finance韩国、日本15分钟延迟完全免费
IEX Cloud美国为主实时付费($9/月起)

注意事项

  • 免费Key仅限测试,商业用途需购买企业授权
  • 实时数据仅在交易时段更新(如韩国KRX:UTC+9 9:00-15:30)

通过本文方案,开发者可快速接入印度、泰国、韩国等市场的实时行情,为量化交易、跨市场分析提供底层数据支持。建议结合业务场景选择协议(WebSocket实时推送 > REST轮询),并关注数据合规性要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值