2017-08-07 9 views
15

एपीआई दस्तावेज़ /ticker समाप्ति बिंदु पर मतदान हतोत्साहित, और WebSocket धारा का उपयोग करने की सलाह देते हैं मैच संदेशकैसे वास्तविक समय बोली प्राप्त करने के लिए/GDAX से/कीमत पूछने WebSocket फ़ीड

के लिए सुनने के लिए लेकिन मैच प्रतिक्रिया केवल एक price प्रदान और side (बेचना/खरीदना)

मैं वेबस्केट फ़ीड से टिकर डेटा (मूल्य, पूछने और बोली) को फिर से कैसे बना सकता हूं?

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

ticker अंत बिंदु और WebSocket दोनों फ़ीड एक 'मूल्य' वापसी, लेकिन मुझे लगता है कि यह है कि यह एक ही नहीं है। priceticker एंड्रॉइंट से कुछ समय के औसत के साथ अंतराल है?

मैं Bid मान, Ask मान की गणना कैसे कर सकता हूं?

+1

मैं हाल ही में जीडीएक्स एपीआई की खोज कर रहा था और वही सवाल था। कोई विचार नहीं कि वे टिकर "कीमत" की गणना कैसे करते हैं। मैं अभी भी इस कारण के लिए मतदान समाप्त कर दिया (एक बार हर 5 सेकंड में)। – Aknosis

उत्तर

10

अगर मैं में इन मानकों का उपयोग सदस्यता ले संदेश:

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

हर बार कोई नया व्यापार निष्पादित किया जाता है (और दृश्य 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' 
} 

बस इस विशेष संदेश के बाद, मैं एक 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" 
} 

वर्तमान डेटा अनुरोध की तुलना में वेब सॉकेट से समान है।

कृपया इस टिकर के साथ एक वेब सॉकेट लागू करने वाली एक पूर्ण परीक्षण स्क्रिप्ट के नीचे खोजें।

#!/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() 
संबंधित मुद्दे