作为常年折腾量化的开发者,最近集中测试了越南证券交易所(主要是胡志明市证券交易所 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
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()
三、注意事项
- 免费计划有订阅上限;如果需要很多个标的,建议直接升级套餐更省心。
- 请勿将 API Token 泄露给其他人,一旦泄露,将无法访问 API 接口。
- 免费计划请勿频繁调用 API 接口,否则容易触发 API 频率限制。
四、结语
对于计划进入越南股市量化领域的开发者而言,选择合适的API提供商只是第一步,更重要的是建立完善的风险控制体系和投资策略。随着越南资本市场的不断发展,相关API服务也将日趋完善,为量化交易提供更多可能性。
温馨提示:本文仅供代码参考,不构成任何投资建议。市场有风险,投资需谨慎
参考文档:https://blog.itick.org/stock-api/2026-vietnam-stock-exchange-api-python-tutorial
GitHub:https://github.com/itick-org/

