Exemple #1
0
def create_coinlist():
    polo = Poloniex()
    vol = polo.marketVolume()
    ticker = polo.marketTicker()
    pairs = []
    coins = []
    volumes = []
    prices = []
    for k, v in vol.items():
        if k.startswith("BTC_") or k.endswith("_BTC"):
            pairs.append(k)
            for c, val in v.items():
                if c != 'BTC':
                    if k.endswith('_BTC'):
                        coins.append('reversed_' + c)
                        prices.append(1.0 / float(ticker[k]['last']))
                    else:
                        coins.append(c)
                        prices.append(float(ticker[k]['last']))
                else:
                    volumes.append(0.0)
    coin_list = pd.DataFrame({
        'coin': coins,
        'pair': pairs,
        'volume': volumes,
        'price': prices
    })
    coin_list = coin_list.set_index('coin')
    return coin_list
Exemple #2
0
    def __init__(self, end, volume_average_days=1, volume_forward=0):
        self._polo = Poloniex()
        vol = self._polo.marketVolume()
        ticker = self._polo.marketTicker()
        pairs = []
        coins = []
        volumes = []
        prices = []

        logging.info("select coin online from %s to %s"
                     % (datetime.fromtimestamp(end - (DAY * volume_average_days) - volume_forward).strftime('%Y-%m-%d %H:%M'),
                        datetime.fromtimestamp(end - volume_forward).strftime('%Y-%m-%d %H:%M')))

        for k, v in vol.items():
            if k.startswith("BTC_") or k.endswith("_BTC"):
                pairs.append(k)
                for c, val in v.items():
                    if c != 'BTC':
                        if k.endswith('_BTC'):
                            # BTCが後ろなら逆数にする
                            coins.append('reversed_' + c)
                            prices.append(1.0 / float(ticker[k]['last']))
                        else:
                            coins.append(c)
                            prices.append(float(ticker[k]['last']))
                    else:
                        volumes.append(self.__get_total_volume(pair=k, global_end=end,
                                                               days=volume_average_days,
                                                               forward=volume_forward))
        self._df = pd.DataFrame({'coin': coins, 'pair': pairs, 'volume': volumes, 'price': prices})
        self._df = self._df.set_index('coin')
    def __init__(self,
                 end=1483315200,
                 volume_average_days=30,
                 volume_forward=0.08):
        #opens Poloniex, gets data
        self._polo = Poloniex()
        # connect the internet to accees volumes
        vol = self._polo.marketVolume()
        ticker = self._polo.marketTicker()
        pairs = []
        coins = []
        volumes = []
        prices = []

        logging.info(
            "select coin online from %s to %s" %
            (datetime.fromtimestamp(end - (DAY * volume_average_days) -
                                    volume_forward).strftime('%Y-%m-%d %H:%M'),
             datetime.fromtimestamp(end - volume_forward).strftime(
                 '%Y-%m-%d %H:%M')))
        for k, v in vol.items():
            if k.startswith("BTC_") or k.endswith("_BTC"):
                pairs.append(k)
                for c, val in v.items():
                    if c != 'BTC':
                        #add coin prices
                        if k.endswith('_BTC'):
                            coins.append('reversed_' + c)
                            prices.append(1.0 / float(ticker[k]['last']))
                        else:
                            coins.append(c)
                            prices.append(float(ticker[k]['last']))
                    else:
                        volumes.append(
                            self.__get_total_volume(pair=k,
                                                    global_end=end,
                                                    days=volume_average_days,
                                                    forward=volume_forward))
        #generates a pd.DataFrame with coins, pairs, volumes, prices of all coins
        self._df = pd.DataFrame({
            'coin': coins,
            'pair': pairs,
            'volume': volumes,
            'price': prices
        })
        self._df = self._df.set_index('coin')
        print(self._df)
Exemple #4
0
def create_data(coin, coin_list, start, end, period):
    polo = Poloniex()
    chart = get_chart_until_success(polo=polo,
                                    pair=coin_list.at[coin, 'pair'],
                                    start=start,
                                    end=end,
                                    period=period)
    for c in chart:
        if c["date"] > 0:
            if c['weightedAverage'] == 0: c['weightedAverage'] = c['close']

            # NOTE here the USDT is in reversed order
            if 'reversed_' in coin:
                c['low'], c['high'], c[
                    'open'] = 1.0 / c['low'], 1.0 / c['high'], 1.0 / c['open']
                c['close'], c['weightedAverage'] = 1.0 / c['close'], 1.0 / c[
                    'weightedAverage']
    return chart
Exemple #5
0
    def __init__(self, end, volume_average_days=1, volume_forward=0):
        self._polo = Poloniex()
        # connect the internet to accees volumes
        vol = self._polo.marketVolume()
        ticker = self._polo.marketTicker()
        pairs = []
        coins = []
        volumes = []
        prices = []

        logging.info("select coin online from %s to %s" % (
            datetime.fromtimestamp(end - (DAY * volume_average_days) -
                                   volume_forward).strftime("%Y-%m-%d %H:%M"),
            datetime.fromtimestamp(end -
                                   volume_forward).strftime("%Y-%m-%d %H:%M"),
        ))
        for k, v in vol.items():
            if k.startswith("BTC_") or k.endswith("_BTC"):
                pairs.append(k)
                for c, val in v.items():
                    if c != "BTC":
                        if k.endswith("_BTC"):
                            coins.append("reversed_" + c)
                            prices.append(1.0 / float(ticker[k]["last"]))
                        else:
                            coins.append(c)
                            prices.append(float(ticker[k]["last"]))
                    else:
                        volumes.append(
                            self.__get_total_volume(
                                pair=k,
                                global_end=end,
                                days=volume_average_days,
                                forward=volume_forward,
                            ))
        self._df = pd.DataFrame({
            "coin": coins,
            "pair": pairs,
            "volume": volumes,
            "price": prices
        })
        self._df = self._df.set_index("coin")