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

  1. iTick
  2. 教程
马来西亚股票API接入指南:实时行情与历史数据 - iTick
马来西亚股票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 HoldingsCIMB金融区域银行集团
Petronas Chemicals (国油化学)PCHEM化工石化产品领导者
IHH HealthcareIHH医疗保健私立医院运营商
Axiata GroupAXIATA电信跨国电信公司
IOI CorporationIOICORP种植业棕榈油巨头

交易时间与货币

  • 交易时段:马来西亚时间 9:00 - 17:00(午休 13:00 - 14:30)
  • 对应北京时间:相同(无时差)
  • 货币单位:林吉特(MYR)

三、为什么 iTick 是马来西亚股票 API 的最佳选择?

通过对比主流数据源,iTick 在以下几个方面脱颖而出:

对比维度iTick API传统券商 API免费公共接口
实时性WebSocket <50msREST 轮询 >500ms15 分钟延时
历史数据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 官网 注册,开启您的马来西亚股市数据之旅!


延伸阅读: