2017-08-07 13 views
15

Các doc API không khuyến khích thăm dò trên /ticker endpoint, và khuyên bạn nên sử dụng các dòng WebSocket để lắng nghe thông điệp phù hợpLàm thế nào để có được giá thầu thời gian thực/hỏi/giá từ GDAX WebSocket ăn

Nhưng phản ứng phù hợp với chỉ cung cấp một priceside (bán/mua)

Làm cách nào để tạo lại dữ liệu của phiếu mua hàng (giá, yêu cầu và giá thầu) từ nguồn cấp dữ liệu websocket?

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

Điểm cuối và nguồn cấp dữ liệu websocket đều trả về 'giá', nhưng tôi đoán là không giống nhau. Có phải là price từ điểm cuối số ticker một số loại trung bình theo thời gian không?

Tôi làm cách nào để tính giá trị Bid, giá trị Ask?

+1

Gần đây, tôi đã khám phá gdax api và có cùng một câu hỏi. Không có ý tưởng làm thế nào họ tính toán "giá" ticker. Tôi vẫn kết thúc bỏ phiếu vì lý do này (cứ 5 giây một lần). – Aknosis

Trả lời

10

Nếu tôi sử dụng các thông số trong đăng ký nhắn:

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

Mỗi lần một thương mại mới được thực hiện (và có thể nhìn thấy trên http://www.gdax.com), tôi nhận được loại tin nhắn từ các ổ cắm 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' 
} 

Ngay sau khi thông điệp cụ thể này, tôi đã làm một được trên https://api.gdax.com/products/BTC-EUR/ticker, và tôi nhận điều này:

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

Dữ liệu hiện tại giống nhau từ ổ cắm web so với yêu cầu nhận yêu cầu.

Vui lòng tìm bên dưới một tập lệnh thử nghiệm hoàn chỉnh triển khai ổ cắm web với mã này.

#!/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() 
Các vấn đề liên quan