73 lines
2.3 KiB
Python

#!/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