【问题标题】:Use REST API while streaming Websocket在流式传输 Websocket 时使用 REST API
【发布时间】:2021-06-06 05:20:43
【问题描述】:

如何通过 REST API 请求,同时通过 Websocket 进行流式传输?

示例:
客户端和交易所服务器之间的通信,使用交易所的 API 进行交易。
具体来说,我想使用 REST API 请求发送订单,
然后我想通过私有 Websocket 从交易所接收我的订单信息。

下面是代码。
如果我开始订阅 Websocket(参见 1),它将处于 ws.run_forever() 循环中。
我怎样才能在ws.run_forever()循环中执行2.,这样一旦订单被执行,我立即从交易所服务器收到订单信息?

1。通过 Websocket 流式传输

# Subscribing to order information from an exchange via WebSocket API

import json
import websocket

def on_open(self):
    message = {
        "command": "subscribe",
        "channel": "orderEvent"
    }
    ws.send(json.dumps(message))
    
def on_message(self, message):
    # do something...

endpoint = "url"
ws = websocket.WebSocketApp(endpoint,
                            on_open=on_open,
                            on_message=on_message
                            )
ws.run_forever()

2。通过 REST API 发送订单

# Sending order

import requests

    reqBody = {
        "side": BUY,
        "amount" : AMOUNT,
    }

    requests.post("request_url", headers=headers, data=json.dumps(reqBody))

【问题讨论】:

  • 你需要在你的项目中添加一个rest API,然后将它与rest一起使用。
  • @Mastisa 你能详细说明一下吗?也许有一个代码示例?我不明白您将其“添加”到我的项目并“使用”它是什么意思。

标签: python websocket rest algorithmic-trading


【解决方案1】:

在处理邮件时,您可以决定提交订单。像这样的东西应该可以工作

def on_message(self, message):
    if something:
        response = buy_stock(AMOUNT)
    
def buy_stock(AMOUNT):
    reqBody = {
        "side": BUY,
        "amount" : AMOUNT,
    }

    r = requests.post("request_url", headers=headers, data=json.dumps(reqBody))
    return r

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 2021-07-17
    • 2013-05-05
    • 1970-01-01
    • 2021-02-26
    • 2015-10-28
    • 1970-01-01
    相关资源
    最近更新 更多