Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1330
  • 博文数量: 2
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 30
  • 用 户 组: 普通用户
  • 注册时间: 2024-04-08 14:20
文章分类
文章存档

2024年(2)

我的朋友
最近访客

分类: 大数据

2024-04-08 14:52:46

一、使用websocket的协议提升传输速度

实时金融数据对于投资者和交易员来说至关重要。通过使用WebSocket接入方法,可以轻松获取实时金融数据,例如包括但不限于股票市场数据、财务报表数据、经济指标数据、实时港股行情报价数据、实时美股行情报价数据、A股股票行情报价数据、实时外汇行情报价数据、实时黄金行情报价数据、实时贵金属行情报价数据等,并及时做出决策。WebSocket是一种高效的双向通信协议,它允许数据的实时推送,避免了不断的轮询请求。这种接入方法具有多个优势。
1、首先,它提供了快速的数据传输速度,确保您获取到{BANNED}{BANNED}{BANNED}最佳佳佳新的市场行情数据。其次,WebSocket允许您订阅特定的数据源或股票数据产品,只接收您感兴趣的信息,提高了数据的效率和可用性。
2、此外,WebSocket接口通常具有稳定的连接性,能够处理大量的数据推送,满足高频交易和实时分析的需求。
3、通过使用实时金融数据API接口的WebSocket接入方法,您可以更好地监测市场数据动态,及时抓住交易机会,为您的金融决策提供有力支持。

二、接入步骤

2.1、通过API地址传参建立连接

根据下面代码地址,先申请免费的token

点击(此处)折叠或打开

  1. github: https://github.com/alltick/realtime-forex-crypto-stock-tick-finance-websocket-api
  2. token申请:https://alltick.co
  3. 把下面url中的testtoken替换为您自己的token
  4. 外汇,数字币,贵金属的api址:
  5. wss://quote.tradeswitcher.com/quote-b-ws-api
  6. 港美股api地址:
  7. wss://quote.tradeswitcher.com/quote-stock-b-ws-api
  8. 建立连接:
  9. wss://quote.tradeswitcher.com/quote-stock-b-ws-api?token=testtoken

建立连接之后,就可以订阅具体的接口数据了,具体调用方式看第二步

二、查看code产品列表

支持以下产品品类:

  • 美股数据
  • 港股数据
  • A股数据
  • 外汇数据
  • 贵金属数据
  • 商品数据
  • 数字币数据

三、开始真正的订阅实时行情数据源报价

当你选择好产品code列表后就可以开始真正的订阅实时行情数据源报价了。请看下面的实例代码:


点击(此处)折叠或打开

  1. import json
  2. import websocket # pip install websocket-client

  3. '''
  4. # 特别注意:
  5. # github:
  6. # token申请:
  7. # 把下面url中的testtoken替换为您自己的token
  8. # 外汇,数字币,贵金属的api址:
  9. # wss://quote.tradeswitcher.com/quote-b-ws-api
  10. # 港美股api地址:
  11. # wss://quote.tradeswitcher.com/quote-stock-b-ws-api
  12. '''

  13. class Feed(object):

  14.     def __init__(self):
  15.         self.url = 'wss://quote.tradeswitcher.com/quote-stock-b-ws-api?token=testtoken' # 这里输入websocket的url
  16.         self.ws = None

  17.     def on_open(self, ws):
  18.         """
  19.         Callback object which is called at opening websocket.
  20.         1 argument:
  21.         @ ws: the WebSocketApp object
  22.         """
  23.         print('A new WebSocketApp is opened!')

  24.         # 开始订阅(举个例子)
  25.         sub_param = {
  26.             "cmd_id": 22002,
  27.             "seq_id": 123,
  28.             "trace":"3baaa938-f92c-4a74-a228-fd49d5e2f8bc-1678419657806",
  29.             "data":{
  30.                 "symbol_list":[
  31.                     {
  32.                         "code": "700.HK",
  33.                         "depth_level": 5,
  34.                     },
  35.                     {
  36.                         "code": "UNH.US",
  37.                         "depth_level": 5,
  38.                     }
  39.                 ]
  40.             }
  41.         }
  42.         
  43.         #如果希望长时间运行,除了需要发送订阅之外,还需要修改代码,定时发送心跳,避免连接断开,具体查看接口文档
  44.         sub_str = json.dumps(sub_param)
  45.         ws.send(sub_str)
  46.         print("depth quote are subscribed!")

  47.     def on_data(self, ws, string, type, continue_flag):
  48.         """
  49.         4 argument.
  50.         The 1st argument is this class object.
  51.         The 2nd argument is utf-8 string which we get from the server.
  52.         The 3rd argument is data type. ABNF.OPCODE_TEXT or ABNF.OPCODE_BINARY will be came.
  53.         The 4th argument is continue flag. If 0, the data continue
  54.         """

  55.     def on_message(self, ws, message):
  56.         """
  57.         Callback object which is called when received data.
  58.         2 arguments:
  59.         @ ws: the WebSocketApp object
  60.         @ message: utf-8 data received from the server
  61.         """
  62.         # 对收到的message进行解析
  63.         result = eval(message)
  64.         print(result)

  65.     def on_error(self, ws, error):
  66.         """
  67.         Callback object which is called when got an error.
  68.         2 arguments:
  69.         @ ws: the WebSocketApp object
  70.         @ error: exception object
  71.         """
  72.         print(error)

  73.     def on_close(self, ws, close_status_code, close_msg):
  74.         """
  75.         Callback object which is called when the connection is closed.
  76.         2 arguments:
  77.         @ ws: the WebSocketApp object
  78.         @ close_status_code
  79.         @ close_msg
  80.         """
  81.         print('The connection is closed!')

  82.     def start(self):
  83.         self.ws = websocket.WebSocketApp(
  84.             self.url,
  85.             on_open=self.on_open,
  86.             on_message=self.on_message,
  87.             on_data=self.on_data,
  88.             on_error=self.on_error,
  89.             on_close=self.on_close,
  90.         )
  91.         self.ws.run_forever()


  92. if __name__ == "__main__":
  93.     feed = Feed()
  94.     feed.start()

四、解析推送数据

4.1、{BANNED}{BANNED}{BANNED}最佳佳佳新成交报价解析


点击(此处)折叠或打开

  1. {
  2.     "cmd_id":22998,
  3.     "data":{
  4.     "code": "1288.HK",
  5.         "seq": "1605509068000001",
  6.         "tick_time": "1605509068",
  7.         "price": "651.12",
  8.         "volume": "300",
  9.         "turnover": "12345.6",
  10.         "trade_direction": 1,
  11.     }
  12. }

4.2、{BANNED}{BANNED}{BANNED}最佳佳佳新5档深度数据解析


点击(此处)折叠或打开

  1. {
  2.     "cmd_id":22999,
  3.     "data":{
  4.     "code": "1288.HK",
  5.         "seq": "1605509068000001",
  6.         "tick_time": "1605509068",
  7.         "bids": [
  8.             {
  9.                 "pric": "9.12",
  10.                 "volume": "9.12",
  11.             },
  12.             {
  13.                 "pric": "9.12",
  14.                 "volume": "9.12",
  15.             },
  16.             {
  17.                 "pric": "9.12",
  18.                 "volume": "9.12",
  19.             },
  20.             {
  21.                 "pric": "9.12",
  22.                 "volume": "9.12",
  23.             },
  24.             {
  25.                 "pric": "9.12",
  26.                 "volume": "9.12",
  27.             }
  28.         ],
  29.         "asks": [
  30.             {
  31.                 "price": "147.12",
  32.                 "volume": "147.12",
  33.             },
  34.             {
  35.                 "price": "147.12",
  36.                 "volume": "147.12",
  37.             },
  38.             {
  39.                 "price": "147.12",
  40.                 "volume": "147.12",
  41.             },
  42.             {
  43.                 "price": "147.12",
  44.                 "volume": "147.12",
  45.             },
  46.             {
  47.                 "price": "147.12",
  48.                 "volume": "147.12",
  49.             }
  50.         ],
  51.     }
  52. }

五、整理和总结websocket的优势

通过实时金融数据API接口的WebSocket接入方法,您可以享受到及时、高效的金融数据API服务。这种接入方式为投资者和交易员提供了许多优势和便利。
1、首先,实时数据的获取使您能够紧跟市场的变化,及时获取到{BANNED}{BANNED}{BANNED}最佳佳佳新的股票价格、交易量等关键信息。这对于制定交易决策和执行高频交易策略至关重要。其次,WebSocket的双向通信特性使您能够实时订阅和接收您感兴趣的数据源或产品,避免了不必要的数据冗余和网络资源浪费。
2、此外,WebSocket接口通常具有较低的延迟和可靠的连接性,能够处理大规模的数据推送,确保您获取到准确的实时数据。
3、{BANNED}{BANNED}{BANNED}最佳佳佳重要的是,这种接入方法为您提供了强大的灵活性和定制化能力,您可以根据自己的需要和策略要求订阅特定的数据,进行个性化的数据分析和决策支持。

综上所述,实时金融数据API接口的WebSocket接入方法是现代金融交易和投资领域中不可或缺的工具,它为用户提供了快速、可靠的数据传输和个性化的数据订阅服务,帮助他们在竞争激烈的市场中抢占先机,实现更好的投资回报。







阅读(682) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:实时股票 API 接口说明

给主人留下些什么吧!~~