一、使用websocket的协议提升传输速度
实时金融数据对于投资者和交易员来说至关重要。通过使用WebSocket接入方法,可以轻松获取实时金融数据,例如包括但不限于股票市场数据、财务报表数据、经济指标数据、实时港股行情报价数据、实时美股行情报价数据、A股股票行情报价数据、实时外汇行情报价数据、实时黄金行情报价数据、实时贵金属行情报价数据等,并及时做出决策。WebSocket是一种高效的双向通信协议,它允许数据的实时推送,避免了不断的轮询请求。这种接入方法具有多个优势。
1、首先,它提供了快速的数据传输速度,确保您获取到{BANNED}{BANNED}{BANNED}最佳佳佳新的市场行情数据。其次,WebSocket允许您订阅特定的数据源或股票数据产品,只接收您感兴趣的信息,提高了数据的效率和可用性。
2、此外,WebSocket接口通常具有稳定的连接性,能够处理大量的数据推送,满足高频交易和实时分析的需求。
3、通过使用实时金融数据API接口的WebSocket接入方法,您可以更好地监测市场数据动态,及时抓住交易机会,为您的金融决策提供有力支持。
二、接入步骤
2.1、通过API地址传参建立连接
根据下面代码地址,先申请免费的token
-
github: https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-api
-
token申请:https://alltick.co
-
把下面url中的testtoken替换为您自己的token
-
外汇,数字币,贵金属的api址:
-
wss://quote.tradeswitcher.com/quote-b-ws-api
-
港美股api地址:
-
wss://quote.tradeswitcher.com/quote-stock-b-ws-api
-
建立连接:
-
wss://quote.tradeswitcher.com/quote-stock-b-ws-api?token=testtoken
建立连接之后,就可以订阅具体的接口数据了,具体调用方式看第二步
二、查看code产品列表
支持以下产品品类:
-
美股数据
-
港股数据
-
A股数据
-
外汇数据
-
贵金属数据
-
商品数据
-
数字币数据
三、开始真正的订阅实时行情数据源报价
当你选择好产品code列表后就可以开始真正的订阅实时行情数据源报价了。请看下面的实例代码:
-
import json
-
import websocket # pip install websocket-client
-
-
'''
-
# 特别注意:
-
# github:
-
# token申请:
-
# 把下面url中的testtoken替换为您自己的token
-
# 外汇,数字币,贵金属的api址:
-
# wss://quote.tradeswitcher.com/quote-b-ws-api
-
# 港美股api地址:
-
# wss://quote.tradeswitcher.com/quote-stock-b-ws-api
-
'''
-
-
class Feed(object):
-
-
def __init__(self):
-
self.url = 'wss://quote.tradeswitcher.com/quote-stock-b-ws-api?token=testtoken' # 这里输入websocket的url
-
self.ws = None
-
-
def on_open(self, ws):
-
"""
-
Callback object which is called at opening websocket.
-
1 argument:
-
@ ws: the WebSocketApp object
-
"""
-
print('A new WebSocketApp is opened!')
-
-
# 开始订阅(举个例子)
-
sub_param = {
-
"cmd_id": 22002,
-
"seq_id": 123,
-
"trace":"3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806",
-
"data":{
-
"symbol_list":[
-
{
-
"code": "700.HK",
-
"depth_level": 5,
-
},
-
{
-
"code": "UNH.US",
-
"depth_level": 5,
-
}
-
]
-
}
-
}
-
-
#如果希望长时间运行,除了需要发送订阅之外,还需要修改代码,定时发送心跳,避免连接断开,具体查看接口文档
-
sub_str = json.dumps(sub_param)
-
ws.send(sub_str)
-
print("depth quote are subscribed!")
-
-
def on_data(self, ws, string, type, continue_flag):
-
"""
-
4 argument.
-
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
-
"""
-
# 对收到的message进行解析
-
result = 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()
四、解析推送数据
4.1、{BANNED}{BANNED}{BANNED}最佳佳佳新成交报价解析
-
{
-
"cmd_id":22998,
-
"data":{
-
"code": "1288.HK",
-
"seq": "1605509068000001",
-
"tick_time": "1605509068",
-
"price": "651.12",
-
"volume": "300",
-
"turnover": "12345.6",
-
"trade_direction": 1,
-
}
-
}
4.2、{BANNED}{BANNED}{BANNED}最佳佳佳新5档深度数据解析
-
{
-
"cmd_id":22999,
-
"data":{
-
"code": "1288.HK",
-
"seq": "1605509068000001",
-
"tick_time": "1605509068",
-
"bids": [
-
{
-
"pric": "9.12",
-
"volume": "9.12",
-
},
-
{
-
"pric": "9.12",
-
"volume": "9.12",
-
},
-
{
-
"pric": "9.12",
-
"volume": "9.12",
-
},
-
{
-
"pric": "9.12",
-
"volume": "9.12",
-
},
-
{
-
"pric": "9.12",
-
"volume": "9.12",
-
}
-
],
-
"asks": [
-
{
-
"price": "147.12",
-
"volume": "147.12",
-
},
-
{
-
"price": "147.12",
-
"volume": "147.12",
-
},
-
{
-
"price": "147.12",
-
"volume": "147.12",
-
},
-
{
-
"price": "147.12",
-
"volume": "147.12",
-
},
-
{
-
"price": "147.12",
-
"volume": "147.12",
-
}
-
],
-
}
-
}
五、整理和总结websocket的优势
通过实时金融数据API接口的WebSocket接入方法,您可以享受到及时、高效的金融数据API服务。这种接入方式为投资者和交易员提供了许多优势和便利。
1、首先,实时数据的获取使您能够紧跟市场的变化,及时获取到{BANNED}{BANNED}{BANNED}最佳佳佳新的股票价格、交易量等关键信息。这对于制定交易决策和执行高频交易策略至关重要。其次,WebSocket的双向通信特性使您能够实时订阅和接收您感兴趣的数据源或产品,避免了不必要的数据冗余和网络资源浪费。
2、此外,WebSocket接口通常具有较低的延迟和可靠的连接性,能够处理大规模的数据推送,确保您获取到准确的实时数据。
3、{BANNED}{BANNED}{BANNED}最佳佳佳重要的是,这种接入方法为您提供了强大的灵活性和定制化能力,您可以根据自己的需要和策略要求订阅特定的数据,进行个性化的数据分析和决策支持。
综上所述,实时金融数据API接口的WebSocket接入方法是现代金融交易和投资领域中不可或缺的工具,它为用户提供了快速、可靠的数据传输和个性化的数据订阅服务,帮助他们在竞争激烈的市场中抢占先机,实现更好的投资回报。
阅读(682) | 评论(0) | 转发(0) |