对接API获取马来西亚历史数据

简介: 本文介绍如何通过API对接获取马来西亚股票市场历史数据。需先获取API密钥,再利用“股票列表”接口查询股票PID,进而调用“K线数据”接口获取OHLCV行情。支持多种周期,提供Python实战示例及缓存、重试等最佳实践建议,助开发者高效集成。

通过API获取马来西亚股票市场的历史数据是许多开发者和分析师的常见需求。下面我将为您梳理基于API的完整对接方案。对接API获取马来西亚历史数据

🔑 准备工作

开始调用接口前,API文档的API密钥(API Key) ,这是所有请求进行身份验证的必备凭证。推荐使用 requests(Python)或 axios(Node.js)等HTTP库来简化调用过程。

📊 核心接口详解

获取历史数据主要通过以下两个接口实现,它们返回统一格式的JSON数据,其中 code为200表示成功。

1. 获取历史K线数据

这是最常用的历史数据接口,用于获取股票的开盘价、收盘价、最高价、最低价和成交量等OHLCV信息。

  • 接口地址:GET https://api.stocktv.top/stock/kline

  • 关键参数:

    • pid: 必填,股票的唯一ID。此ID需要通过“获取股票列表”接口查询得到。

    • interval: 必填,指定K线的时间粒度。可选值包括:

      • PT5M(5分钟)
      • PT15M(15分钟)
      • PT1H(1小时)
      • P1D(日线)
      • P1W(周线)
      • P1M(月线)
    • key: 必填,您的API密钥。

2. 获取股票列表

在查询特定股票的历史数据前,你需要先通过此接口获取市场上所有股票的代码及其对应的唯一PID。

  • 接口地址:GET https://api.stocktv.top/stock/stocks

  • 关键参数:

    • countryId: 必填,马来西亚的国家ID为 42。
    • pageSize& page: 用于分页,可高效获取全部股票数据。

💻 实战代码示例

以下是一个完整的Python示例,演示如何先获取股票列表,再查询某只股票(例如:MAYBANK)的日线历史数据。

import requests

# 配置
API_KEY = "YOUR_API_KEY"  # 请替换为你的真实API Key
BASE_URL = "https://api.stocktv.top"

def get_stock_list():
    """获取马来西亚股票列表,并找到MAYBANK的PID"""
    url = f"{BASE_URL}/stock/stocks"
    params = {
        "countryId": 42,
        "pageSize": 100,  # 假设MAYBANK在第一页
        "key": API_KEY
    }
    try:
        response = requests.get(url, params=params)
        data = response.json()
        if data.get("code") == 200:
            for stock in data["data"]["records"]:
                # 遍历寻找MAYBANK
                if stock.get("symbol") == "MAYBANK":
                    print(f"找到股票: {stock['name']}, PID: {stock['id']}")
                    return stock["id"]  # 返回PID
        else:
            print("获取股票列表失败:", data.get("message"))
    except Exception as e:
        print("请求出错:", e)
    return None

def get_historical_data(pid):
    """根据股票的PID获取历史K线数据(日线)"""
    url = f"{BASE_URL}/stock/kline"
    params = {
        "pid": pid,
        "interval": "P1D",  # 日线数据
        "key": API_KEY
    }
    try:
        response = requests.get(url, params=params)
        data = response.json()
        if data.get("code") == 200:
            kline_data = data["data"]
            print(f"\n获取到 {len(kline_data)} 条K线数据:")
            for i, kline in enumerate(kline_data[:3]):  # 仅打印前3条作为示例
                # 时间戳转换为可读日期
                from datetime import datetime
                date = datetime.fromtimestamp(kline["time"] / 1000).strftime('%Y-%m-%d')
                print(f"日期: {date}, 开盘: {kline['open']}, 最高: {kline['high']}, "
                      f"最低: {kline['low']}, 收盘: {kline['close']}, 成交量: {kline['volume']}")
            return kline_data
        else:
            print("获取K线数据失败:", data.get("message"))
    except Exception as e:
        print("请求出错:", e)
    return None

# 主程序
if __name__ == "__main__":
    # 第一步:获取MAYBANK的PID
    maybank_pid = get_stock_list()

    if maybank_pid:
        # 第二步:使用PID获取历史数据
        historical_data = get_historical_data(maybank_pid)

运行上述代码,你将首先得到MAYBANK的PID,然后获得其历史日线数据列表。

⚠️ 重要提示与最佳实践

为了更可靠地使用API,请注意以下几点:

  • PID是核心:历史数据查询严格依赖pid参数,务必先调用列表接口获取准确的PID。
  • 错误处理:在生产环境中,务必添加完善的异常捕获和重试机制,例如使用tenacity库。
  • 数据缓存:对于不常变动的历史数据,可以考虑在本地进行缓存,以降低API调用次数并提升响应速度。
  • 频率限制:请注意遵守API的请求频率限制,避免过于频繁的调用。

希望这份指南能帮助你顺利对接!如果你在具体操作中遇到问题,比如在寻找特定股票的PID时卡住了,可以告诉我,我们一起看看。

相关文章
|
9月前
|
缓存 编译器 OLAP
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
Apache Doris 的演进给我们提供了一个生动的答案——它不仅跟随硬件与编译器的发展而演进,更主动地通过向量化、模板化、指令级并行与精细的用户态调度模式,将每一代 CPU 的潜力推向理论极限。
554 1
驾驭 CPU 与编译器:Apache Doris 实现极致性能的底层逻辑
Idea:通过Live Template自定义模板(类注释、方法注释)
Idea:通过Live Template自定义模板(类注释、方法注释)
Idea:通过Live Template自定义模板(类注释、方法注释)
|
网络协议 网络安全 数据安全/隐私保护
三种不同类型的ssh隧道
想通过ssh隧道连接远端机器的VNC服务,对ssh -L命令不太熟悉,man ssh后发现3组与隧道(turnnel)相关的参数:ssh -D,ssh -L,ssh -R,一下子就搞糊涂了,所有下决心仔细研究一番。 何谓SSH隧道 隧道是一种把一种网络协议封装进另外一种网络协议进行传输的技术。这里我们研究ssh隧道,所以所有的网络通讯都是加密的。又被称作端口转发,因为ssh隧道通常会绑定一个本地端口,所有发向这个端口端口的数据包,都会被加密并透明地传输到远端系统。 SSH隧道的类型 ssh隧道有3种类型: 动态端口转发(Socks 代理) 本地端口转发 远端端口转发 动态端口转发
1111 0
|
11月前
|
存储 SQL 搜索推荐
货拉拉用户画像基于 Apache Doris 的数据模型设计与实践
货拉拉基于Apache Doris构建高效用户画像系统,实现标签管理、人群圈选与行为分析的统一计算引擎,支持秒级响应与大规模数据导入,显著提升查询效率与系统稳定性,助力实时化、智能化运营升级。
888 14
货拉拉用户画像基于 Apache Doris 的数据模型设计与实践
|
9月前
|
数据采集 存储 Prometheus
住宅IP获取的方法和途径有哪些?
住宅代理IP依托真实家庭宽带,具运营商归属与自然用户行为,是数据采集、跨境运营的关键工具。国内优选需聚焦三点:合规来源、稳定性能、场景适配。推荐通过正规服务商获取,或企业自建代理池,结合混合模式降本增效。选型重IP纯净度、低延迟、广覆盖,支持多协议与优质售后。应用中须严守《个人信息保护法》,规避关联风险,按业务类型配置静态或动态IP,并定期检测质量,确保高效匿名。借助科学策略,住宅IP可为合法业务提供坚实网络支撑。
|
安全 Java 领域建模
Java 17 探秘:不容错过的现代开发利器
Java 17 探秘:不容错过的现代开发利器
1312 0
|
10月前
|
SQL 人工智能 Apache
字节跳动:Apache Doris + AI 一站式融合数据引擎的探索与实践
随着人工智能技术在业务中的渗透,我们逐渐意识到:AI 不仅是提升效率的工具,更是重构数据处理与消费方式的核心驱动力。在这一背景下,我们思考:**能否构建一款「AI + Data」一站式融合的数据引擎?** 它不仅能够统一处理文本、音视频等非结构化数据与传统结构化数据,还能为算法工程师提供流畅的数据开发体验,实现数据处理与 AI 模型无缝衔接,并能确保数据处理负载与在线服务负载完全隔离。这是 2024 年末启动 DataMind 项目的初衷。
632 0
字节跳动:Apache Doris + AI 一站式融合数据引擎的探索与实践
|
存储 分布式计算 Apache
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
小米通过将 Apache Doris(数据库)与 Apache Paimon(数据湖)深度融合,不仅解决了数据湖分析的性能瓶颈,更实现了 “1+1>2” 的协同效应。在这些实践下,小米在湖仓数据分析场景下获得了可观的业务收益。
1790 9
湖仓一体:小米集团基于 Apache Doris + Apache Paimon 实现 6 倍性能飞跃
|
存储 SQL Apache
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?
本文将从技术选型的视角,从开放性、系统架构、实时写入、实时存储、实时查询等多方面,深入分析 Apache Doris 与 Elasticsearch 的能力差异及性能表现
2109 17
为什么 Apache Doris 是比 Elasticsearch 更好的实时分析替代方案?
|
编解码 测试技术 文件存储
阿里云无影云手机怎么用?非常简单,云手机创建、价格及连接使用图文教程
阿里云无影云手机是一种虚拟化手机服务,适用于仿真测试、云游戏、数字人直播等场景。支持包年包月与按量付费两种模式,配置从轻量型到性能型价格不一。使用方法简单:首先创建实例组(选择地域、规格、镜像等),然后安装应用,最后通过管理控制台、无影客户端或ADB连接云手机。详细教程与价格表见文内说明,助您快速上手!
2225 2