def _get_backcast_data(self): api = krakenex.API() k = KrakenAPI(api) api.load_key('kraken_keys.py') df, last = k.get_ohlc_data(self.pair, interval=self.data_agg, ascending=True) df.index = df.index.tz_localize(tz='UTC').tz_convert('US/Central') return df
class KrakenData(Data): def __init__(self, interval=1, waitInterval=1, **params): self.KAPI = KrakenAPI(krakenex.API()) self.ohlc, self.since = self.KAPI.get_ohlc_data( "BTCUSD", interval=interval, since=None, ascending=True, ) self.interval = interval self.waitInterval = waitInterval super().__init__(**params) async def dataGenerator(self): wait = 60 maxRows = 2880 blockSize = 1440 retry = 0 timer = None while retry < 10: if timer is not None: await timer try: ohlcnew, self.since = self.KAPI.get_ohlc_data( "BTCUSD", interval=self.interval, since=self.since, ascending=True, ) except Exception: await asyncio.sleep(wait) retry += 1 continue # Remove the last enty as it is unconfirmed retry = 0 self.ohlc.drop(self.ohlc.tail(1).index, inplace=True) self.ohlc = self.ohlc.append(ohlcnew) if len(self.ohlc) >= maxRows: self.ohlc.drop(self.ohlc.head(blockSize).index, inplace=True) timer = asyncio.create_task(asyncio.sleep(self.waitInterval * wait)) yield self.ohlc raise ConnectionError("Retry Exceeded 10")
def get_data(monnaie='XXBTZEUR', interval=60, since=None): """Renvoie une DataFrame de max 720 valeurs selon : - la paire de monnaie (monnaie) choisie sous forme de string. Par defaut elle vaut 'XXBTZEUR' et renvoie donc la valeur du Bitcoin en Euros. Si la paire pose problème, tenter de rajouter un X devant la cryptomonaie et un Z devant la monnaie "classique", comme pour la valeur par défaut. (se référer aux monnaies disponibles sur la plateforme Kraken) - l'intervalle (interval) en minutes, qui représente l'intervalle temporel entre deux entrées de la DataFrame. Par défaut elle vaut 60. - la date de début (since). Par défaut la fonction renvoie les 720 dernières valeurs selon l'intervalle choisi. """ api = krakenex.API() k = KrakenAPI(api) ohlc = k.get_ohlc_data(monnaie, interval, since) return ohlc[0]
import krakenex from pykrakenapi import KrakenAPI api = krakenex.API() k = KrakenAPI(api) ohlc, last = k.get_ohlc_data(pair="BCHUSD", interval=30) print('Fetching from Kraken API:\n', ohlc.head(1), '\n') import numpy as np import talib close = np.array(ohlc.close.to_list()) high = np.array(ohlc.high.to_list()) low = np.array(ohlc.low.to_list()) print("Candlestick information:") print("Candle Close\n", close[-10:], "\n") print("Candle High\n", high[-10:], "\n") print("Candle Low\n", low[-10:], "\n") simple_moving_average = talib.SMA(close) print("simple_moving_average:\n", simple_moving_average[-10:], "\n") macd, macdsignal, macdhist = talib.MACD(close, fastperiod=12, slowperiod=26, signalperiod=9) print("MACD:\n", macd[-10:], "\n") parbolic_sar = talib.SAR(high, low, acceleration=1, maximum=1) print("parbolic_sar:\n", parbolic_sar[-10:], "\n")
import krakenex from pykrakenapi import KrakenAPI #import os api = krakenex.API() key = "ignored/new_key.key" api.load_key(key) api.query_private(method="Balance") k = KrakenAPI(api) k.get_account_balance() k.get_trades_history() ohlc, last = k.get_ohlc_data("BCHUSD") print(ohlc) print(last) # open trade descr = k.add_standard_order(pair="XBTEUR", type="buy", ordertype="market", volume=0.002) descr k.get_open_orders(trades=True) k.get_tradable_asset_pairs() response = api.query_private('AddOrder', { 'pair': 'XXBTZEUR', 'type': 'buy',
return df kraken_key, kraken_secret = open('kraken.key').read().split('\n')[0:2] k = krakenex.API(key=kraken_key, secret=kraken_secret) kapi = KrakenAPI(k) abal = kapi.get_account_balance() ab = abal[abal['vol'] != 0].index ap = get_asset_pairs(k) get_name = lambda n: list( filter(lambda x: ap[x]['base'] == n and ap[x]['quote'] == 'ZEUR', ap)) pairs = list(map(get_name, ab)) pairs = list(filter(lambda x: '.d' not in x, [x for l in pairs for x in l])) get_ohlc = lambda x: list(map(lambda x: kapi.get_ohlc_data(x)[0], x)) r = retry(get_ohlc, pairs) r = {k: v for k, v in zip(pairs, r)} conv = { k: v for k, v in zip( pairs, list(map(lambda x: (r[x]['high'].mean() + r[x]['low'].mean()) / 2, r))) } nn = {ap[k]['base']: k for k in conv} for k, v in nn.items(): abal.loc[k, 'usd'] = abal.loc[k, 'vol'] * conv[v] print('Portfolio overview') print(abal) co = retry(kapi.get_closed_orders)[0]
def fetch_data(): api = krakenex.API() k = KrakenAPI(api) ohlc, last = k.get_ohlc_data("BCHUSD") return ohlc, last