乃阕饯 发表于 5 天前

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

一、StockTV多国数据对接概述

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


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

1. 印度市场(countryId=14)

1.1 市场列表接口

GET /stock/stocks?countryId=14&pageSize=10特色字段:
{
"exchangeId": 46,// 46=NSE, 74=BSE
"symbol": "IGSL",
"technicalDay": "strong_buy"// 技术指标
}1.2 专属接口


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

2.1 特色数据字段

{
"flag": "ID",
"lastPairDecimal": 3,// 价格小数位
"url": "/equities/media-chinese-international-ltd"// 详情页路径
}2.2 棕榈油期货

GET /futures/list?symbol=FCPO响应包含马棕油期货实时行情
3. 韩国市场(需联系客服获取countryId)

3.1 KOSPI成分股

GET /stock/stocks?countryId=KR_ID&pairType=Equities3.2 半导体股票筛选

// 使用查询接口过滤
{
"sector": "Technology",
"industry": "Semiconductors"
}三、统一接口使用范例

1. 多国行情同步获取

import requests

countries = {
    "India": {"id": 14, "key": "YOUR_KEY"},
    "Indonesia": {"id": 42, "key": "YOUR_KEY"},
    "Korea": {"id": "KR_ID", "key": "YOUR_KEY"}
}

def get_top_stocks():
    results = {}
    for country, params in countries.items():
      url = f"https://api.stocktv.top/stock/stocks?countryId={params['id']}&pageSize=5"
      response = requests.get(url, params={"key": params["key"]})
      results = response.json()["data"]["records"]
    return results2. WebSocket多国订阅

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

// 订阅三国龙头股
const subscribeMsg = {
    "action": "subscribe",
    "pids": [
      "7310",    // 印度Reliance
      "50123",   // 印尼BBCA
      "KR_005930" // 韩国三星
    ]
};

ws.send(JSON.stringify(subscribeMsg));

ws.onmessage = (event) => {
    const data = JSON.parse(event.data);
    // 统一数据结构
    console.log(`${data.pid} 最新价: ${data.last_numeric}`);
};四、国别化处理要点

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代码示例:
public class MarketHours {
    public static boolean isMarketOpen(String countryCode) {
      ZonedDateTime now = ZonedDateTime.now(ZoneId.of(getTimeZone(countryCode)));
      return now.getDayOfWeek().getValue() < 6
            && now.toLocalTime().isAfter(getOpenTime(countryCode))
            && now.toLocalTime().isBefore(getCloseTime(countryCode));
    }
   
    private static String getTimeZone(String countryCode) {
      return switch(countryCode) {
            case "IN" -> "Asia/Kolkata";
            case "ID" -> "Asia/Jakarta";
            case "KR" -> "Asia/Seoul";
            default -> "UTC";
      };
    }
}2. 货币单位转换

# 统一转换为USD
def convert_to_usd(price, currency):
    rates = {'INR': 0.012, 'IDR': 0.000065, 'KRW': 0.00075}
    return price * rates.get(currency, 1)五、合规要求

1. 数据使用限制

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

// 印尼股东信息脱敏function maskIdNumber(id) {    return id.replace(/(? B{StockTV API网关}    B --> C[印度数据节点]    B --> D[印尼数据节点]    B --> E[韩国数据节点]    C & D & E --> F[(统一数据缓存)]    F --> G[业务系统]
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 多国金融市场数据对接指南(印度、印尼、韩国)