2017-08-07 6 views
15

API doc zniechęca odpytywanie na /ticker końcowego, a zaleca się stosowanie strumienia websocket słuchać na mecz wiadomościJak dostać ofertę w czasie rzeczywistym/ask/cena od GDAX websocket karmić

Ale odpowiedź mecz tylko zapewnić price i side (sprzedawać/kupować)

Jak mogę odtworzyć dane z paska informacyjnego (cena, pytanie i stawka) z pliku websocket?

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

ticker końcowy i pasza websocket zarówno powrócić „cenę”, ale myślę, że to nie to samo. Czy punkt końcowy price z punktu końcowego jest w pewnym stopniu uśredniony?

Jak mogę obliczyć wartość Bid, wartość Ask?

+1

Ostatnio badałem gdax api i miałem to samo pytanie. Nie mam pojęcia, jak obliczyć ticker "cena". Nadal kończyłem się sondowaniem z tego powodu (raz na 5 sekund). – Aknosis

Odpowiedz

10

Jeśli użyję tych parametrów w subskrybować wiadomość:

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

każdym razem nowy towarowy jest wykonany (i widoczne na http://www.gdax.com), otrzymuję ten rodzaj wiadomości z gniazdka internetowej:

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

Tuż po tej konkretnej wiadomości, zrobiłem dostać na https://api.gdax.com/products/BTC-EUR/ticker, i mam to:

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

Obecne dane są takie same z gniazda internetowego w porównaniu do żądania dostać.

Poniżej znajduje się pełny skrypt testowy implementujący gniazdo internetowe z tym znacznikiem.

#!/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() 
Powiązane problemy