印度尼西亚股票实时数据API对接文档

news/2025/10/10 15:29:07/文章来源:https://www.cnblogs.com/CryptoRzz/p/19133156

概述

本文档详细说明如何对接StockTV全球股票API中的印度尼西亚股票数据。印尼股票市场是东南亚重要的金融市场之一,以雅加达综合指数为代表。

认证方式

所有API请求都需要在URL参数中包含API Key:

key=您的API密钥

基础信息

  • 印度尼西亚国家ID: countryId=48
  • 主要交易所ID:
    • 印尼证券交易所(IDX): exchangeId=61
    • 雅加达证券交易所: exchangeId=61 (同IDX)

API端点

1. 印尼股票市场列表

获取印尼股票市场列表,支持分页查询。

请求示例:

GET https://api.stocktv.top/stock/stocks?countryId=48&pageSize=50&page=1&key=您的API密钥

参数说明:

  • countryId: 必须为48(印度尼西亚)
  • pageSize: 每页返回数量(默认10,最大100)
  • page: 页码(默认1)
  • exchangeId: 可选,交易所ID

响应示例:

{"code": 200,"message": "操作成功","data": {"records": [{"id": 89234,"name": "Bank Central Asia","symbol": "BBCA","last": 9850,"chg": 150,"chgPct": 1.55,"high": 9900,"low": 9800,"volume": 45678200,"avgVolume": 35214800,"exchangeId": 61,"countryId": 48,"flag": "ID","open": true,"lastClose": 9700,"time": 1716458537,"url": "/equities/bank-central-asia","fundamentalMarketCap": 985000000000000,"fundamentalRevenue": "125.4T","performanceDay": 1.55,"performanceWeek": 3.21,"performanceMonth": 8.45,"performanceYear": 22.36,"technicalDay": "buy","technicalWeek": "strong_buy"}],"total": 800,"size": 50,"current": 1,"pages": 16}
}

2. 查询特定印尼股票

通过股票ID、名称或代码查询印尼股票信息。

请求示例:

GET https://api.stocktv.top/stock/queryStocks?countryId=48&symbol=BBCA&key=您的API密钥

参数说明:

  • id: 股票PID(可选)
  • name: 股票名称(可选)
  • symbol: 股票代码(可选)
  • url: 股票详情页URL(可选)

3. 印尼指数数据

获取印尼主要股票指数信息。

请求示例:

GET https://api.stocktv.top/stock/indices?countryId=48&key=您的API密钥

响应包含:

  • 雅加达综合指数(JCI/IDX Composite)
  • LQ45指数
  • Jakarta Islamic Index等

4. 印尼股票K线数据

获取印尼股票的K线图表数据。

请求示例:

GET https://api.stocktv.top/stock/kline?pid=89234&interval=PT1H&key=您的API密钥

时间间隔参数:

  • PT5M: 5分钟
  • PT15M: 15分钟
  • PT1H: 1小时
  • PT5H: 5小时
  • P1D: 1天
  • P1W: 1周
  • P1M: 1月

5. 印尼股票涨跌排行榜

获取印尼股票的涨跌幅排行榜。

请求示例:

GET https://api.stocktv.top/stock/updownList?countryId=48&type=1&key=您的API密钥

类型参数:

  • 1: 涨幅榜
  • 2: 跌幅榜
  • 3: 涨停榜
  • 4: 跌停榜

6. 印尼上市公司信息

获取印尼上市公司的详细信息。

请求示例:

GET https://api.stocktv.top/stock/companies?countryId=48&pageSize=10&page=1&key=您的API密钥

7. WebSocket实时数据

通过WebSocket获取印尼股票的实时价格数据。

连接示例:

const ws = new WebSocket("wss://ws-api.stocktv.top/connect?key=您的API密钥");

数据说明

交易时间

  • 印尼股市交易时间(西部印尼时间WIB):
    • 早盘: 9:00-12:00
    • 午盘: 13:30-16:00
  • API中的open字段表示当前是否处于交易时间

价格货币

  • 所有印尼股票价格均以印尼盾(IDR)为单位

特殊处理

  • 印尼股票代码通常为4位字母
  • 印尼市场有独特的行业分类体系

印尼主要指数

指数代码 指数名称 说明
JCI 雅加达综合指数 印尼主要股票指数,包含所有上市公司
LQ45 LQ45指数 45只最具流动性的股票
JII 雅加达伊斯兰指数 符合伊斯兰教法的股票指数

印尼知名上市公司

公司名称 股票代码 行业 中文名称
Bank Central Asia BBCA 银行 中亚银行
Bank Rakyat Indonesia BBRI 银行 印尼人民银行
Telkom Indonesia TLKM 电信 印尼电信
Astra International ASII 汽车 阿斯特拉国际
Unilever Indonesia UNVR 消费品 联合利华印尼

示例代码

Python示例

import requestsdef get_indonesia_stocks(symbol=None):"""获取印尼股票数据"""url = "https://api.stocktv.top/stock/stocks"params = {"countryId": 48,  # 修正为48"pageSize": 50,"page": 1,"key": "您的API密钥"}if symbol:params["symbol"] = symbolresponse = requests.get(url, params=params)return response.json()# 获取中亚银行股票数据
bbca_data = get_indonesia_stocks("BBCA")
print(bbca_data)# 获取印尼指数数据
def get_indonesia_indices():url = "https://api.stocktv.top/stock/indices"params = {"countryId": 48,  # 修正为48"key": "您的API密钥"}response = requests.get(url, params=params)return response.json()indices_data = get_indonesia_indices()
print(indices_data)# 批量获取印尼蓝筹股
def get_indonesia_blue_chips():blue_chips = ["BBCA", "BBRI", "TLKM", "ASII", "UNVR"]results = {}for symbol in blue_chips:data = get_indonesia_stocks(symbol)if data["code"] == 200 and data["data"]["records"]:results[symbol] = data["data"]["records"][0]return resultsblue_chips_data = get_indonesia_blue_chips()
print(blue_chips_data)

JavaScript示例

async function fetchIndonesiaStocks(symbol = null) {let url = `https://api.stocktv.top/stock/stocks?countryId=48&pageSize=50&page=1&key=您的API密钥`;  // 修正为48if (symbol) {url += `&symbol=${symbol}`;}try {const response = await fetch(url);const data = await response.json();return data;} catch (error) {console.error('获取数据失败:', error);return null;}
}// 使用示例
fetchIndonesiaStocks('BBCA').then(data => {if (data && data.code === 200) {console.log('中亚银行数据:', data);}
});// 获取印尼指数
async function fetchIndonesiaIndices() {try {const response = await fetch(`https://api.stocktv.top/stock/indices?countryId=48&key=您的API密钥`  // 修正为48);const data = await response.json();return data;} catch (error) {console.error('获取指数数据失败:', error);return null;}
}// 实时监控函数
async function monitorIndonesiaMarket() {const indices = await fetchIndonesiaIndices();const jci = indices.data.find(index => index.symbol === 'JCI' || index.name.includes('Composite'));if (jci) {console.log(`雅加达综合指数: ${jci.last} (${jci.chg > 0 ? '+' : ''}${jci.chgPct}%)`);}// 监控主要股票const stocks = await fetchIndonesiaStocks();if (stocks) {stocks.data.records.slice(0, 5).forEach(stock => {console.log(`${stock.symbol} - ${stock.name}: ${stock.last}`);});}
}// 每5分钟执行一次监控
setInterval(monitorIndonesiaMarket, 300000);

实时监控示例

import time
import requests
from datetime import datetimeclass IndonesiaMarketMonitor:def __init__(self, api_key):self.api_key = api_keyself.previous_prices = {}def get_stock_data(self, symbol):"""获取单只股票数据"""url = "https://api.stocktv.top/stock/queryStocks"params = {"countryId": 48,  # 修正为48"symbol": symbol,"key": self.api_key}try:response = requests.get(url, params=params, timeout=10)return response.json()except Exception as e:print(f"获取{symbol}数据失败: {e}")return Nonedef monitor_stocks(self, symbols, interval=60):"""监控多只股票"""while True:try:current_time = datetime.now().strftime("%Y-%m-%d %H:%M:%S")print(f"\n=== 印尼股市监控 {current_time} ===")for symbol in symbols:data = self.get_stock_data(symbol)if data and data["code"] == 200 and data["data"]:stock = data["data"][0]current_price = stock["last"]if symbol in self.previous_prices:prev_price = self.previous_prices[symbol]change = current_price - prev_pricechange_pct = (change / prev_price) * 100trend = "↑" if change > 0 else "↓" if change < 0 else "→"print(f"{symbol} {trend} {current_price:,.0f} ({change:+.0f}, {change_pct:+.2f}%)")else:print(f"{symbol} → {current_price:,.0f} (首次获取)")self.previous_prices[symbol] = current_pricetime.sleep(interval)except KeyboardInterrupt:print("\n监控已停止")breakexcept Exception as e:print(f"监控出错: {e}")time.sleep(30)# 使用示例
if __name__ == "__main__":monitor = IndonesiaMarketMonitor("您的API密钥")# 监控印尼主要股票symbols = ["BBCA", "BBRI", "TLKM", "ASII", "UNVR"]monitor.monitor_stocks(symbols, interval=300)  # 每5分钟更新

WebSocket实时数据

通过WebSocket获取印尼股票的实时价格数据。

连接示例:

const ws = new WebSocket("wss://ws-api.stocktv.top/connect?key=您的API密钥");// 连接建立时
ws.onopen = function() {console.log("已连接到印尼股市实时数据");
};// 接收消息时
ws.onmessage = function(event) {const data = JSON.parse(event.data);// 印尼股票通常以.JK后缀标识if (data.symbol && data.symbol.includes('.JK')) {const symbol = data.symbol.replace('.JK', '');console.log(`印尼股票 ${symbol} 实时价格: ${data.last_numeric}`);// 更新界面显示updateStockDisplay(symbol, data.last_numeric, data.chg, data.chgPct);}
};// 错误处理
ws.onerror = function(error) {console.error("WebSocket错误:", error);
};// 连接关闭时
ws.onclose = function() {console.log("连接已关闭,尝试重连...");setTimeout(connectWebSocket, 5000);
};// 更新界面显示的函数
function updateStockDisplay(symbol, price, change, changePercent) {const element = document.getElementById(`stock-${symbol}`);if (element) {const trend = change > 0 ? '↑' : change < 0 ? '↓' : '→';element.innerHTML = `${symbol}: ${price} <span class="${change > 0 ? 'positive' : change < 0 ? 'negative' : 'neutral'}">${trend} ${change} (${changePercent}%)</span>`;}
}

错误处理

错误代码 说明 处理建议
400 参数错误 检查countryId参数是否正确设置为48
401 认证失败 检查API Key是否有效
404 资源不存在 检查股票代码或ID是否正确
500 服务器错误 稍后重试或联系技术支持
503 服务不可用 印尼市场可能处于非交易时间

印尼股市特点

  1. 交易货币: 印尼盾(IDR)
  2. 交易时间: 周一至周五,上午9:00-12:00,下午13:30-16:00
  3. 涨跌幅限制: ±20%(主板),±35%(发展板)
  4. 行业分布: 金融、消费、资源、电信是主要板块
  5. 外资限制: 部分行业有外资持股限制

注意事项

  1. 时区差异: 印尼有三个时区,股市交易以西印尼时间(WIB)为准
  2. 货币单位: 印尼盾面值较大,注意数值处理
  3. 伊斯兰历法: 印尼伊斯兰节日可能影响交易日安排

技术支持

如有疑问或需要帮助,请通过以下方式联系:

  • Telegram: https://t.me/CryptoRzz
  • 邮箱: stocktv.top@outlook.com
  • 技术支持时间: 周一至周五 9:00-18:00 (北京时间)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/934186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年铝门窗厂家推荐榜,系统 / 智能 / 断桥 / 窄边 / 定制 / 全景 / 阳光房 / 隐框 / 隔声 / 防火铝门窗公司推荐

在当前铝门窗行业中,市场需求持续增长的同时,也面临着诸多亟待解决的问题。一方面,部分小型工厂缺乏完善的生产体系,生产的铝门窗产品在质量上难以保证,不仅材质不符合相关标准,在工艺细节上也存在诸多瑕疵,导致…

如何播放 M3U8 格式的视频

​ 要播放 M3U8 格式的视频,其核心在于使用正确的工具并获取有效的资源链接。您可以遵循以下详细步骤进行操作: 选择一款支持 M3U8 的播放器 这是成功播放的前提。请确保您安装的媒体播放器具备对 M3U8 格式或 HLS (…

20232304 2025-2026-1 《网络与系统攻防技术》实验一实验报告

20232304 2025-2026-1 《网络与系统攻防技术》实验一实验报告 1.实验内容 本次实验以 Linux 可执行文件pwn1为对象,核心目标是通过三种技术手段触发程序中默认不执行的getShell函数(获取交互式 Shell),同时掌握底层…

lsh 的源码注释(1)

lsh 的源码注释(1)我正在通过 git@github.com:brenns10/lsh 这个项目学习如何实现一个 Shell。今天为源码添加了第一遍注释。 还有很多问号hhh /*****************************************************************…

Codeforces Round 1056 (Div. 2) A~D

A - El fucho 模拟。 胜者组共有 \(n-1\) 队进入败者组,进入败者组的会淘汰 \(n-2\) 队,最后剩两组再进行一场,总场数 \(2n-2\)。 不会算也可以直接模拟。点击查看代码 #include <bits/stdc++.h>using i64 = …

现代软件工程阅读和提问作业-1

在学习本课程之前,一直会有一种疑惑,即什么是现代软件工程?软件的开发? 首先谈一谈我对软件的理解,我认为比如手机使用的APP,小程序以及任何通过鼠标或手指点击能够执行特定功能的“工具”都叫软件。

一种CDN动态加速回源白名单选路及降低源站探测量的方法

本文分享自天翼云开发者社区《一种CDN动态加速回源白名单选路及降低源站探测量的方法》.作者:蒋辉 本方案主要包括以下几个方面: 1)本发明提出了一种减少跨运营商探测源站及回源的方法,技术方案流程图见附图1,具体…

Windows系统-应用问题全面剖析Ⅰ:德承工控机DA-1200在Windows操作系统下[开机黑屏]的解决方法 - Johnny

Windows系统作为全球市场份额最高的操作系统,承载着企业办公、个人娱乐、工业应用等多元场景需求。然而,在使用过程中若出现应用崩溃、兼容性冲突、性能出现异常等系统应用问题时,将会直接影响到用户体验甚至是生产…

Java文件路径/服务器路径的获取

Java文件路径/服务器路径的获取Java文件路径/服务器路径的获取 大家好,又见面了,我是你们的朋友全栈君。Java文件路径获取几种获取方式 getResourceAsStream ()返回的是inputstreamgetResource()返回:URLClass.getRe…

某中心在旧金山设立AGI实验室专注长期AI研究

某中心在旧金山成立全新AGI实验室,专注于开发能够在数字和物理世界执行任务的人工智能代理。实验室将结合大语言模型与强化学习技术,致力于实现能够从人类反馈中学习、自我修正并推断目标的实用AI系统。某中心在旧金…

Appcrawler自动遍历工具-智能遍历测试与测试用例生成

效率与成本的抉择 在软件开发过程中,测试环节直接影响产品质量和用户体验。随着系统迭代频繁、功能复杂化,企业在测试方法的选择上面临困境:手工测试灵活却效率低,自动化测试高效却前期投入大。那么,我们到底应该…

[USACO20FEB] Clock Tree S

一开始读错题意了。 然后以为自己做法假了,实际并没有。 有 \(O(n)\) 做法但我写的是 \(O(n^2)\) 的。 换根dp就行了,每次判断一下能不能成功。 注意如果到最后根是 \(1\) 也是可以成功的。点击查看代码 #include<…

完整教程:【Spark+Hive+hadoop】人类健康生活方式数据分析

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

mysql查看表大小,4种实用方法

MySQL数据库运维中,掌握表的大小信息对于性能优化、容量规划和维护工作至关重要。本文将详细介绍4种查看MySQL表大小的实用方法,帮助你精准掌握数据库存储状况。 方法1:查看单个表的完整大小信息 使用以下SQL可以查…

微算法科技(NASDAQ:MLGO)开发延迟和隐私感知卷积神经网络分布式推理,助力可靠人工智能系统技术

随着人工智能(AI)技术的不断发展,智能服务的广泛应用正在深刻改变着各行各业的面貌。在这个过程中,基于深度学习的系统往往面临计算资源的巨大需求,尤其是在边缘设备上运行复杂的卷积神经网络(CNN)时,计算负载…

不止节能,更能 “生钱”:MyEMS 辅助企业参与电力现货市场的实操案例

随着我国电力市场化改革的不断深化,电力现货市场从试点逐步走向常态化运行。对于用电大户企业而言,这既是机遇 —— 可通过灵活调整用电策略享受电价波动红利,也是挑战 —— 传统用电模式难以应对复杂的电价机制,往…

当能耗监控变 “游戏”:MyEMS 可视化看板如何让员工主动参与节能?

在企业节能管理中,“员工被动接受监控” 是长期存在的痛点 —— 传统能耗数据报表枯燥难懂,员工既不清楚自己的行为与能耗的关联,也缺乏主动节能的动力。而 MyEMS(My Energy Management System)可视化看板的出现,…

微算法科技(NASDAQ:MLGO)基于任务迁移的弹性框架重塑动态扩缩容,赋能边缘智能计算

在全球数字化进程加速的今天,边缘计算(Edge Computing,简称EC)作为推动移动互联网、物联网和智能终端普及的关键技术,正被赋予越来越多的期待。随着用户对于实时性、可靠性以及高性能数据处理需求的不断提升,传统…

从小时级到分钟级:多点DMALL如何用Apache SeaTunnel把数据集成成本砍到1/3?

过去我们依赖 Spark 自研同步工具,虽然稳定,却面临“启动慢、资源重、扩展难”的痛点。作者 | 贾敏 多点DMALL 资深大数据研发工程师 作者介绍 贾敏,多点 DMALL 资深大数据研发工程师,主导公司核心数据集成平台架构…

2025 最新隔音棉生产厂家口碑推荐榜:甄选实力与品质兼具的品牌,含西南 / 昆明高性价比厂商最新推荐防火墙/内衬/鸡蛋/聚酯纤维/装修/吊顶隔音棉厂家推荐

随着建筑装饰、汽车改装等领域对声学环境要求的升级,隔音棉市场需求持续扩大,但行业乱象让采购者面临多重挑战。部分厂商为压低成本选用劣质基材,导致产品隔音量不足、防火环保不达标,潮湿环境下易发霉老化;新品牌…