73 lines
2.3 KiB
Python
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 |