diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-01-20 13:44:30 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-01-20 14:15:53 +0100 |
commit | 5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222 (patch) | |
tree | b44fffede07dfde6d832f533a877e156d4e0dc2d /market.py | |
parent | 089d5d9df3d9d93e3ce789be16ee6cdd99dc2b52 (diff) | |
download | Trader-5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222.tar.gz Trader-5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222.tar.zst Trader-5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222.zip |
Change integer to decimals
Diffstat (limited to 'market.py')
-rw-r--r-- | market.py | 51 |
1 files changed, 51 insertions, 0 deletions
@@ -1,5 +1,56 @@ | |||
1 | import ccxt | 1 | import ccxt |
2 | import decimal | ||
2 | 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 | ||
3 | market = ccxt.poloniex({ | 54 | market = ccxt.poloniex({ |
4 | "apiKey": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX", | 55 | "apiKey": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX", |
5 | "secret": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", | 56 | "secret": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", |