अगर मैं में इन मानकों का उपयोग सदस्यता ले संदेश:
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()
मैं हाल ही में जीडीएक्स एपीआई की खोज कर रहा था और वही सवाल था। कोई विचार नहीं कि वे टिकर "कीमत" की गणना कैसे करते हैं। मैं अभी भी इस कारण के लिए मतदान समाप्त कर दिया (एक बार हर 5 सेकंड में)। – Aknosis