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

用户头像Fxdund
2026-01-13 发布

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

先明确几个核心概念,避免新手 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

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"//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')}")

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

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

import requests

ITICK_API_TOKEN = "YOUR_API_TOKEN"
symbol = "HVN"  # 越南航空
# 历史K线API接口(kType=8代表日线,limit=100代表获取100根K线)
url = f"//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')}")

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()

三、注意事项

  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/

评论