【问题标题】:Coinbase Pro API web socket to retrieve interval (not the ticker)Coinbase Pro API Web 套接字检索间隔(不是股票代码)
【发布时间】:2021-06-04 10:46:09
【问题描述】:

是否可以使用 Coinbase Pro API Web 套接字检索最后一个粒度间隔条目?例如在小时图 (3600) 上通过网络套接字检索每小时更新。我可以使用普通的 REST 调用来执行此操作,并且可以通过 Web 套接字获取代码,但这并不是我想要的。

这是 BTC-GBP 和 BTC-USD 代码的有效网络套接字示例。

from websocket import create_connection
import json, time

URL = "wss://ws-feed.pro.coinbase.com"

ws = create_connection(URL)

params = {"type": "subscribe", "product_ids": ["BTC-USD"],
"channels": ["heartbeat", {"name": "ticker", "product_ids": ["BTC-USD", "BTC-GBP"]}]}

while True:
    ws.send(json.dumps(params))
    result = ws.recv()
    print(result)
    time.sleep(1)
    converted = json.loads(result)

换一种方式来解释,这是一个 web socket 版本:

https://api.pro.coinbase.com/products/BTC-GBP/candles?granularity=3600

可以做到吗?如果可以怎么做?

【问题讨论】:

    标签: websocket coinbase-api


    【解决方案1】:

    对于初学者,请不要为您希望收到的每条消息向他们的 websocket 服务器发送一次订阅消息。订阅一次就足够了。如果您尝试允许更新订阅,请考虑添加一个条件子句,在决定是否发送之前检测订阅字典何时发生更改。

    ws.send(json.dumps(params))
    while True:
        result = ws.recv()
        print(result)
        time.sleep(1)
        converted = json.loads(result)
    

    回答你原来的问题;但是,您可以订阅“匹配”频道,并根据数据自行创建蜡烛。创建四个变量(开盘价、最高价、最低价、收盘价),并存储在一段时间内出现的第一个价格(在您的情况下为一小时),然后存储在该时间段内看到的最大和最小价格,最后最后看到的价格。您还可以在时间窗口内保持音量的运行总和。

    【讨论】:

    • @Michael-Whittle 你试过这个方法了吗?
    猜你喜欢
    • 2011-01-23
    • 2019-10-10
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-16
    • 1970-01-01
    相关资源
    最近更新 更多