使用PHP获取黄金、铂金,铑金,钯金等实时数据api
在金融投资和量化交易领域,实时获取黄金、铂金等贵金属的市场数据至关重要。本文将介绍如何通过API接口轻松获取各类贵金属的实时行情数据,帮助开发者快速构建自己的行情监控系统。
一、API接口概述
接口基本信息
接口地址:
http://39.107.99.235:1008/getQuote.php?code=T_XAU请求方式:GET
数据格式:JSON(支持gzip压缩)
核心功能
通过简单的HTTP请求,即可获取包括:
实时价格(最新价、开盘价、最高价、最低价)
买卖盘口(买一卖一价格和数量)
成交量数据
涨跌幅信息
深度数据(买1-5档、卖1-5档)
实时成交记录
二、如何获取贵金属数据
1. 确定产品代码
不同的贵金属产品有不同的代码标识:
黄金(XAU/USD):T_XAU
白银(XAG/USD):T_XAG
铂金(XPT/USD):T_XPT
注意:具体产品代码需要通过产品查询接口获取
2. 基础请求示例
<?php
/**
* 获取贵金属实时数据
*/
function getMetalDataSimple($productCode) {
// 验证参数
if (empty($productCode)) {
throw new Exception("产品代码不能为空");
}
// 构建请求URL
$url = "http://39.107.99.235:1008/getQuote.php?code=" . urlencode($productCode);
// 设置请求头
$options = [
'http' => [
'method' => 'GET',
'header' => "Accept-Encoding: gzip\r\n",
'timeout' => 30
]
];
$context = stream_context_create($options);
// 发送请求
$response = @file_get_contents($url, false, $context);
if ($response === false) {
throw new Exception("请求失败: " . error_get_last()['message']);
}
// 检查是否gzip压缩
if (isset($http_response_header)) {
foreach ($http_response_header as $header) {
if (strpos(strtolower($header), 'content-encoding') !== false &&
strpos(strtolower($header), 'gzip') !== false) {
$response = gzdecode($response);
break;
}
}
}
// 解析JSON
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
throw new Exception("JSON解析失败: " . json_last_error_msg());
}
return $data;
}
// 使用示例
try {
// 黄金的产品代码是 T_XAU
$goldData = getMetalDataSimple("T_XAU");
if ($goldData['code'] == 200) {
$body = $goldData['data']['body'];
echo "黄金实时行情:\n";
echo "最新价: " . $body['Price'] . "\n";
echo "涨跌幅: " . $body['DiffRate'] . "%\n";
echo "更新时间: " . $body['Time'] . "\n";
} else {
echo "请求失败: " . $goldData['msg'] . "\n";
}
} catch (Exception $e) {
echo "错误: " . $e->getMessage() . "\n";
}
?>
三、API响应数据结构详解
1. 基础行情字段
{
"code": 200,
"msg": "success",
"data": {
"body": {
"StockCode": "xauusd", // 产品代码
"Price": 2035.42, // 最新价
"Open": 2028.15, // 开盘价
"LastClose": 2025.80, // 昨日收盘
"High": 2040.25, // 最高价
"Low": 2025.10, // 最低价
"Time": "2024-01-15 10:30:25", // 更新时间
"BP1": 2035.40, // 买一价
"BV1": 2.5, // 买一量
"SP1": 2035.45, // 卖一价
"SV1": 1.8, // 卖一量
"TotalVol": 15234.56, // 成交量
"Diff": 9.62, // 涨跌额
"DiffRate": 0.47 // 涨跌幅
}
}
}
2. 深度数据(市场深度)
"Depth": {
"Buy": [
{"BP1": 2035.40, "BV1": 2.5}, // 买一档
{"BP2": 2035.35, "BV2": 1.8}, // 买二档
{"BP3": 2035.30, "BV3": 3.2}, // 买三档
// ...
],
"Sell": [
{"SP1": 2035.45, "SV1": 1.8}, // 卖一档
{"SP2": 2035.50, "SV2": 2.1}, // 卖二档
{"SP3": 2035.55, "SV3": 0.9}, // 卖三档
// ...
]
}
3. 实时成交记录
"BS": [
{
"time": "10:30:25",
"price": 2035.42,
"size": 0.5,
"direction": 2 // 1:卖, 2:买
}
]
四、总结
通过本文介绍的API接口,开发者可以轻松获取黄金、铂金等贵金属的实时行情数据。关键点总结:
接口简单易用:只需一个HTTP GET请求即可获取完整行情数据
数据全面:包含价格、成交量、深度数据、实时成交等
多语言支持:Python、Java、PHP等多种语言均可调用
应用广泛:适用于行情监控、量化交易、数据分析等多个场景
本作品采用《CC 协议》,转载必须注明作者和本文链接
关于 LearnKu
推荐文章: