马来西亚股票API接入指南:实时行情与历史数据

马来西亚交易所(Bursa Malaysia)作为东盟核心资本市场,汇聚了 Maybank、Public Bank、Tenaga Nasional 等优质蓝筹股,吸引着全球量化交易者和跨境投资者的目光。然而,获取稳定、低延迟的马来西亚股票数据一直是开发者的痛点:免费接口延迟高、历史数据不全、WebSocket 支持缺失……本文将为您全面解析如何利用 iTick API 快速接入马来西亚股票数据,并提供从实时行情到历史回测的完整解决方案。
为什么需要专业的马来西亚股票 API?
在投资马来西亚股市或开发量化策略时,数据质量直接决定成败。以下是开发者常遇到的挑战:
| 挑战 | 免费接口的问题 | iTick 的解决方案 |
|---|---|---|
| 数据延迟 | 15 分钟延时,错过交易机会 | WebSocket 实时推送<50ms |
| 历史数据缺失 | 仅 1-2 年,无法回测长周期 | 超 15 年日线/分钟线 |
| 市场覆盖不全 | 仅主流指数成分股 | 大马交易所全部股票 |
| 协议单一 | 仅 REST,无法实时推送 | REST + WebSocket + FIX |
| 稳定性差 | 频繁断流,无重连机制 | 企业级高可用架构 |
iTick 作为专业的全球金融数据服务商,针对马来西亚市场(region=MY)提供了全面的数据覆盖和开发者友好的 API 接口,且免费套餐已包含基础实时行情,是个人和团队入门的理想选择。
iTick 马来西亚股票 API 核心功能一览
iTick 为马来西亚股票市场提供以下关键数据服务,满足不同场景需求:
- 实时行情(REST API):获取股票最新价、涨跌幅、成交量、盘口等,延迟<100ms
- 历史 K 线(REST API):支持日线、周线、月线及分钟线,最长 30 年数据,适合策略回测
- WebSocket 实时推送:订阅
tick(逐笔成交)、quote(报价)、depth(盘口深度),延迟<50ms - 公司基本面:财务指标、估值数据
- 多市场支持:同一套 API 无缝切换马来西亚、新加坡、韩国、港台、日本、印度、泰国、越南等全球多个市场
一、5 分钟快速接入:获取马来西亚股票实时行情
1. 注册并获取 API Token
访问 iTick 官网 注册账号,30 秒完成。在控制台获取您的专属 Token。
2. 安装 Python 依赖
pip install requests websocket-client
3. 获取实时报价(REST API)
以下代码获取马来西亚 Maybank(代码:MAYBANK)的实时行情:
import requests
API_TOKEN = "your_token_here" # 替换为您的Token
BASE_URL = "https://api.itick.org"
def get_malaysia_quote(symbol):
url = f"{BASE_URL}/stock/quote"
params = {"region": "MY", "code": symbol}
headers = {"token": API_TOKEN}
try:
resp = requests.get(url, params=params, headers=headers, timeout=5)
data = resp.json()
if data.get("code") == 0:
quote = data["data"]
print(f"📈 {quote.get('n')} ({quote.get('s')})")
print(f"最新价: {quote.get('ld')} MYR")
print(f"涨跌幅: {quote.get('chp')}%")
print(f"成交量: {quote.get('v')}")
return quote
else:
print(f"API错误: {data.get('msg')}")
except Exception as e:
print(f"请求异常: {e}")
# 调用示例
get_malaysia_quote("MAYBANK") # Maybank
4. 获取历史 K 线(用于回测)
历史数据是量化回测的基石。以下获取 Maybank 最近 100 个交易日数据:
def get_malaysia_kline(symbol, ktype=8, limit=100):
"""ktype: 8-日线, 9-周线, 10-月线, 1~5-分钟线"""
url = f"{BASE_URL}/stock/kline"
params = {"region": "MY", "code": symbol, "kType": ktype, "limit": limit}
headers = {"token": API_TOKEN}
resp = requests.get(url, params=params, headers=headers)
data = resp.json()
if data.get("code") == 0:
kline_list = data.get("data", [])
print(f"获取到 {len(kline_list)} 条K线数据")
for item in kline_list[-5:]: # 打印最近5条
print(f"时间:{item['t']} 开:{item['o']} 高:{item['h']} 低:{item['l']} 收:{item['c']} 量:{item['v']}")
else:
print(f"错误: {data.get('msg')}")
get_malaysia_kline("MAYBANK", limit=10) # 最近10个交易日
5. WebSocket 实时推送(低延迟)
对于量化策略,实时性至关重要。以下订阅马来西亚三只股票的实时报价:
import websocket, json, threading, time
WS_URL = "wss://api.itick.org/stock"
API_TOKEN = "your_token_here"
def on_message(ws, message):
data = json.loads(message)
if "data" in data:
md = data["data"]
if md.get("type") == "quote":
print(f"[{md['s']}] 最新: {md['ld']} MYR | 涨跌:{md['chp']}%")
def on_open(ws):
# 订阅格式:股票代码$MY
subscribe = {
"ac": "subscribe",
"params": "MAYBANK$MY,PBBANK$MY,TENAGA$MY",
"types": "quote"
}
ws.send(json.dumps(subscribe))
def send_ping(ws):
while True:
time.sleep(30)
ws.send(json.dumps({"ac": "ping", "params": str(int(time.time()*1000))}))
ws = websocket.WebSocketApp(WS_URL, header={"token": API_TOKEN},
on_open=on_open, on_message=on_message)
threading.Thread(target=send_ping, args=(ws,), daemon=True).start()
ws.run_forever()
二、马来西亚市场核心要点
股票代码与市场标识
- 本地代码:如 MAYBANK、PBBANK、TENAGA(不区分大小写)
- REST 请求:
region=MY+code=MAYBANK - WebSocket 订阅:
MAYBANK$MY
主流马来西亚股票列表(SEO 关键词覆盖)
| 公司名称 | 股票代码 | 所属板块 | 业务简介 |
|---|---|---|---|
| Malayan Banking (Maybank) | MAYBANK | 金融 | 马来西亚最大银行 |
| Public Bank (大众银行) | PBBANK | 金融 | 领先的零售银行 |
| Tenaga Nasional (国家能源) | TENAGA | 公用事业 | 电力巨头 |
| CIMB Group Holdings | CIMB | 金融 | 区域银行集团 |
| Petronas Chemicals (国油化学) | PCHEM | 化工 | 石化产品领导者 |
| IHH Healthcare | IHH | 医疗保健 | 私立医院运营商 |
| Axiata Group | AXIATA | 电信 | 跨国电信公司 |
| IOI Corporation | IOICORP | 种植业 | 棕榈油巨头 |
交易时间与货币
- 交易时段:马来西亚时间 9:00 - 17:00(午休 13:00 - 14:30)
- 对应北京时间:相同(无时差)
- 货币单位:林吉特(MYR)
三、为什么 iTick 是马来西亚股票 API 的最佳选择?
通过对比主流数据源,iTick 在以下几个方面脱颖而出:
| 对比维度 | iTick API | 传统券商 API | 免费公共接口 |
|---|---|---|---|
| 实时性 | WebSocket <50ms | REST 轮询 >500ms | 15 分钟延时 |
| 历史数据 | 30 年+ 日线/分钟线 | 通常 5-10 年 | 仅 1-2 年 |
| 市场覆盖 | 大马交易所全部股票 | 仅交易标的 | 指数成分股 |
| 协议支持 | REST + WebSocket + FIX | 通常仅 REST | 仅 REST |
| 免费套餐 | ✅ 基础行情无限调用 | ❌ 需开户 | ✅ 但有次数限制 |
| 多资产支持 | 股票/外汇/期货/基金 | 仅股票 | 仅股票 |
真实场景案例
- 量化交易者:使用 WebSocket 实时订阅 Maybank、Public Bank 的 quote 数据,延迟<50ms,结合历史 K 线回测,开发 alpha 策略。
- 金融应用开发者:通过 REST API 快速集成马来西亚股票行情到 App,免费套餐满足初期用户量。
- 跨境投资者:使用 iTick 获取 Tenaga、PCHEM 等基本面数据,辅助投资决策。
四、常见问题解答(FAQ)
Q1: iTick 免费套餐能获取马来西亚股票的历史数据吗?
A: 可以。免费套餐包含历史日线数据访问(限制数量),足够个人学习和轻量级回测。如需超长周期或分钟线,可升级付费套餐。
Q2: WebSocket 订阅需要自己处理重连吗?
A: 建议实现自动重连机制。本文示例代码提供了基础的重连逻辑,生产环境可参考 iTick 官方文档完善。
Q3: 马来西亚股票代码大小写敏感吗?
A: 不敏感,但建议使用官方大写格式(如 MAYBANK)以保持一致性。
Q4: 是否支持获取公司财报等基本面数据?
A: iTick 提供财务指标接口,可通过/stock/info获取,具体参数请参考 官方文档。
Q5: 如何获得技术支持?
A: iTick 官网提供详细文档和技术支持邮箱,付费用户享有专属服务 @iticksupport
五、总结
通过本文,您已经掌握了使用 iTick API 接入马来西亚股票数据的核心方法。从实时行情到历史 K 线,从 REST 到 WebSocket,iTick 提供了一站式、低延迟、高可用的数据服务。无论您是开发量化交易系统、智能投顾 App,还是进行学术研究,iTick 都能满足您的需求。
立即访问 iTick 官网 注册,开启您的马来西亚股市数据之旅!
延伸阅读: