Skip to content

Instantly share code, notes, and snippets.

@georghildebrand
Last active January 13, 2019 22:17
Show Gist options
  • Save georghildebrand/38fef49b06991f2bea6580b03a861aae to your computer and use it in GitHub Desktop.
Save georghildebrand/38fef49b06991f2bea6580b03a861aae to your computer and use it in GitHub Desktop.
Download cryptocurrency metrics from Kraken for last 12 hours in 1 min interval
#/usr/bin/python
import requests as r
import datetime as dt
def nxtime2datetime(nix_time):
return dt.datetime.fromtimestamp(nix_time)
#get time of server
url = 'https://api.kraken.com/0/public/Time'
resp = r.get(url)
print(resp.json())
resp = resp.json()
server_now = resp['result']['unixtime']
start = server_now - 12*60*60 # substracting half a day in seconds
url = 'https://api.kraken.com/0/public/AssetPairs'
# pair = comma delimited list of asset pairs to get info on
resp = r.get(url).json()
print(resp['result'].keys())
pairs = resp['result'].keys()
#pairs_example = ['DASHEUR', 'DASHUSD', 'DASHXBT', 'GNOETH', 'GNOEUR', 'GNOUSD', 'GNOXBT', 'USDTZUSD', 'XETCXETH', 'XETCXXBT', 'XETCZEUR', 'XETCZUSD', 'XETHXXBT', 'XETHXXBT.d', 'XETHZCAD', 'XETHZCAD.d', 'XETHZEUR', 'XETHZEUR.d', 'XETHZGBP', 'XETHZGBP.d', 'XETHZJPY', 'XETHZJPY.d', 'XETHZUSD', 'XETHZUSD.d', 'XICNXETH', 'XICNXXBT', 'XLTCXXBT', 'XLTCZEUR', 'XLTCZUSD', 'XMLNXETH', 'XMLNXXBT', 'XREPXETH', 'XREPXXBT', 'XREPZEUR', 'XREPZUSD', 'XXBTZCAD', 'XXBTZCAD.d', 'XXBTZEUR', 'XXBTZEUR.d', 'XXBTZGBP', 'XXBTZGBP.d', 'XXBTZJPY', 'XXBTZJPY.d', 'XXBTZUSD', 'XXBTZUSD.d', 'XXDGXXBT', 'XXLMXXBT', 'XXLMZEUR', 'XXLMZUSD', 'XXMRXXBT', 'XXMRZEUR', 'XXMRZUSD', 'XXRPXXBT', 'XXRPZCAD', 'XXRPZEUR', 'XXRPZJPY', 'XXRPZUSD', 'XZECXXBT', 'XZECZEUR', 'XZECZUSD']
today = dt.datetime.now()
# kraken seems to offer only the last 12 hours for the 1 min interval
#so we need to trigger all 12 h
print('Getting infor for last 12 hours')
for pair in pairs:
cols = '<time>, <open>, <high>, <low>, <close>, <vwap>, <volume>, <count>'
cols = cols.replace(" ",'').replace("<","").replace(">","").split(",")
# since in unixtime
url = 'https://api.kraken.com/0/public/OHLC?pair={pair}&interval=1&since={since}'.format(since=start, pair=pair)
try:
resp = r.get(url).json()
result = resp['result'][pair]
# append to daily file
with open(today.strftime('%Y-%m-%d-%H-%M')+'-'+pair+'.csv', 'w') as f:
f.write(",".join(cols)+"pair"+'\n')
for row in result:
row[0] = nxtime2datetime(row[0])
row[0] = row[0].strftime('%Y-%m-%d %H:%M')
row.append(pair)
row.append('\n')
f.write(",".join(map(str, row)))
except Exception as e:
print(e)
continue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment