
在贵金属期货交易与量化分析中,实时行情数据是核心前提。无论是黄金、白银等贵金属,还是原油、天然气等能源期货,及时获取主力合约及实时报价,能为交易决策提供关键支撑。本文将以 Python 为工具,带你快速完成贵金属期货实时行情 API 的接入,覆盖核心品种与主力合约筛选,附完整可运行代码。

本次实战基于 Python 3.6+版本,需提前安装核心依赖库:
requests:用于发送 HTTP 请求,调用 API 接口;pandas:用于数据解析、筛选与格式化,方便后续分析。安装命令直接在终端执行:
pip install requests pandas选择 API 时需重点关注 3 点:
本文代码示例以 iTick API 为例(需提前注册账号,获取 API token),其支持黄金(AU)、白银(AG)、原油(CL)、天然气(NG)等品种,可直接返回主力合约行情。
以下代码完整实现“API 调用-数据解析-主力合约筛选-结果输出”全流程,可直接替换 API token 运行:
import requests
import pandas as pd
from datetime import datetime
def get_precious_metal_quote(token):
# API基础地址
base_url = "https://api.itick.org/future/quotes"
# 品种配置:按region分组
symbol_groups = {
"CN": "AU,AG", # 黄金、白银
"US": "CL,NG" # 原油、天然气
}
quote_list = []
headers = {
"accept": "application/json",
"token": token
}
try:
for region, codes in symbol_groups.items():
# 构建请求参数
params = {
"region": region,
"codes": codes
}
# 发送GET请求
response = requests.get(base_url, params=params, headers=headers, timeout=5)
response.raise_for_status() # 抛出HTTP请求异常
data = response.json()
# 数据校验
if data["code"] != 0:
print(f"API调用失败 for {region}: {data.get('msg', 'Unknown error')}")
continue
quotes_data = data["data"]
for code, quote_data in quotes_data.items():
# 提取关键字段,并适配原格式
quote = {
"symbol": quote_data["s"],
"contract": f"{quote_data['s']}主力", # 假设返回为主力合约
"price": quote_data["ld"],
"change": f"{quote_data['ch']} ({quote_data['chp']}%)",
"volume": quote_data["v"],
"update_time": datetime.fromtimestamp(quote_data["t"] / 1000).strftime("%Y-%m-%d %H:%M:%S")
}
quote_list.append(quote)
if not quote_list:
return None
# 转换为DataFrame
df = pd.DataFrame(quote_list)
# 由于API直接返回主力行情,无需额外筛选
result_df = df[[
"symbol", "contract", "price", "change", "volume", "update_time"
]]
return result_df
except requests.exceptions.RequestException as e:
print(f"网络请求异常:{e}")
return None
except Exception as e:
print(f"数据处理异常:{e}")
return None
# 主程序
if __name__ == "__main__":
# 替换为你的API token
TOKEN = "your_token_here"
# 获取行情数据
market_quote = get_precious_metal_quote(TOKEN)
if market_quote is not None:
print("贵金属期货主力合约实时行情:")
print(market_quote.to_string(index=False))
else:
print("未能获取行情数据")成功运行后,将输出如下格式的主力合约实时行情(数据为模拟值):
免费 API 通常有调用频率限制(如每分钟 ≤10 次),需避免高频请求导致账号被封;商业 API 需遵守付费套餐约定,开启请求限流机制(可通过time.sleep()控制调用间隔)。
实时行情可能存在网络延迟或数据异常,建议加入校验逻辑:例如判断最新价是否在合理区间(如黄金价格不会突然跌至 100 元/克),成交量是否为非负值,确保数据可用。
主力合约会随时间切换(通常在合约到期前 1-2 个月),需定期更新合约代码或通过 API 的连续合约功能动态获取,避免获取到过期合约行情。
基于本次接入的实时行情,可进一步实现:
matplotlib或plotly绘制 K 线图、实时价格走势图;通过 Python 接入贵金属期货实时行情 API,核心在于选择合适的 API 接口、精准解析数据并筛选主力合约。本文提供的代码可直接适配多数主流 API,稍作调整即可应用于黄金、白银、原油、天然气等品种的行情获取。后续可根据实际需求优化功能,实现更灵活的行情分析与交易辅助。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。