aboutsummaryrefslogtreecommitdiff
path: root/market.py
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2018-01-20 13:44:30 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2018-01-20 14:15:53 +0100
commit5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222 (patch)
treeb44fffede07dfde6d832f533a877e156d4e0dc2d /market.py
parent089d5d9df3d9d93e3ce789be16ee6cdd99dc2b52 (diff)
downloadTrader-5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222.tar.gz
Trader-5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222.tar.zst
Trader-5ab23e1c86de4caf0a34b9b91e5b9eddb0efa222.zip
Change integer to decimals
Diffstat (limited to 'market.py')
-rw-r--r--market.py51
1 files changed, 51 insertions, 0 deletions
diff --git a/market.py b/market.py
index a34636e..63eff5a 100644
--- a/market.py
+++ b/market.py
@@ -1,5 +1,56 @@
1import ccxt 1import ccxt
2import decimal
2 3
4def exchange_sum(self, *args):
5 return sum([arg for arg in args if isinstance(arg, (float, int, decimal.Decimal))])
6ccxt.Exchange.sum = exchange_sum
7def 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)
26ccxt.poloniex.fetch_balance = poloniex_fetch_balance
27
28def 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 }
53ccxt.poloniex.parse_ticker = poloniex_parse_ticker
3market = ccxt.poloniex({ 54market = ccxt.poloniex({
4 "apiKey": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX", 55 "apiKey": "XXXXXXXX-XXXXXXXX-XXXXXXXX-XXXXXXXX",
5 "secret": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef", 56 "secret": "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef",