Skip to content

Commit 41af0fa

Browse files
committed
Changes to allow exclusion of some market pairs
1 parent 840aab6 commit 41af0fa

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

app/exchange.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ def __init__(self, exchange_config):
2626
self.exchanges = dict()
2727
self.base_markets = dict()
2828
self.top_pairs = None
29+
self.exclude = []
2930

3031
# Loads the exchanges using ccxt.
3132
for exchange in exchange_config:
@@ -45,6 +46,9 @@ def __init__(self, exchange_config):
4546

4647
if 'top_pairs' in exchange_config[exchange]:
4748
self.top_pairs = exchange_config[exchange]['top_pairs']
49+
50+
if 'exclude' in exchange_config[exchange]:
51+
self.exclude = exchange_config[exchange]['exclude']
4852
else:
4953
self.logger.error("Unable to load exchange %s", new_exchange)
5054

@@ -131,12 +135,16 @@ def get_top_markets(self, exchange, base_markets):
131135
tickers = self.exchanges[exchange].fetch_tickers()
132136

133137
for base_market in base_markets:
138+
if len(self.exclude) > 0 :
139+
for pair_to_exclude in self.exclude:
140+
tickers.pop(pair_to_exclude + '/' + base_market, None)
141+
134142
values = [ (k, int(v['quoteVolume'])) for k,v in tickers.items() if k.endswith(base_market) ]
135143

136144
values = np.array(values, dtype=[('market', 'U10'), ('volume', int)])
137145
values = np.sort(values, order='volume')
138146

139-
if (len (values) > self.top_pairs):
147+
if isinstance(self.exclude, list) and len(self.exclude) > 0:
140148
limit = -self.top_pairs
141149
values = values[limit:]['market'].tolist()
142150
else:
@@ -193,6 +201,11 @@ def get_exchange_markets(self, exchanges=[], markets=[]):
193201
exchange_markets[exchange] = { key: curr_markets[key] for key in curr_markets
194202
if curr_markets[key]['quote'] in self.base_markets[exchange] }
195203

204+
if isinstance(self.exclude, list) and len(self.exclude) > 0:
205+
for base_market in self.base_markets[exchange]:
206+
for pair_to_exclude in self.exclude:
207+
exchange_markets[exchange].pop(pair_to_exclude + '/' + base_market, None)
208+
196209

197210
time.sleep(self.exchanges[exchange].rateLimit / 1000)
198211

0 commit comments

Comments
 (0)