韩国股票 API 对接指南 Seoul&KOSDAQ

简介: 本指南详解StockTV韩国股票API接入:含密钥配置、市场列表(首尔/KOSDAQ交易所)、个股查询、K线(支持5分钟至月线)、指数/ETF/IPO/涨跌榜等8类接口,并提供WebSocket实时行情方案,助力快速构建韩股数据应用。(239字)

一、基础配置

文档明确要求所有 API 请求必须包含 key 参数,您需要先从 StockTV 获取 API Key。

<?php
// StockTV API 配置
define('STOCKTV_API_KEY', 'YOUR_API_KEY_HERE'); // 从 StockTV 获取
define('STOCKTV_BASE_URL', 'https://api.stocktv.top');
define('KOREA_COUNTRY_ID', 11); // 韩国 countryId

/**
 * 通用 API 请求函数
 */
function stocktvApiRequest($endpoint, $params = []) {
   
    $params['key'] = STOCKTV_API_KEY; // 必需参数

    $url = STOCKTV_BASE_URL . $endpoint . '?' . http_build_query($params);

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 30);

    $response = curl_exec($ch);
    if ($response === false) {
   
        return ['error' => 'CURL Error: ' . curl_error($ch)];
    }
    curl_close($ch);

    $decoded = json_decode($response, true);
    if (json_last_error() !== JSON_ERROR_NONE) {
   
        return ['error' => 'JSON Decode Error'];
    }
    return $decoded;
}
?>

二、韩国股票核心接口

基于文档中的通用接口结构和您提供的 countryId=11,以下是韩国市场的具体实现:

1. 获取韩国股票市场列表

文档中该接口支持分页获取指定国家的股票列表。

<?php
function getKoreaStockList($page = 1, $pageSize = 50, $exchangeId = null) {
   
    $endpoint = '/stock/stocks';
    $params = [
        'countryId' => KOREA_COUNTRY_ID, // 韩国
        'page' => $page,
        'pageSize' => $pageSize,
    ];

    // 文档提到 exchangeId 是非必要参数,可用于筛选特定交易所
    if ($exchangeId !== null) {
   
        $params['exchangeId'] = $exchangeId;
    }

    return stocktvApiRequest($endpoint, $params);
}

// 使用示例
$result = getKoreaStockList(1, 10);
if (isset($result['code']) && $result['code'] == 200) {
   
    echo "韩国股票列表 (第1页):\n";
    foreach ($result['data']['records'] as $stock) {
   
        echo "{$stock['name']} ({$stock['symbol']}): 最新价 {$stock['last']},涨跌 {$stock['chgPct']}%\n";
    }
}
?>

接口返回字段(根据文档中的示例):

  • id: 股票PID,用于后续查询
  • name / symbol: 股票名称和代码
  • last / chg / chgPct: 最新价、涨跌额、涨跌幅
  • high / low / volume: 最高价、最低价、成交量
  • open: 是否开市
  • flag: 国家代码(应为"KR")
  • countryId: 国家ID(应为11)

2. 韩国交易所说明

从文档中的"市场列表"接口示例可以看到交易所ID的注释:

"exchangeId": 62, //交易所ID 1NYSE 2NASDAQ 54上海交易所 103深圳交易所 46NSE 74BSE 53Mexico 144BIVA 60Seoul 110KOSDAQ 51Toronto 108TSXV 109CSE

其中明确提到了韩国的交易所:

  • 60Seoul: 首尔证券交易所
  • 110KOSDAQ: 韩国科斯达克交易所

因此您可以这样筛选不同交易所的股票:

<?php
// 获取首尔交易所的股票
function getSeoulExchangeStocks() {
   
    return getKoreaStockList(1, 50, 60); // exchangeId=60
}

// 获取KOSDAQ的股票
function getKosdaqStocks() {
   
    return getKoreaStockList(1, 50, 110); // exchangeId=110
}
?>

3. 查询特定韩国股票

<?php
function queryKoreaStock($pid = null, $symbol = null, $name = null) {
   
    $endpoint = '/stock/queryStocks';
    $params = [];

    if ($pid) $params['id'] = $pid;
    if ($symbol) $params['symbol'] = $symbol;
    if ($name) $params['name'] = $name;

    $result = stocktvApiRequest($endpoint, $params);

    // 筛选韩国股票
    if (isset($result['code']) && $result['code'] == 200 && is_array($result['data'])) {
   
        $result['data'] = array_filter($result['data'], function($stock) {
   
            return ($stock['countryId'] ?? 0) == KOREA_COUNTRY_ID;
        });
    }

    return $result;
}
?>

4. 获取韩国股票K线数据

<?php
function getKoreaStockKline($pid, $interval = 'P1D') {
   
    $endpoint = '/stock/kline';
    $params = [
        'pid' => $pid,
        'interval' => $interval,
    ];
    return stocktvApiRequest($endpoint, $params);
}

// 使用示例
$klineData = getKoreaStockKline(12345, 'P1D'); // 12345为示例PID
if (isset($klineData['code']) && $klineData['code'] == 200) {
   
    echo "K线数据获取成功,共" . count($klineData['data']) . "条记录\n";
}
?>

K线时间间隔参数(来自文档):

  • PT5M: 5分钟
  • PT15M: 15分钟
  • PT1H: 1小时
  • PT5H: 5小时
  • P1D: 1天
  • P1W: 1周
  • P1M: 1月

5. 获取韩国市场指数

<?php
function getKoreaIndices() {
   
    $endpoint = '/stock/indices';
    $params = ['countryId' => KOREA_COUNTRY_ID];
    return stocktvApiRequest($endpoint, $params);
}
?>

预期返回韩国主要指数,如:

  • KOSPI(韩国综合股价指数)
  • KOSDAQ指数

6. 获取韩国ETF数据

文档中有一个专门的ETF接口,但需要联系客服开通。您也可以从普通股票接口中筛选ETF:

<?php
function getKoreaETFs() {
   
    $endpoint = '/stock/stocks';
    $params = [
        'countryId' => KOREA_COUNTRY_ID,
        'pageSize' => 100,
    ];

    $result = stocktvApiRequest($endpoint, $params);

    // 筛选ETF(根据pairType或名称包含"ETF")
    if (isset($result['code']) && $result['code'] == 200 && !empty($result['data']['records'])) {
   
        $result['data']['records'] = array_filter($result['data']['records'], function($stock) {
   
            return (isset($stock['pairType']) && $stock['pairType'] === 'ETF') || 
                   (stripos($stock['name'] ?? '', 'ETF') !== false);
        });
    }

    return $result;
}
?>

7. 获取韩国IPO新股日历

<?php
function getKoreaIpo($type = null) {
   
    $endpoint = '/stock/getIpo';
    $params = ['countryId' => KOREA_COUNTRY_ID];

    if (in_array($type, [1, 2])) {
   
        $params['type'] = $type; // 1=未上市, 2=已上市
    }

    return stocktvApiRequest($endpoint, $params);
}
?>

8. 获取韩国股票涨跌排行榜

<?php
function getKoreaStockRank($type = 1) {
   
    $endpoint = '/stock/updownList';
    $params = [
        'countryId' => KOREA_COUNTRY_ID,
        'type' => $type, // 1涨幅榜 2跌幅榜 3涨停榜 4跌停榜
    ];
    return stocktvApiRequest($endpoint, $params);
}
?>

三、实时数据推送(WebSocket)

对于实时行情,文档推荐使用WebSocket接口。文档中提供了前端DEMO和Java DEMO链接。

连接地址: wss://ws-api.stocktv.top/connect?key=您的API_KEY

核心步骤

  1. 建立WebSocket连接
  2. 发送订阅消息(包含要订阅的韩国股票PID)
  3. 接收实时推送
  4. 维持心跳连接

返回数据格式(来自文档示例):

{
   
  "pid": "992844",
  "last_numeric": "0.68",
  "pc": "0.000",
  "pcp": "0.00",
  "volume": "3672800",
  "type": 1
}

四、完整使用示例

<?php
// 韩国股票数据监控示例
class KoreaStockMonitor {
   

    public function monitorKoreaMarket() {
   
        // 1. 获取韩国股票列表
        $stocks = getKoreaStockList(1, 20);

        // 2. 获取韩国指数
        $indices = getKoreaIndices();

        // 3. 获取涨跌榜
        $gainers = getKoreaStockRank(1); // 涨幅榜

        // 4. 获取IPO信息
        $ipos = getKoreaIpo(1); // 未上市IPO

        return [
            'stocks' => $stocks,
            'indices' => $indices,
            'gainers' => $gainers,
            'ipos' => $ipos
        ];
    }

    public function getStockDetail($pid) {
   
        // 获取股票详细信息
        $stockInfo = queryKoreaStock($pid);

        // 获取K线数据
        $kline = getKoreaStockKline($pid, 'P1D');

        return [
            'info' => $stockInfo,
            'kline' => $kline
        ];
    }
}
?>

五、重要注意事项

  1. API Key: 所有请求必须包含有效的 key 参数
  2. 国家ID: 韩国固定为 countryId=11
  3. 交易所ID: 韩国有两个主要交易所
    • 首尔交易所: exchangeId=60
    • KOSDAQ: exchangeId=110
  4. 实时数据: 必须使用WebSocket接口获取实时行情
  5. 错误处理: 检查返回的 code 字段,200 表示成功
  6. 数据更新: 韩国股市交易时间为韩国标准时间(UTC+9)

六、韩国股票市场特点

基于模型预训练知识补充:

  1. 交易时间: 韩国股市交易时间为平日 09:00-15:30(韩国时间)
  2. 货币单位: 韩元(KRW)
  3. 主要指数:
    • KOSPI(韩国综合股价指数)
    • KOSDAQ(韩国科斯达克指数)
  4. 涨跌幅限制: 通常为 ±30%

通过以上接口,您可以全面对接韩国股票的实时行情、历史数据、市场指数等信息。请根据您的实际业务需求组合使用这些接口。

相关文章
|
存储 缓存 文件存储
如何保证分布式文件系统的数据一致性
分布式文件系统需要向上层应用提供透明的客户端缓存,从而缓解网络延时现象,更好地支持客户端性能水平扩展,同时也降低对文件服务器的访问压力。当考虑客户端缓存的时候,由于在客户端上引入了多个本地数据副本(Replica),就相应地需要提供客户端对数据访问的全局数据一致性。
32713 80
如何保证分布式文件系统的数据一致性
|
前端开发 容器
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局(上)
HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第8章FlexBox布局
17766 21
|
设计模式 存储 监控
设计模式(C++版)
看懂UML类图和时序图30分钟学会UML类图设计原则单一职责原则定义:单一职责原则,所谓职责是指类变化的原因。如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。bad case:IPhone类承担了协议管理(Dial、HangUp)、数据传送(Chat)。good case:里式替换原则定义:里氏代换原则(Liskov 
36697 21
设计模式(C++版)
|
存储 编译器 C语言
抽丝剥茧C语言(初阶 下)(下)
抽丝剥茧C语言(初阶 下)
|
机器学习/深度学习 人工智能 自然语言处理
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
带你简单了解Chatgpt背后的秘密:大语言模型所需要条件(数据算法算力)以及其当前阶段的缺点局限性
24772 14
|
机器学习/深度学习 弹性计算 监控
重生之---我测阿里云U1实例(通用算力型)
阿里云产品全线降价的一力作,2023年4月阿里云推出新款通用算力型ECS云服务器Universal实例,该款服务器的真实表现如何?让我先测为敬!
36678 15
重生之---我测阿里云U1实例(通用算力型)
|
SQL 存储 弹性计算
Redis性能高30%,阿里云倚天ECS性能摸底和迁移实践
Redis在倚天ECS环境下与同规格的基于 x86 的 ECS 实例相比,Redis 部署在基于 Yitian 710 的 ECS 上可获得高达 30% 的吞吐量优势。成本方面基于倚天710的G8y实例售价比G7实例低23%,总性价比提高50%;按照相同算法,相对G8a,性价比为1.4倍左右。
|
存储 算法 Java
【分布式技术专题】「分布式技术架构」手把手教你如何开发一个属于自己的限流器RateLimiter功能服务
随着互联网的快速发展,越来越多的应用程序需要处理大量的请求。如果没有限制,这些请求可能会导致应用程序崩溃或变得不可用。因此,限流器是一种非常重要的技术,可以帮助应用程序控制请求的数量和速率,以保持稳定和可靠的运行。
29849 52

热门文章

最新文章

下一篇
开通oss服务