]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blob - market.py
Change integer to decimals
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / market.py
1 import ccxt
2 import decimal
3
4 def exchange_sum(self, *args):
5 return sum([arg for arg in args if isinstance(arg, (float, int, decimal.Decimal))])
6 ccxt.Exchange.sum = exchange_sum
7 def poloniex_fetch_balance(self, params={}):
8 self.load_markets()
9 balances = self.privatePostReturnCompleteBalances(self.extend({
10 'account': 'all',
11 }, params))
12 result = {'info': balances}
13 currencies = list(balances.keys())
14 for c in range(0, len(currencies)):
15 id = currencies[c]
16 balance = balances[id]
17 currency = self.common_currency_code(id)
18 account = {
19 'free': decimal.Decimal(balance['available']),
20 'used': decimal.Decimal(balance['onOrders']),
21 'total': decimal.Decimal(0.0),
22 }
23 account['total'] = self.sum(account['free'], account['used'])
24 result[currency] = account
25 return self.parse_balance(result)
26 ccxt.poloniex.fetch_balance = poloniex_fetch_balance
27
28 def poloniex_parse_ticker(self, ticker, market=None):
29 timestamp = self.milliseconds()
30 symbol = None
31 if market:
32 symbol = market['symbol']
33 return {
34 'symbol': symbol,
35 'timestamp': timestamp,
36 'datetime': self.iso8601(timestamp),
37 'high': decimal.Decimal(ticker['high24hr']),
38 'low': decimal.Decimal(ticker['low24hr']),
39 'bid': decimal.Decimal(ticker['highestBid']),
40 'ask': decimal.Decimal(ticker['lowestAsk']),
41 'vwap': None,
42 'open': None,
43 'close': None,
44 'first': None,
45 'last': decimal.Decimal(ticker['last']),
46 'change': decimal.Decimal(ticker['percentChange']),
47 'percentage': None,
48 'average': None,
49 'baseVolume': decimal.Decimal(ticker['quoteVolume']),
50 'quoteVolume': decimal.Decimal(ticker['baseVolume']),
51 'info': ticker,
52 }
53 ccxt.poloniex.parse_ticker = poloniex_parse_ticker
54 market = ccxt.poloniex({
55 "apiKey": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX",
56 "secret": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",
57 })