DEV Community

Cover image for 2026 越南证券交易所(VN30, HOSE)API 接口指南
San Si wu
San Si wu

Posted on

2026 越南证券交易所(VN30, HOSE)API 接口指南

作为常年折腾量化的开发者,最近集中测试了越南证券交易所(主要是胡志明市证券交易所 HOSE,核心指数 VN30)的各类 API 接口。越南股市近年来热度不低,HOSE 作为其核心交易所,VN30 成分股更是外资重点关注的标的。但想拿到稳定的实时行情、历史数据和盘口信息,选对 API 提供商至关重要。今天就给大家分享我对比的主流服务商亲测体验。

先明确几个核心概念,避免新手 confusion:越南证券交易所核心是 HOSE(胡志明市)和 HNX(河内),我们常说的越南主流股票 API,重点覆盖 HOSE 的 VN30 指数成分股;实时行情 API 用于获取最新报价、成交量等动态数据,历史数据 API 用于回溯 K 线(分钟/日/周线等),盘口数据则包含买一到买五、卖一到卖五的价格和挂单量,是高频交易的关键。

一、2026 主流越南 HOSE(VN30)API 提供商对比

目前支持越南 HOSE 市场的 API 提供商不算多,我筛选了 3 个实操性强的,从数据覆盖、稳定性、成本等核心维度做了对比

1. iTick API

核心优势:全球多市场覆盖,对越南 HOSE 支持完善,VN30 成分股的实时报价、历史行情、Level2 盘口数据都能拿到;支持 RESTful 和 WebSocket 双协议,免费套餐足够日常测试,付费版性价比高。

关键信息:延迟低至 100ms 内,满足非超高频交易需求;历史数据覆盖 30 年以上,支持分钟级到日线级 K 线;Python 有成熟客户端库,对接成本低。

不足:企业级超高并发需求需定制套餐,普通用户基本用不到。

2. RPDS DATA

核心优势:覆盖全球多个新兴市场,包括越南 HOSE、印度、马来西亚等,适合做跨市场的开发者;数据清洗能力强,异常率低;支持 HTTP 和 WS 双协议,全量获取市场数据。

关键信息:稳定性不错,但免费额度少,测试需申请测试账户;适合学术研究或专业量化团队,按数据量付费。

不足:针对越南市场的定制化文档较少,新手对接需多花时间调试。

3. Bloomberg API

核心优势:全球金融数据领域标杆,深度覆盖越南 HOSE 市场及 VN30 成分股,数据包含实时行情、深度盘口、历史 K 线及基本面数据;系统可用性达 99.99%,依托全球分布式架构保障稳定,支持高频交易场景;自带完善的合规风控模块,适配机构监管需求。

关键信息:支持 VN30 成分股全量数据,包括 Level2 盘口及 Tick 级历史数据,延迟低至毫秒级;需搭配彭博终端使用,入门成本极高,适合有持续大额投入的专业机构。

不足:对个人开发者和中小团队极不友好,无独立免费套餐,终端及 API 服务年费高昂,且学习门槛较高。

二、Python 对接 HOSE(VN30)全流程

下面以 iTick API 为例,毕竟它是目前对接越南 HOSE 最省心的选择。步骤很简单:注册拿 Token→ 搭建环境 → 调用接口(实时报价/历史行情/盘口),全程用 Python 实现。

1. 前期准备:获取 API Token

  • 第一步:访问 iTick 官网,完成简单注册;
  • 第二步:注册成功后,在个人中心找到 API Token,这是后续调用接口的核心凭证,记得妥善保存,不要泄露。

2. 环境搭建:安装依赖库

需要用到 requests(调用 REST 接口)和 websocket-client(订阅实时行情),直接用 pip 安装:


pip install requests websocket-client
Enter fullscreen mode Exit fullscreen mode

3. 核心接口调用示例

以下示例均针对 HOSE 的 VN30 成分股。

REST API 获取 VN30 成分股实时报价

适合单次获取最新价格、涨跌幅、成交量等基础数据,接口响应快,代码如下:


import requests

# 替换为你的iTick API Token
ITICK_API_TOKEN = "YOUR_API_TOKEN"
# 目标标的:越南HOSE市场VN30成分股——越南航空(HVN)
symbol = "HVN"
# 实时报价API接口地址
url = f"https://api.itick.org/stock/quote?region=VN&code={symbol}"

# 请求头(必须包含token)
headers = {
    "accept": "application/json",
    "token": ITICK_API_TOKEN
}

# 发送请求并处理响应
response = requests.get(url, headers=headers)
if response.status_code == 200:
    data = response.json()
    # 解析核心数据(最新价、开盘价、涨跌幅、成交量)
    stock_data = data.get("data", {})
    print(f"标的:{symbol}")
    print(f"最新价:{stock_data.get('ld')} 越南盾")
    print(f"开盘价:{stock_data.get('o')} 越南盾")
    print(f"涨跌幅:{stock_data.get('chp')}%")
    print(f"当前成交量:{stock_data.get('v')}")
else:
    print(f"请求失败,状态码:{response.status_code},错误信息:{response.json().get('message')}")
Enter fullscreen mode Exit fullscreen mode

获取 VN30 成分股历史行情(K 线数据)

适合策略回测,支持分钟级、日线级等多种周期,这里以获取 100 根日线数据为例:


import requests

ITICK_API_TOKEN = "YOUR_API_TOKEN"
symbol = "HVN"  # 越南航空
# 历史K线API接口(kType=8代表日线,limit=100代表获取100根K线)
url = f"https://api.itick.org/stock/kline?region=VN&code={symbol}&kType=8&limit=100"

headers = {
    "accept": "application/json",
    "token": ITICK_API_TOKEN
}

response = requests.get(url, headers=headers)
if response.status_code == 200:
    data = response.json()
    kline_list = data.get("data", [])
    print(f"获取{symbol}最近100根日线数据:")
    for kline in kline_list:
        # 解析K线数据(时间戳、开高低收、成交量)
        print(f"时间:{kline.get('t')},开盘:{kline.get('o')},最高:{kline.get('h')},最低:{kline.get('l')},收盘:{kline.get('c')},成交量:{kline.get('v')}")
else:
    print(f"请求失败,状态码:{response.status_code},错误信息:{response.json().get('message')}")
Enter fullscreen mode Exit fullscreen mode

WebSocket 订阅 VN30 成分股实时盘口数据

适合需要持续监控盘口变化的场景(比如高频交易),能实时获取买一到买五、卖一到卖五的价格和挂单量:


import websocket
import json

ITICK_API_TOKEN = "YOUR_API_TOKEN"
symbol = "VN$HVN"  # 越南航空

def on_open(ws):
    # 连接成功后,发送订阅请求
    subscribe_msg = {
        "ac": "subscribe",
        "params": symbol,
        "types": "depth" # 盘口数据
    }
    ws.send(json.dumps(subscribe_msg))
    print("WebSocket连接成功,已订阅盘口数据...")

def on_message(ws, message):
    # 接收并解析实时盘口数据
    data = json.loads(message)
    if data.get("type") == "depth":
        depth_data = data.get("data", {})
        buy_depth = depth_data.get("b", [])  # 买盘数据(买一到买五)
        sell_depth = depth_data.get("a", [])  # 卖盘数据(卖一到卖五)
        print(f"\n{symbol} 实时盘口({depth_data.get('t')}):")
        print("卖盘:", [(f"{i+1}", f"{item.get('p')}", f"{item.get('v')}") for i, item in enumerate(sell_depth[:5])])
        print("买盘:", [(f"{i+1}", f"{item.get('p')}", f"{item.get('v')}") for i, item in enumerate(buy_depth[:5])])

def on_error(ws, error):
    print(f"连接错误:{error}")

def on_close(ws, close_status_code, close_msg):
    print(f"连接关闭,状态码:{close_status_code},信息:{close_msg}")

# 建立WebSocket连接
ws_url = "wss://api.itick.org/stock"
ws = websocket.WebSocketApp(ws_url,
                            on_open=on_open,
                            on_message=on_message,
                            on_error=on_error,
                            on_close=on_close)
# 持续运行连接
ws.run_forever()
Enter fullscreen mode Exit fullscreen mode

三、注意事项

  1. 免费计划有订阅上限;如果需要很多个标的,建议直接升级套餐更省心。
  2. 请勿将 API Token 泄露给其他人,一旦泄露,将无法访问 API 接口。
  3. 免费计划请勿频繁调用 API 接口,否则容易触发 API 频率限制。

四、结语

对于计划进入越南股市量化领域的开发者而言,选择合适的API提供商只是第一步,更重要的是建立完善的风险控制体系和投资策略。随着越南资本市场的不断发展,相关API服务也将日趋完善,为量化交易提供更多可能性。

温馨提示:本文仅供代码参考,不构成任何投资建议。市场有风险,投资需谨慎

参考文档:https://blog.itick.org/stock-api/2026-vietnam-stock-exchange-api-python-tutorial
GitHub:https://github.com/itick-org/

Top comments (0)