Κώδικας Python για την ανάκτηση ιστορικών δεδομένων χρόνου και πωλήσεων (ιστορικό συναλλαγών).

Τελευταία ενημέρωση: 1 Απριλίου 2025

Τα ιστορικά δεδομένα χρόνου και πωλήσεων για τις αγορές μας μπορούν να ανακτηθούν μέσω του τελικού σημείου Trades του REST API. Ολόκληρο το ιστορικό συναλλαγών είναι διαθέσιμο, από την πρώτη κιόλας συναλλαγή έως την πιο πρόσφατη συναλλαγή.

Ο ακόλουθος κώδικας Python 3 υλοποιεί έναν πελάτη API γραμμής εντολών ειδικά για την ανάκτηση ιστορικών δεδομένων χρόνου και πωλήσεων σε μορφή CSV, και παρέχεται ως παράδειγμα του τρόπου χρήσης του τελικού σημείου Trades:

#!/usr/bin/env python

# Kraken Historical Time and Sales
# Usage: ./krakenhistory symbol start [end]
# Example: ./krakenhistory XXBTZUSD 1559347200 1559433600

import sys
import time
import urllib.request
import json

api_domain = "https://api.kraken.com"
api_path = "/0/public/"
api_method = "Trades"
api_data = ""

if len(sys.argv) < 3:
sys.exit(1)

api_symbol = sys.argv[1].upper()
api_start = str(int(sys.argv[2]) - 1) + "999999999"

if len(sys.argv) > 3:
api_end = sys.argv[3]
else:
api_end = "9999999999"

try:
while True:
api_data = "?pair=%(pair)s&since=%(since)s" % {"pair":api_symbol, "since":api_start}
api_request = urllib.request.Request(api_domain + api_path + api_method + api_data)
try:
api_data = urllib.request.urlopen(api_request).read()
except Exception:
time.sleep(3)
continue
api_data = json.loads(api_data)
if len(api_data["error"]) != 0:
time.sleep(3)
continue
for trade in api_data["result"][api_symbol]:
if int(trade[2]) < int(api_end):
print("%(datetime)d,%(price)s,%(volume)s" % {"datetime":trade[2], "price":trade[0], "volume":trade[1]})
else:
sys.exit(0)
api_start = api_data["result"]["last"]
except KeyboardInterrupt:
None

sys.exit(0)

Χρειάζεστε περισσότερη βοήθεια;