【问题标题】:Python3 Kraken Exchange Websockets AddOrder not workingPython3 Kraken Exchange Websockets AddOrder 不工作
【发布时间】:2022-12-14 12:18:44
【问题描述】:

我正在尝试通过 websockets 发送订单,但我不知道如何从 websocket 接收关于它是否成功的响应。该网站 (https://support.kraken.com/hc/en-us/articles/360034936531-WebSocket-API-Trading-addOrder-and-cancelOrder) 表示,一旦订单发出,就会有一个回复说明是否成功。

我只是用以下代码测试 addOrder:

async def test():
    async for ws in websockets.connect("wss://ws-auth.kraken.com/"):
        try:
            token = generate_token()
            request = {"event": "subscribe", "subscription": {"name": "addOrder", "token": token}}
            await ws.send(json.dumps(request))
            confirm_connection(await ws.recv())
            confirm_subscription(await ws.recv())
            volume = 0.0001
            leverage = 0
            ID = '12345'
            request = {'event': 'addOrder', 'token': token, 'reqid': ID, 'ordertype': 'market', 'type': 'buy', 'pair': "XBT/USD", 'volume': volume, 'userref': ID, 'validate': 1}
            resp1 = await ws.send(json.dumps(request))
            resp2 = await ws.recv()
        except websockets.ConnectionClosed:
            continue

它连接到 websocket,发出测试交易请求,然后将其发送出去。然后,当我尝试接收响应时(符合 resp2 = ...),它只是说以下内容:

'{"errorMessage":"Public market data subscriptions are unavailable on this endpoint. Try ws.kraken.com","event":"subscriptionStatus","status":"error","subscription":{"name":"addOrder","token":"X"}}'

您应该如何收到关于 Kraken 是否收到交易请求的回复?

提前致谢

【问题讨论】:

    标签: python-3.x websocket


    【解决方案1】:

    我没有使用 kraken websockets addOrder 的经验,但我确实有使用 kraken addOrder api 和 kraken ownTrades 以及 openOrders websocket 订阅的经验。

    我在这里猜测,但从错误消息来看,错误消息似乎是对您之前请求订阅频道数据提要的 websocket 订阅调用的响应(虽然不确定是哪个)。

    使用 websockets,在连接后,您应该会收到 systemStatus 响应消息。其中,它包含状态(“在线”是您要检查的内容)。

    接下来,根据订阅情况,如果该服务在线,您可能会收到与该服务相关的快照消息。该消息将包含最近的交易成交(ownTrades 订阅)或当前未结订单(openOrders 订阅)。我没有触及个别资产对订阅,但我猜最近的活动也会被传达。

    我不知道我在这里所说的任何内容是否会对您有所帮助,但我知道这肯定会对您有所帮助......

    通过登录您的 kraken 帐户联系 kraken 支持,然后单击“支持”。我总是开一张支持票(没有聊天等),这样我就可以向他们提供尽可能多的细节,包括我在做什么,我是怎么做的,以及我从那里得到的所有错误信息他们。

    迄今为止,他们在不到 24 小时内就做出了回应,而且他们总是对我的问题给出非常具体的答案(有很多问题)。总的来说,我会给他们的支持打 4.5 星(满分 5 星)。

    祝你好运。

    【讨论】:

    • 请考虑提供一些源代码来支持给定的答案,说明它是如何解决问题的。
    【解决方案2】:

    一段时间后我弄明白了,所以这适用于遇到此问题的任何其他人。

    websocket 订阅没有问题,它按预期工作。 Kraken 做了一件奇怪的事情,他们通过 websocket 发送错误,但这实际上只是一条消息,可以忽略。之后 websocket 保持打开和运行状态,因此您只需要忽略来自 websocket 的第一个响应。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 2014-12-16
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多