Tomatenmarc
Tomatenmarc

Reputation: 31

Python: How to set ticker in krakenex for fetching historical OHLC-data?

I am trying to load OHLC-data form Kraken with the API krakenex for my research project. But I can't figure out my mistake.

I am using a modified version of https://github.com/veox/python3-krakenex/blob/master/examples/trades-history.py in python for fetching the historical OHLC-Data:

import krakenex
import datetime
import calendar
import pandas as pd
import time

# takes date and returns nix time
def date_nix(str_date):
    return calendar.timegm(str_date.timetuple())

# takes nix time and returns date
def date_str(nix_time):
    return datetime.datetime.fromtimestamp(nix_time).strftime('%m, %d, %Y')

#return formated request data
def req(start, end, ofs):
    req_data = {'type': 'all',
                'trades': 'true',
                'start': str(date_nix(start)),
                'end': str(date_nix(end)),
                'ofs': str(ofs)
                }
    return req_data

k = krakenex.API()

k.load_key('kraken.key.txt')
#k.set_connection({'pair':'GNOETH'})
#headers={"headers":'XXBTZUSD'}
#pairs = ['XETHZEUR','XXBTZEUR', 'XZECZEUR', 'XXRPZEUR']
datum_ende=[[31,28,31,30,31,30,31,31,30,31,30,31],[31,29,31,30,31,30,31,31,30,31,30,31]]
data = []
count = 0
jahre =[2015,2016,2017]
for j in jahre:
    for i in range(0,11):
        start_date = datetime.datetime(j, i+1, 1)
        if j==2016:
             end_date = datetime.datetime(2016, i+1, datum_ende[1][i])
        else: 
            end_date = datetime.datetime(j, (i+1),datum_ende[0][i])
        th = k.query_private('TradesHistory', req(start_date,end_date,1))
        time.sleep(.25)
        print(th)
        th_error = th['error']
        if int(th['result']['count'])>0:
            count += th['result']['count']
            data.append(pd.DataFrame.from_dict(th['result']

So my problem is now that I receive the lines:

{'error': [], 'result': {'trades': {}, 'count': 0}}

I guess the problem is that I haven't defined a ticker pair. But I can't figure out how I am supposed to do this.

Can you help me out?

Upvotes: 3

Views: 1869

Answers (1)

Boris L.
Boris L.

Reputation: 998

Why don't you try dedicated OHCL method?

Here is a simple usage example:

import krakenex
from pprint import pprint

k = krakenex.API()

pprint(k.query_public('OHLC', {'pair':'XXBTZUSD', 'interval':1440, 'since':1214011560}))

Upvotes: 2

Related Questions