如何使用API接口获取黄金、铂金,贵金属等实时数据

166 阅读3分钟

如何使用API接口获取黄金、铂金,贵金属等实时数据

在金融投资和量化交易领域,实时获取黄金、铂金等贵金属的市场数据至关重要。本文将介绍如何通过API接口轻松获取各类贵金属的实时行情数据,帮助开发者快速构建自己的行情监控系统。

一、API接口概述

接口基本信息

  • 接口地址http://39.107.99.235:1008/getQuote.php
  • 请求方式:GET
  • 数据格式:JSON(支持gzip压缩)

核心功能

通过简单的HTTP请求,即可获取包括:

  • 实时价格(最新价、开盘价、最高价、最低价)
  • 买卖盘口(买一卖一价格和数量)
  • 成交量数据
  • 涨跌幅信息
  • 深度数据(买1-5档、卖1-5档)
  • 实时成交记录

二、如何获取贵金属数据

1. 确定产品代码

不同的贵金属产品有不同的代码标识:

  • 黄金(XAU/USD):T_XAU
  • 白银(XAG/USD):T_XAG
  • 铂金(XPT/USD):T_XPT

注意:具体产品代码需要通过产品查询接口获取

2. 基础请求示例

Python版本
import requests
import json
import gzip

class MetalQuoteAPI:
    def __init__(self):
        self.base_url = "http://39.107.99.235:1008/getQuote.php"
    
    def get_metal_quote(self, code):
        """获取贵金属实时数据"""
        url = f"{self.base_url}?code={code}"
        
        # 添加gzip压缩头,提高传输效率
        headers = {'Accept-Encoding': 'gzip'}
        response = requests.get(url, headers=headers, timeout=30)
        response.raise_for_status()
        
        # 处理gzip压缩响应
        if response.headers.get('Content-Encoding') == 'gzip':
            content = gzip.decompress(response.content).decode('utf-8')
        else:
            content = response.text
            
        data = json.loads(content)
        
        if data.get('code') != 200:
            raise Exception(f"API错误: {data.get('msg', '未知错误')}")
            
        return data

    def display_metal_info(self, quote):
        """显示贵金属信息"""
        body = quote['data']['body']
        
        print(f"=== {body.get('StockCode')} 贵金属行情 ===")
        print(f"最新价: ${body.get('Price'):.2f}")
        print(f"涨跌幅: {body.get('DiffRate'):.2f}% ({body.get('Diff'):.2f})")
        print(f"当日区间: ${body.get('Low'):.2f} - ${body.get('High'):.2f}")
        print(f"成交量: {body.get('TotalVol')}")
        print(f"更新时间: {body.get('Time')}")
        
        # 显示买卖盘口
        print(f"\n买卖盘口:")
        print(f"买一: ${body.get('BP1'):.2f} × {body.get('BV1')}")
        print(f"卖一: ${body.get('SP1'):.2f} × {body.get('SV1')}")

# 使用示例
api = MetalQuoteAPI()

# 获取黄金数据
gold_data = api.get_metal_quote("T_XAU")
api.display_metal_info(gold_data)

# 获取白银数据
silver_data = api.get_metal_quote("T_XAG")
api.display_metal_info(silver_data)

三、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接口,开发者可以轻松获取黄金、铂金等贵金属的实时行情数据。关键点总结:

  1. 接口简单易用:只需一个HTTP GET请求即可获取完整行情数据
  2. 数据全面:包含价格、成交量、深度数据、实时成交等
  3. 多语言支持:Python、Java、PHP等多种语言均可调用
  4. 应用广泛:适用于行情监控、量化交易、数据分析等多个场景

通过合理使用这些API,您可以构建专业的贵金属行情分析系统,为投资决策提供有力支持。无论是个人投资者还是金融机构,这些实时数据都将成为您把握市场脉搏的重要工具。