如何通过行情API接口查询贵金属实时价格

行情数据api可以快速获取实时tick数据信息,也即所谓的逐笔成交价格。市面上稳定可用的贵金属行情接口虽然比股票的要少,但好产品还是有的。在这记录一个好评比较多的一款。


该API接口需要先注册账户,注册后直接在个人中心找到API秘钥就可以进行对接开发。

申请免费token:https://alltick.co/register

请求示例:

使用HTTP请求查询贵金属行情价格

import timeimport requests	# pip3 install requests
import json# Extra headers
test_headers = {'Content-Type' : 'application/json'
}'''
github:https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-api
申请免费token:https://alltick.co/register
官网:https://alltick.co将如下JSON进行url的encode,复制到http的查询字符串的query字段里
{"trace" : "python_http_test1","data" : {"code" : "USDJPY","kline_type" : 1,"kline_timestamp_end" : 0,"query_kline_num" : 2,"adjust_type": 0}}
{"trace" : "python_http_test2","data" : {"symbol_list": [{"code": "GOLD"}]}}
{"trace" : "python_http_test3","data" : {"symbol_list": [{"code": "GOLD"}]}}
'''
test_url1 = 'https://quote.aatest.online/quote-b-api/kline?token=3662a972-1a5d-4bb1-88b4-66ca0c402a03-1688712831841&query=%7B%22trace%22%20%3A%20%22python_http_test1%22%2C%22data%22%20%3A%20%7B%22code%22%20%3A%20%22USDJPY%22%2C%22kline_type%22%20%3A%201%2C%22kline_timestamp_end%22%20%3A%200%2C%22query_kline_num%22%20%3A%202%2C%22adjust_type%22%3A%200%7D%7D'resp1 = requests.get(url=test_url1, headers=test_headers)# Decoded text returned by the request
text1 = resp1.text
print(text1)

code:查看官方给出的code列表,选择你要查询的code
kline_type: 指的是k线类型,1为1分钟K,2为5分钟K,3为15分钟K,4为30分钟K,5为小时K,6为2小时K,7为4小时K,8为日K,9为周K,10为月K
query_kline_num:查询多少根K线,最多1000根

下面是返回结果:

{"ret":200,"msg":"ok","cmd_id":14015,"seq_id":123,"ext":"3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806","data":{"data_list":[{"symbol_id": 1123,"trade_type": 1,"trade_mode": 0,"kline_type": 1,"price_digits": 2,"kline_list":[{"timestamp": 1605509068,"open_price": "651.12","close_price": "623.12","high_price": "674.12","low_price": "619.12","last_tick_time": 1605509068000001,"last_tick_seq": 1605509068000001,"transactions_number": "12345.6",},]},],}    
}

接口同时支持websocket,下面展示使用websocket请求查询现货黄金/伦敦金(XAUUSD)的实时行情价格:

import json
import websocket    # pip install websocket-client'''
# Special Note:
# GitHub: https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-api
# Token Application: https://alltick.co
# Replace "testtoken" in the URL below with your own token
# API addresses for forex, cryptocurrencies, and precious metals:
# wss://quote.tradeswitcher.com/quote-b-ws-api
# Stock API address:
# wss://quote.tradeswitcher.com/quote-stock-b-ws-api
'''class Feed(object):def __init__(self):# WebSocket URL for forex, cryptocurrencies, and precious metals (use your token)self.url = 'wss://quote.tradeswitcher.com/quote-b-ws-api?token=testtoken'  self.ws = Nonedef on_open(self, ws):"""Callback object which is called at opening websocket.1 argument:@ ws: the WebSocketApp object"""print('A new WebSocketApp is opened!')# Start subscribing to XAUUSD (spot gold)sub_param = {"cmd_id": 22002,"seq_id": 123,"trace": "3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806","data": {"symbol_list": [{"code": "XAUUSD",  # Subscribe to XAUUSD (spot gold)"depth_level": 5,}]}}# Send the subscription messagesub_str = json.dumps(sub_param)ws.send(sub_str)print("XAUUSD (spot gold) depth quote subscribed!")def on_data(self, ws, string, type, continue_flag):"""4 arguments.The 1st argument is this class object.The 2nd argument is utf-8 string which we get from the server.The 3rd argument is data type. ABNF.OPCODE_TEXT or ABNF.OPCODE_BINARY will be came.The 4th argument is continue flag. If 0, the data continue"""def on_message(self, ws, message):"""Callback object which is called when received data.2 arguments:@ ws: the WebSocketApp object@ message: utf-8 data received from the server"""# Parse the received messageresult = eval(message)print(result)def on_error(self, ws, error):"""Callback object which is called when got an error.2 arguments:@ ws: the WebSocketApp object@ error: exception object"""print(error)def on_close(self, ws, close_status_code, close_msg):"""Callback object which is called when the connection is closed.2 arguments:@ ws: the WebSocketApp object@ close_status_code@ close_msg"""print('The connection is closed!')def start(self):self.ws = websocket.WebSocketApp(self.url,on_open=self.on_open,on_message=self.on_message,on_data=self.on_data,on_error=self.on_error,on_close=self.on_close,)self.ws.run_forever()if __name__ == "__main__":feed = Feed()feed.start()

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

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

相关文章

三子棋(C 语言)

目录 一、游戏设计的整体思路二、各个步骤的代码实现1. 菜单及循环选择的实现2. 棋盘的初始化和显示3. 轮流下棋及结果判断实现4. 结果判断实现 三、所有代码四、总结 一、游戏设计的整体思路 (1)提供一个菜单让玩家选择人机对战、玩家对战或者退出游戏…

第二十七篇:传输层讲解,TCP系列一

一、传输层的功能 ① 分割与重组数据 传输层也要做数据分割,所以必然也需要做数据重组。 ② 按端口号寻址 IP只能定位数据哪台主机,无法判断数据报文应该交给哪个应用,传输层给每个应用都设置了一个编号,这个编号就是端口&…

Midjourney官宣网页版免费用!前谷歌大佬祭出AI生图2.0,全网惊艳实测

Midjourney一度稳居AI生图的第一梯队,甚至是很多人心中的Top1。但是Ideogram 2.0的发布,抢夺了Midjourney的荣光,不仅一举拉高了图像生成质量,还打起了价格战。 曾经在AI图像生成领域无可匹敌的领导者Midjourney,终于…

3分钟学会下载 blender

1. blender简介 Blender是一款开源的3D创作套件,它由Blender Foundation维护,并得到了全球志愿者和专业开发者的支持。Blender广泛应用于3D模型的制作、动画、渲染、视频编辑、游戏创建、模拟、 composting以及3D打印等多个领域。 功能特点&#xff1a…

欧盟通过《网络弹性法案》保障联网产品安全

欧盟理事会通过了《网络弹性法案》(CRA),这是一项新法律,旨在使含有数字组件的消费产品更加安全使用。 CRA要求 CRA 概述了欧盟范围内针对数字产品的网络安全标准,即直接或间接连接到其他设备或网络的产品。 此类别…

Qt-QDockWidget浮动窗口相关操作(49)

目录 描述 使用 描述 在 Qt 中,浮动窗⼝也称之为铆接部件。浮动窗⼝是通过 QDockWidget类 来实现浮动的功能。浮动窗口⼀般是位于核心部件的周围,可以有多个。 使用 创建我们可以参考下面的语法格式 使用起来也很简单,不过只能创建一个 Q…

DAY47WEB 攻防-PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过

1、PHP-原生态-文件上传-检测后缀&黑白名单2、PHP-原生态-文件上传-检测信息&类型内容3、PHP-原生态-文件上传-函数缺陷&逻辑缺陷4、PHP-原生态-文件上传-版本缺陷&配置缺陷 文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题…

05 django管理系统 - 部门管理 - 修改部门

04我们已经实现了新增部门的功能,下面开始修改部门模块的实现。 按道理来说,应该是做成弹框样式的,通过ajax悄咪咪的发数据,然后更新前端数据,但是考虑到实际情况,先用页面跳转的方式实现,后面…

TCP/IP相关

1、关于三次握手、四次挥手和TCP的11种状态: 记住这张图就行了: 2、关于慢启动、拥塞避免、超时重传、快速重传、快速恢复 记住这张图就行了: 一些名词解释: MSS:Maximum Segment Size,最大报文长度 RT…

鸿蒙开发之ArkUI 界面篇 三十四 容器组件Tabs 自定义TabBar

如果需要修改Tabs的图标和文字之间的距离我们该怎么办呢?好在tabBar是联合类型,提供了自定义tabBar,这里就可以显示特殊图标或者是文字图片,如下图: 这里定义了myBuilder的函数,用了 来修饰,没有…

《深度学习》【项目】自然语言处理——情感分析 <上>

目录 一、项目介绍 1、项目任务 2、评论信息内容 3、待思考问题 1)目标 2)输入字词格式 3)每一次传入的词/字的个数是否就是评论的长度 4)一条评论如果超过32个词/字怎么处理? 5)一条评论如果…

【论文阅读】SRCNN

学习资料 论文题目:Learning a Deep Convolutional Network for Image Super-Resolution(学习深度卷积网络用于图像超分辨率)论文地址:link.springer.com/content/pdf/10.1007/978-3-319-10593-2_13.pdf代码:作者提出的…

zabbix报警设置

文章目录 I 通过脚本媒介,调用钉钉电话API。配置脚本设置脚本媒介II 配置发送邮件的信息案例:配置163邮箱配置接收媒介创建动作知识扩展DING 2.0 发钉钉钉机器人自定义webhookzabbix执行远程命令I 通过脚本媒介,调用钉钉电话API。 zabbix可以通过脚本调用钉钉电话API,需要…

工程文件参考——STM32+HAL+SPI主从机通讯

文章目录 前言CubeMX设置SPI设置NSS设置 SPI从机代码SPI主机代码 前言 关于如何简单的写一个稳定的SPI主从机通讯,思路很简单 1、SPI高速传输的时候很容易出现错位之类的问题,CRC的校验首先是必要的。在STM32中SPI使用DMA通讯可以自动执行CRC的校验&…

Linux——Harbor(容器镜像 管理项目)

镜像拉取存在一定的问题,出现原因在于: 使用官方公共仓库中的镜像。 拉取的镜像,主要保存在一下仓库中: docker.io //Docker hub 最大的官方维护的公共镜像仓库,一般都会提供所有项目的最新版镜像,镜像…

springboot 整合 快手 移动应用 授权 发布视频 小黄车

前言: 因快手文档混乱,官方社区技术交流仍有很多未解之谜,下面3种文档的定义先区分。 代码中的JSON相关工具均用hutool工具包 1.快手 移动双端 原生SDK 文档https://mp.kuaishou.com/platformDocs/develop/mobile-app/ios.html 2.快手 Api 开…

物联网智能项目(含案例说明)

物联网(Internet of Things,简称IoT)智能项目是指利用物联网技术将各种物理设备、传感器、软件、网络等连接起来,实现设备之间的互联互通,并通过数据采集、传输、处理和分析,实现智能化管理和控制的项目。以…

Qt入门教程:创建我的第一个小程序

本章教程,主要介绍如何编写一个简单的QT小程序。主要是介绍创建项目的过程。 一、打开QT软件编辑器 这里使用的是QT5.14.2版本的,安装教程参考以往教程:https://blog.csdn.net/qq_19309473/article/details/142907096 二、创建项目 到这里&am…

【Docker】03-自制镜像

1. 自制镜像 2. Dockerfile # 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷贝jar包 COPY docker-demo.jar /app.jar # 入口 ENTRYPOINT ["ja…

Flutter应用解析(一)

1、创建项目 1.1 新建 1.2 选择Flutter SDK的位置 1.3 项目名称 英文单词加下划线起名规范,其他默认即可。 1.4 点击运行 发生报错显示我们的JAVA版本不符合 1.5 更改版本设置 1.6 再次启动项目 2、分析页面代码 以下是lib/main.dart的源代码(为了阅…