马来西亚股票数据API对接文档
概述
本文档详细说明如何对接StockTV全球股票API中的马来西亚股票数据。马来西亚股票市场是东南亚重要的金融市场之一,包含吉隆坡证券交易所(Bursa Malaysia)等多个交易所。
认证方式
所有API请求都需要在URL参数中包含API Key:
key=您的API密钥
基础信息
- 马来西亚国家ID:
countryId=42
- 主要交易所ID:
- 吉隆坡证券交易所:
exchangeId=62
- 马来西亚ACE市场:
exchangeId=63
- 吉隆坡证券交易所:
API端点
1. 马来西亚股票市场列表
获取马来西亚股票市场列表,支持分页查询。
请求示例:
GET https://api.stocktv.top/stock/stocks?countryId=42&pageSize=50&page=1&key=您的API密钥
参数说明:
countryId
: 必须为42(马来西亚)pageSize
: 每页返回数量(默认10,最大100)page
: 页码(默认1)exchangeId
: 可选,交易所ID
响应示例:
{
"code": 200,
"message": "操作成功",
"data": {
"records": [
{
"id": 41602,
"name": "Media Chinese Int",
"symbol": "MDCH",
"last": 0.12,
"chg": 0,
"chgPct": 0,
"high": 0.12,
"low": 0.12,
"volume": 1241700,
"avgVolume": 441318,
"exchangeId": 62,
"countryId": 42,
"flag": "MY",
"open": false,
"lastClose": 0.12,
"time": 1716448222,
"url": "/equities/media-chinese-international-ltd",
"fundamentalMarketCap": 202470000,
"fundamentalRevenue": "145.22M",
"performanceDay": 0,
"performanceWeek": -4,
"performanceMonth": 0,
"performanceYear": -25,
"technicalDay": "strong_sell",
"technicalWeek": "strong_sell"
}
],
"total": 1000,
"size": 50,
"current": 1,
"pages": 20
}
}
2. 查询特定马来西亚股票
通过股票ID、名称或代码查询马来西亚股票信息。
请求示例:
GET https://api.stocktv.top/stock/queryStocks?countryId=42&symbol=MDCH&key=您的API密钥
参数说明:
id
: 股票PID(可选)name
: 股票名称(可选)symbol
: 股票代码(可选)url
: 股票详情页URL(可选)
3. 马来西亚指数数据
获取马来西亚主要股票指数信息。
请求示例:
GET https://api.stocktv.top/stock/indices?countryId=42&key=您的API密钥
响应包含:
- 富时马来西亚综合指数(KLCI)
- 富时马来西亚70中型股指数
- 富时马来西亚小型股指数等
4. 马来西亚股票K线数据
获取马来西亚股票的K线图表数据。
请求示例:
GET https://api.stocktv.top/stock/kline?pid=41602&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=42&type=1&key=您的API密钥
类型参数:
- 1: 涨幅榜
- 2: 跌幅榜
- 3: 涨停榜
- 4: 跌停榜
6. 马来西亚上市公司信息
获取马来西亚上市公司的详细信息。
请求示例:
GET https://api.stocktv.top/stock/companies?countryId=42&pageSize=10&page=1&key=您的API密钥
7. WebSocket实时数据
通过WebSocket获取马来西亚股票的实时价格数据。
连接示例:
const ws = new WebSocket("wss://ws-api.stocktv.top/connect?key=您的API密钥");
数据说明
交易时间
- 马来西亚股市交易时间(马来西亚标准时间MYT):
- 早盘: 9:00-12:30
- 午盘: 14:30-17:00
- API中的
open
字段表示当前是否处于交易时间
价格货币
- 所有马来西亚股票价格均以马来西亚林吉特(MYR)为单位
特殊处理
- 马来西亚股票代码通常为4-5位字母数字组合
- 马来西亚市场有独特的行业分类体系
马来西亚主要指数
指数代码 | 指数名称 | 说明 |
---|---|---|
KLCI | 富时马来西亚综合指数 | 马来西亚主要股票指数,包含30只最大市值的股票 |
FBM70 | 富时马来西亚70中型股指数 | 中型股指数 |
FBMSC | 富时马来西亚小型股指数 | 小型股指数 |
示例代码
Python示例
import requests
def get_malaysia_stocks(symbol=None):
"""获取马来西亚股票数据"""
url = "https://api.stocktv.top/stock/stocks"
params = {
"countryId": 42,
"pageSize": 50,
"page": 1,
"key": "您的API密钥"
}
if symbol:
params["symbol"] = symbol
response = requests.get(url, params=params)
return response.json()
# 获取Media Chinese International股票数据
mdch_data = get_malaysia_stocks("MDCH")
print(mdch_data)
# 获取马来西亚指数数据
def get_malaysia_indices():
url = "https://api.stocktv.top/stock/indices"
params = {
"countryId": 42,
"key": "您的API密钥"
}
response = requests.get(url, params=params)
return response.json()
indices_data = get_malaysia_indices()
print(indices_data)
JavaScript示例
async function fetchMalaysiaStocks(symbol = null) {
let url = `https://api.stocktv.top/stock/stocks?countryId=42&pageSize=50&page=1&key=您的API密钥`;
if (symbol) {
url += `&symbol=${symbol}`;
}
const response = await fetch(url);
const data = await response.json();
return data;
}
// 使用示例
fetchMalaysiaStocks('MDCH').then(data => {
console.log(data);
});
// 获取马来西亚指数
async function fetchMalaysiaIndices() {
const response = await fetch(
`https://api.stocktv.top/stock/indices?countryId=42&key=您的API密钥`
);
const data = await response.json();
return data;
}
fetchMalaysiaIndices().then(data => {
console.log(data);
});
实时监控示例
import time
import requests
def monitor_klci():
"""监控马来西亚KLCI指数"""
previous_value = None
while True:
try:
data = get_malaysia_indices()
# 查找KLCI指数
klci = next((item for item in data["data"] if "KLCI" in item["name"] or "KLCI" in item["symbol"]), None)
if klci:
current_value = klci["last"]
if previous_value is not None:
change = current_value - previous_value
change_pct = (change / previous_value) * 100
print(f"KLCI指数: {current_value} | 变化: {change:+.2f} ({change_pct:+.2f}%)")
previous_value = current_value
time.sleep(300) # 每5分钟更新一次
except Exception as e:
print(f"获取数据失败: {e}")
time.sleep(60)
# 开始监控KLCI指数
monitor_klci()
WebSocket实时数据
通过WebSocket获取马来西亚股票的实时价格数据。
连接示例:
const ws = new WebSocket("wss://ws-api.stocktv.top/connect?key=您的API密钥");
ws.onmessage = function(event) {
const data = JSON.parse(event.data);
// 马来西亚股票通常以.MY或.KL后缀标识
if (data.symbol.includes('.MY') || data.symbol.includes('.KL')) {
console.log(`马来西亚股票 ${data.symbol}: ${data.last_numeric}`);
}
};
错误处理
错误代码 | 说明 | 处理建议 |
---|---|---|
400 | 参数错误 | 检查countryId参数是否正确设置为42 |
401 | 认证失败 | 检查API Key是否有效 |
404 | 资源不存在 | 检查股票代码或ID是否正确 |
500 | 服务器错误 | 稍后重试或联系技术支持 |
马来西亚股市特点
- 交易货币: 马来西亚林吉特(MYR)
- 交易时间: 周一至周五,上午9:00-12:30,下午14:30-17:00
- 涨跌幅限制: 马来西亚股市有涨跌幅限制机制
- 行业分布: 金融、种植园、工业产品是主要板块
- 外资限制: 部分行业有外资持股限制
注意事项
- 马来西亚股市与A股、港股交易时间不同,需要注意时区差异
- 马来西亚林吉特(MYR)不是主要国际货币,汇率波动可能影响投资回报
- 部分马来西亚股票可能有不同的投票权结构
- 马来西亚有伊斯兰金融相关规定,可能影响某些行业或公司的运营