找回密码
 立即注册
首页 业界区 安全 多国金融市场数据对接指南(印度、印尼、韩国) ...

多国金融市场数据对接指南(印度、印尼、韩国)

乃阕饯 4 天前
一、StockTV多国数据对接概述

StockTV提供统一的API接口规范对接全球金融市场数据,本文重点介绍印度(国家ID:14)、印尼(国家ID:42)、韩国(国家ID:xx)的股票市场对接方案。
共同特性


  • 统一认证:所有接口需key参数
  • 数据格式:JSON标准化响应
  • 协议支持:HTTP/WebSocket双通道
  • 错误代码:200成功,401密钥无效,429限流
二、分国别对接规范

1. 印度市场(countryId=14)

1.1 市场列表接口
  1. GET /stock/stocks?countryId=14&pageSize=10
复制代码
特色字段
  1. {
  2.   "exchangeId": 46,  // 46=NSE, 74=BSE
  3.   "symbol": "IGSL",
  4.   "technicalDay": "strong_buy"  // 技术指标
  5. }
复制代码
1.2 专属接口


  • IPO日历:/india/ipo
  • 指数列表:包含Nifty50(NSEI)、Sensex(BSESN)
2. 印尼市场(countryId=42)

2.1 特色数据字段
  1. {
  2.   "flag": "ID",
  3.   "lastPairDecimal": 3,  // 价格小数位
  4.   "url": "/equities/media-chinese-international-ltd"  // 详情页路径
  5. }
复制代码
2.2 棕榈油期货
  1. GET /futures/list?symbol=FCPO
复制代码
响应包含马棕油期货实时行情
3. 韩国市场(需联系客服获取countryId)

3.1 KOSPI成分股
  1. GET /stock/stocks?countryId=KR_ID&pairType=Equities
复制代码
3.2 半导体股票筛选
  1. // 使用查询接口过滤
  2. {
  3.   "sector": "Technology",
  4.   "industry": "Semiconductors"
  5. }
复制代码
三、统一接口使用范例

1. 多国行情同步获取
  1. import requests
  2. countries = {
  3.     "India": {"id": 14, "key": "YOUR_KEY"},
  4.     "Indonesia": {"id": 42, "key": "YOUR_KEY"},
  5.     "Korea": {"id": "KR_ID", "key": "YOUR_KEY"}
  6. }
  7. def get_top_stocks():
  8.     results = {}
  9.     for country, params in countries.items():
  10.         url = f"https://api.stocktv.top/stock/stocks?countryId={params['id']}&pageSize=5"
  11.         response = requests.get(url, params={"key": params["key"]})
  12.         results[country] = response.json()["data"]["records"]
  13.     return results
复制代码
2. WebSocket多国订阅
  1. const ws = new WebSocket('wss://ws-api.stocktv.top/connect?key=YOUR_KEY');
  2. // 订阅三国龙头股
  3. const subscribeMsg = {
  4.     "action": "subscribe",
  5.     "pids": [
  6.         "7310",    // 印度Reliance
  7.         "50123",   // 印尼BBCA
  8.         "KR_005930" // 韩国三星
  9.     ]
  10. };
  11. ws.send(JSON.stringify(subscribeMsg));
  12. ws.onmessage = (event) => {
  13.     const data = JSON.parse(event.data);
  14.     // 统一数据结构
  15.     console.log(`${data.pid} 最新价: ${data.last_numeric}`);
  16. };
复制代码
四、国别化处理要点

1. 市场时间处理

国家时区开市时间(本地)对应UTC时间印度IST (UTC+5:30)09:00-15:3003:30-10:00印尼WIB (UTC+7)09:00-16:0002:00-09:00韩国KST (UTC+9)09:00-15:3000:00-06:30代码示例
  1. public class MarketHours {
  2.     public static boolean isMarketOpen(String countryCode) {
  3.         ZonedDateTime now = ZonedDateTime.now(ZoneId.of(getTimeZone(countryCode)));
  4.         return now.getDayOfWeek().getValue() < 6
  5.             && now.toLocalTime().isAfter(getOpenTime(countryCode))
  6.             && now.toLocalTime().isBefore(getCloseTime(countryCode));
  7.     }
  8.    
  9.     private static String getTimeZone(String countryCode) {
  10.         return switch(countryCode) {
  11.             case "IN" -> "Asia/Kolkata";
  12.             case "ID" -> "Asia/Jakarta";
  13.             case "KR" -> "Asia/Seoul";
  14.             default -> "UTC";
  15.         };
  16.     }
  17. }
复制代码
2. 货币单位转换
  1. # 统一转换为USD
  2. def convert_to_usd(price, currency):
  3.     rates = {'INR': 0.012, 'IDR': 0.000065, 'KRW': 0.00075}
  4.     return price * rates.get(currency, 1)
复制代码
五、合规要求

1. 数据使用限制

国家关键限制StockTV解决方案印度SEBI数据需授权提供已签约的数据转发服务印尼IDX实时数据禁止缓存WebSocket直连避免存储韩国KRX要求显示数据来源响应头包含X-Data-Source字段2. 敏感字段处理

[code]// 印尼股东信息脱敏function maskIdNumber(id) {    return id.replace(/(? B{StockTV API网关}    B --> C[印度数据节点]    B --> D[印尼数据节点]    B --> E[韩国数据节点]    C & D & E --> F[(统一数据缓存)]    F --> G[业务系统]
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册