X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=market.py;h=63eff5a87ea089c6043964a72e7af1257422ebe9;hb=5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222;hp=a34636eab42aeefcb8e62311e33840a2ae4dee4b;hpb=089d5d9df3d9d93e3ce789be16ee6cdd99dc2b52;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/market.py b/market.py index a34636e..63eff5a 100644 --- a/market.py +++ b/market.py @@ -1,5 +1,56 @@ import ccxt +import decimal +def exchange_sum(self, *args): + return sum([arg for arg in args if isinstance(arg, (float, int, decimal.Decimal))]) +ccxt.Exchange.sum = exchange_sum +def poloniex_fetch_balance(self, params={}): + self.load_markets() + balances = self.privatePostReturnCompleteBalances(self.extend({ + 'account': 'all', + }, params)) + result = {'info': balances} + currencies = list(balances.keys()) + for c in range(0, len(currencies)): + id = currencies[c] + balance = balances[id] + currency = self.common_currency_code(id) + account = { + 'free': decimal.Decimal(balance['available']), + 'used': decimal.Decimal(balance['onOrders']), + 'total': decimal.Decimal(0.0), + } + account['total'] = self.sum(account['free'], account['used']) + result[currency] = account + return self.parse_balance(result) +ccxt.poloniex.fetch_balance = poloniex_fetch_balance + +def poloniex_parse_ticker(self, ticker, market=None): + timestamp = self.milliseconds() + symbol = None + if market: + symbol = market['symbol'] + return { + 'symbol': symbol, + 'timestamp': timestamp, + 'datetime': self.iso8601(timestamp), + 'high': decimal.Decimal(ticker['high24hr']), + 'low': decimal.Decimal(ticker['low24hr']), + 'bid': decimal.Decimal(ticker['highestBid']), + 'ask': decimal.Decimal(ticker['lowestAsk']), + 'vwap': None, + 'open': None, + 'close': None, + 'first': None, + 'last': decimal.Decimal(ticker['last']), + 'change': decimal.Decimal(ticker['percentChange']), + 'percentage': None, + 'average': None, + 'baseVolume': decimal.Decimal(ticker['quoteVolume']), + 'quoteVolume': decimal.Decimal(ticker['baseVolume']), + 'info': ticker, + } +ccxt.poloniex.parse_ticker = poloniex_parse_ticker market = ccxt.poloniex({ "apiKey": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX", "secret": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",