如何从 GDAX websocket feed 获取实时出价/要价/价格

2024-01-29

API 文档不鼓励轮询/ticker端点,建议使用websocket流来监听匹配消息

但匹配响应只提供了一个price and a side(卖买)

如何从 websocket feed 重新创建股票行情数据(价格、卖价和出价)?

{
  “price”: “333.99”,
  “size”: “0.193”,
  “bid”: “333.98”,
  “ask”: “333.99”,
  “volume”: “5957.11914015”,
  “time”: “2015-11-14T20:46:03.511254Z”
}

The ticker端点和 websocket feed 都返回一个“价格”,但我猜它不一样。是个price来自ticker终点是一段时间内的某种平均值?

我怎样才能计算Bid value, Ask value ?


如果我在订阅信息:

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

每次执行新交易时(并且在http://www.gdax.com http://www.gdax.com),我从网络套接字收到这种消息:

{
 u'best_ask': u'3040.01',
 u'best_bid': u'3040',
 u'last_size': u'0.10000000',
 u'price': u'3040.00000000',
 u'product_id': u'BTC-EUR',
 u'sequence': 2520531767,
 u'side': u'sell',
 u'time': u'2017-09-16T16:16:30.089000Z',
 u'trade_id': 4138962,
 u'type': u'ticker'
}

就在这条特定的消息之后,我做了一个get on https://api.gdax.com/products/BTC-EUR/ticker https://api.gdax.com/products/BTC-EUR/ticker,我得到了这个:

{
  "trade_id": 4138962,
  "price": "3040.00000000",
  "size": "0.10000000",
  "bid": "3040",
  "ask": "3040.01",
  "volume": "4121.15959844",
  "time": "2017-09-16T16:16:30.089000Z"
}

与 Web 套接字相比,当前数据相同get要求。

请在下面找到一个使用此代码实现 Web 套接字的完整测试脚本。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""Test for websockets."""

from websocket import WebSocketApp
from json import dumps, loads
from pprint import pprint

URL = "wss://ws-feed.gdax.com"


def on_message(_, message):
    """Callback executed when a message comes.

    Positional argument:
    message -- The message itself (string)
    """
    pprint(loads(message))
    print


def on_open(socket):
    """Callback executed at socket opening.

    Keyword argument:
    socket -- The websocket itself
    """

    params = {
        "type": "subscribe",
        "channels": [{"name": "ticker", "product_ids": ["BTC-EUR"]}]
    }
    socket.send(dumps(params))


def main():
    """Main function."""
    ws = WebSocketApp(URL, on_open=on_open, on_message=on_message)
    ws.run_forever()


if __name__ == '__main__':
    main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 GDAX websocket feed 获取实时出价/要价/价格 的相关文章

随机推荐

  • shell脚本中的`kill -0 $pid`有什么作用?

    基本上 0 代表什么信号 因为here http lxr linux no linux v2 6 16 60 include asm i386 signal h L34我看到信号编号从 1 开始 发送信号0对给定的PID只是检查是否有给定的
  • 如何在 pod IP 上使用 kube-dns 启用反向 DNS 查找?

    是否可以在 Kubernetes 上的同一命名空间中从一个 pod 到另一个 pod 进行反向 DNS 查找 设置 Kubernetes 1 5 kube dns 1 9 当我使用 nslookup 执行 pod 时 我没有得到主机名 但只
  • SQL Server 2008 SQL-DMO 的替代方案

    我之前使用 SQL DMO 从数据库自动生成脚本 现在我升级到 SQL Server 2008 我不想再使用此功能 因为 Microsoft 将放弃此功能 我可以使用任何其他替代方法连接到服务器并从数据库自动生成脚本吗 欢迎任何答案 提前致
  • spring web,security + web.xml + mvc调度程序+ Bean创建两次

    我的 Web xml 如下
  • 仅当找到匹配字符串时才替换行的最后一个单词

    仅当找到匹配的字符串时 我才想替换该行的最后一个单词 输入文件 id 5918915 description Test Job NA revision 5 预期输出 id 5918915 description Test Job EU re
  • 当鼠标靠近时排斥物体

    我有一堆随机位置的 span 元素 包含在名为 background 的父 div 内 这些是用 Javascript 生成的 像这样 span class circle style width 54px height 54px backg
  • 将 React 组件从 Rails 引擎导入到应用程序中

    我在用反应在轨道上 https github com shakacode react on rails用于开发 Rails 引擎和应用程序 我写了一个 Rails 引擎 它只有一个组件 NewComponent 它使用react on ra
  • 浮点大于或小于零

    我有以下代码 有时返回 true 有时不返回 知道什么可能导致不同的结果吗 0 00 字符串来自 JSON 对象 代码简化 if new Float 0 00 gt 0 do something EDIT 我有一些浮点数 我想确定它是零 小
  • 尝试访问使用 CIFS 装载的远程文件夹在断开连接时挂起

    这个问题是一个扩展那个问题 https stackoverflow com questions 17929294 qdir hangs on accessing cifs remote folder when disconnected 再说
  • 如何在每个场景之前输出Cucumber后台步骤?

    通常 Cucumber 将输出后台步骤 使其看起来与您在功能文件中定义的相同 位于顶部 bundle exec cucumber color format pretty Feature Something Background Given
  • C# 获取 Windows 中每个显示器的 DPI 缩放比例

    我正在使用 WPF 应用程序中的代码 该应用程序需要计算 Windows 中每个显示器的 DPI 缩放大小 我能够计算出主屏幕的 DPI 但由于某种原因 我无法计算出如何获取其他显示器的比例 其他显示器都返回与主显示器相同的 DPI 有一些
  • 添加重试WebClient的所有请求

    我们有一个服务器来检索 OAUTH 令牌 并且 oauth 令牌通过 WebClient filter 方法添加到每个请求中 例如 webClient mutate filter request next gt tokenProvider
  • 验证 WCF Rest Web 服务

    我在 C 中创建了一个 Web 服务 REST Web 服务 无需任何身份验证 现在 我正在考虑向网络服务添加身份验证 Web服务公开了6个方法 都是GET 在这6个方法中 我想限制 Admin 组成员对2个方法的访问 目前 我的 Web
  • SQLAlchemy外键找不到表

    当我尝试实例化时出现此错误ConsumerAdvice class Foreign key associated with column tbConsumerAdvice ConsumerAdviceCategory ID could no
  • 有没有办法将 EditText/输入字段放入主屏幕小部件中?

    我希望我的用户在主屏幕上输入一些内容 但是每次我向小部件添加 Edittext 时 它都会中断 我做了一些谷歌搜索发现它们显然在小部件中不受支持 不过 每部 Android 手机上都有一个带有输入字段的 Google 搜索小部件 所以我想知
  • React-navigation-hooks:如何测试 useFocusEffect

    据我了解 应该这样做 以便 useFocusEffect 可以作为 useEffect 进行测试 模拟 我使用 useFocusEffect 来获取数据 useFocusEffect useCallback gt fetchData fet
  • 如何从gitlab中完全删除提交?

    我在 git 存储库中进行了提交并推送了它 但意外地它包含了我们生产机器的一些密码 所以我删除了提交 git reset hard HEAD 1 git push force 这确实从提交列表中删除了该提交 但 gitlab 上提交的 ur
  • 具有不同类型中断的状态循环

    我正在尝试将以下有状态命令式代码转换为 Haskell while true while get if put1 failImmediately if put2 succeedImmediately 这俩put1 and put2读取系统的
  • Java 泛型类型转换难题

    我正在尝试使用 Google 的 Guava ImmutableSet 类来创建一组具有类似时间属性的不可变类 java util Date 和 org joda time DateTime private static final Imm
  • 如何从 GDAX websocket feed 获取实时出价/要价/价格

    API 文档不鼓励轮询 ticker端点 建议使用websocket流来监听匹配消息 但匹配响应只提供了一个price and a side 卖买 如何从 websocket feed 重新创建股票行情数据 价格 卖价和出价 price 3