Open sam31415 opened 6 years ago
Hi @sam31415 , I have tried to replicate your issue but wasn't successful. Could you please share more information about your use case. I guess that you were not trying to trade the new added bat_btc
as its trading is not yet supported. Thanks
Hi @EmbarAlmog . Thanks for trying to reproduce it. I can't reproduce it either. It happened while the algorithm was running, when the bat_btc pair got added.
My wild guess is that Catalyst fetched a list of pairs from Poloniex, among which the new bat_btc pair was present, but for some reason this pair was not present in the list "market_by_id", which should be the member of some class in ccxt/poloniex.py, according to the trackback. So the issue probably involves CCXT.
Actually I forgot to answer your question. No, I was not trying to trade bat_btc. As mentioned, this error arose in a part of the code that did not involve my algorithm.
Thanks for the update. I am closing this, please reopen if this issue arises again. Thanks
I don't see a reason for closing this issue.
Here you are. Poloniex added some USDT pairs and Catalyst crashed. Please reopen the issue, I can't.
Traceback (most recent call last):
File "algo.py", line 1109, in <module>
simulate_orders=PAPER_TRADE,
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/utils/run_algo.py", lin
e 596, in run_algorithm
stats_output=stats_output
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/utils/run_algo.py", lin
e 358, in _run
overwrite_sim_params=False,
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/exchange_algor
ithm.py", line 1051, in run
data, overwrite_sim_params
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/exchange_algor
ithm.py", line 359, in run
data, overwrite_sim_params
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/algorithm.py", line 725
, in run
for perf in self.get_generator():
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/gens/tradesimulation.py
", line 224, in transform
for capital_change_packet in every_bar(dt):
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/gens/tradesimulation.py
", line 137, in every_bar
handle_data(algo, current_data, dt_to_use)
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/utils/events.py", line
216, in handle_data
dt,
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/utils/events.py", line
235, in handle_data
self.callback(context, data)
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/exchange_algor
ithm.py", line 895, in handle_data
cleanup=lambda: log.warn('Syncing portfolio again.')
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/redo/__init__.py", line 162, in
retry
return action(*args, **kwargs)
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/exchange_algor
ithm.py", line 718, in synchronize_portfolio
cash=required_cash,
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/exchange.py",
line 739, in sync_positions
tickers = self.tickers(assets)
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/ccxt/ccxt_exch
ange.py", line 1245, in tickers
results = self.api.fetch_tickers(symbols=symbols)
File "/home/user/miniconda3/envs/catalyst/lib/python3.6/site-packages/ccxt/poloniex.py", line 309, in
fetch_tickers
market = self.markets_by_id[id]
KeyError: 'USDT_DOGE'
Thanks for reporting @sam31415 . It's a hard one in terms of reproduction, we will continue investigating.
Thanks for reopening. I think that in order to reproduce it, all you need to do is have an algorithm running live on Poloniex (not even necessarily trading), and wait for Poloniex to add some new pair. As I mentioned, this error arises before the user-defined functions are called, so it should be completely independent of which algorithm you are running.
It looks like Catalyst gets information about the traded pairs from two different sources, and for a short time after Poloniex added new pairs, these two sources do not agree for some reason, what creates the crash.
Hi,
I'm using Catalyst 0.5.17. My algorithm crashed with the following traceback:
Note that this only involves code from Catalyst and its dependencies, not my own code. The crash seems to be due to the introduction of the bat_btc trading pair on Poloniex. A mechanism to deal with new pairs and avoid crashing the algos in such situations would be useful.
Best,
Samuel