wallet pro plus gdax gadx coinbasepro coinbase binance coinbase-api gdax-api

coinbase-api - plus - gdax coinbase pro



Cómo obtener una oferta/pregunta/precio en tiempo real de la fuente websocket de GDAX (1)

Si uso estos parámetros en el mensaje de suscripción :

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

Cada vez que se ejecuta un nuevo intercambio (y se puede ver en http://www.gdax.com ), recibo este tipo de mensaje desde el socket web:

{ 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'' }

Justo después de este mensaje en particular, obtuve un mensaje en https://api.gdax.com/products/BTC-EUR/ticker , y obtuve esto:

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

Los datos actuales son los mismos de socket web en comparación con la solicitud de obtención .

A continuación encontrará un script de prueba completo que implementa un socket web con este ticker.

#!/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()

El documento de la API no recomienda el sondeo en /ticker punto final /ticker , y recomienda usar el flujo websocket para escuchar el mensaje de coincidencia

Pero la respuesta de coincidencia solo proporciona un price y un side (venta / compra)

¿Cómo puedo recrear los datos del ticker (precio, consulta y oferta) del feed websocket?

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

El punto final del ticker y la fuente websocket devuelven un ''precio'', pero supongo que no es lo mismo. ¿El price del punto final del ticker un tipo de promedio en el tiempo?

¿Cómo puedo calcular el valor de la Bid , Ask valor?