#!/usr/bin/env python import requests, json, sys def krakenCalculateOHLC(response): open, high, low, close = 0, 0, 0, 0 keys = list(response["result"].keys()) size = len(response["result"][keys[0]]) for value in response["result"][keys[0]]: open = open + float(value[1]) high = high + float(value[2]) low = low + float(value[3]) close = close + float(value[4]) fopen = open / size fhigh = high / size flow = low / size fclose = close / size return fopen, fhigh, flow, fclose def krakenVolAskBid(type, logger): try: uri = "https://api.kraken.com/0/public/Ticker?pair=" + type.upper().replace('_', '').replace('BTC', 'XBT') response = requests.request("GET", uri) response = json.loads(response.text) keys = list(response["result"].keys()) ask = round(float(response["result"][keys[0]]['a'][0]), 2) bid = round(float(response["result"][keys[0]]['b'][0]), 2) vol = round(float(response["result"][keys[0]]['a'][2]), 2) + \ round(float(response["result"][keys[0]]['b'][2]), 2) return vol, ask, bid except KeyError as e: logger.error("Kraken Volume Ask Bid Error: {}".format(e)) return 0, 0, 0 def krakenOpenClose(type, logger): try: uri = "https://api.kraken.com/0/public/OHLC?pair=" + type.upper().replace('_', '').replace('BTC', 'XBT') + "&?interval\=60" response = requests.request("GET", uri) response = json.loads(response.text) open, high, low, close = krakenCalculateOHLC(response) fopen = round(open, 2) fclose = round(close, 2) return fopen, fclose except KeyError as e: logger.error("Kraken Open Close Error: {}".format(e)) return 0, 0, 0 def krakenHighLow(type, logger): try: uri = "https://api.kraken.com/0/public/OHLC?pair=" + type.upper().replace('_', '').replace('BTC', 'XBT') + "&?interval\=60" response = requests.request("GET", uri) response = json.loads(response.text) open, high, low, close = krakenCalculateOHLC(response) fhigh = round(high, 2) flow = round(low, 2) return fhigh, flow except KeyError as e: logger.error("Kraken Open Close Error: {}".format(e)) return 0, 0