Binance API returns pairs that are not recognized by Catalyst


#1

I use Binance’s API directly to get all the tradeable pairs, using the trick described here:


However, sometimes I get an error like the one below, saying that a pair returned by the Binance API is not found by Catalyst.

Note that a few days ago I got similar errors with zil_btc and storm_btc, which now appear in the list of tradeable pairs below.

Traceback (most recent call last):
  File "XXX.py", line 436, in <module>
    output='XXX.txt'
  File "XXX\catalyst\utils\run_algo.py", line 549, in run_algorithm
    stats_output=stats_output
  File "XXX\catalyst\utils\run_algo.py", line 331, in _run
    overwrite_sim_params=False,
  File "XXX\catalyst\exchange\exchange_algorithm.py", line 309, in ru
n
    data, overwrite_sim_params
  File "XXX\catalyst\algorithm.py", line 724, in run
    for perf in self.get_generator():
  File "XXX\catalyst\gens\tradesimulation.py", line 224, in transform

    for capital_change_packet in every_bar(dt):
  File "XXX\catalyst\gens\tradesimulation.py", line 137, in every_bar

    handle_data(algo, current_data, dt_to_use)
  File "XXX\catalyst\utils\events.py", line 216, in handle_data
    dt,
  File "XXX\catalyst\utils\events.py", line 235, in handle_data
    self.callback(context, data)
  File "XXX\catalyst\exchange\exchange_algorithm.py", line 761, in ha
ndle_data
    self._handle_data(self, data)
  File "XXX.py", line 107, in handle_data
    c.coins = get_universe(context, data, MIN_VOLUME)
  File "XXX.py", line 404, in get_universe
    coins = symbols(*df.symbol)
  File "XXX\catalyst\utils\api_support.py", line 57, in wrapped
    return getattr(algo_instance, f.__name__)(*args, **kwargs)
  File "XXX\catalyst\algorithm.py", line 1295, in symbols
    return [self.symbol(identifier) for identifier in args]
  File "XXX\catalyst\exchange\exchange_algorithm.py", line 185, in sy
mbol
    """Lookup an Equity by its ticker symbol.
  File "XXX\catalyst\exchange\exchange_algorithm.py", line 227, in sy
mbol
    as_of_date=_lookup_date
  File XXX\catalyst\exchange\exchange_asset_finder.py", line 116, in
 lookup_symbol
    return exchange.get_asset(symbol, data_frequency)
  File "XXX\catalyst\exchange\exchange.py", line 287, in get_asset
    supported_symbols=supported_symbols
catalyst.exchange.exchange_errors.SymbolNotFoundOnExchange: Symbol XEM_BTC not found on exchange Binance. Choose from: [
'ada_btc', 'ada_eth', 'adx_bnb', 'adx_btc', 'adx_eth', 'ae_bnb', 'ae_btc', 'ae_eth', 'aion_bnb', 'aion_btc', 'aion_eth',
 'amb_bnb', 'amb_btc', 'amb_eth', 'appc_bnb', 'appc_btc', 'appc_eth', 'ark_btc', 'ark_eth', 'arn_btc', 'arn_eth', 'ast_b
tc', 'ast_eth', 'bat_bnb', 'bat_btc', 'bat_eth', 'bcd_btc', 'bcd_eth', 'bch_bnb', 'bch_btc', 'bch_eth', 'bch_usdt', 'bcp
t_bnb', 'bcpt_btc', 'bcpt_eth', 'blz_bnb', 'blz_btc', 'blz_eth', 'bnb_btc', 'bnb_eth', 'bnb_usdt', 'bnt_btc', 'bnt_eth',
 'bqx_btc', 'bqx_eth', 'brd_bnb', 'brd_btc', 'brd_eth', 'btc_usdt', 'btg_btc', 'btg_eth', 'bts_bnb', 'bts_btc', 'bts_eth
', 'cdt_btc', 'cdt_eth', 'chat_btc', 'chat_eth', 'cmt_bnb', 'cmt_btc', 'cmt_eth', 'cnd_bnb', 'cnd_btc', 'cnd_eth', 'ctr_
btc', 'ctr_eth', 'dash_btc', 'dash_eth', 'dgd_btc', 'dgd_eth', 'dlt_bnb', 'dlt_btc', 'dlt_eth', 'dnt_btc', 'dnt_eth', 'e
do_btc', 'edo_eth', 'elf_btc', 'elf_eth', 'eng_btc', 'eng_eth', 'enj_btc', 'enj_eth', 'eos_btc', 'eos_eth', 'etc_btc', '
etc_eth', 'eth_btc', 'eth_usdt', 'evx_btc', 'evx_eth', 'fuel_btc', 'fuel_eth', 'fun_btc', 'fun_eth', 'gas_btc', 'gto_bnb
', 'gto_btc', 'gto_eth', 'gvt_btc', 'gvt_eth', 'gxs_btc', 'gxs_eth', 'hsr_btc', 'hsr_eth', 'icn_btc', 'icn_eth', 'icx_bn
b', 'icx_btc', 'icx_eth', 'ins_btc', 'ins_eth', 'iost_btc', 'iost_eth', 'iota_bnb', 'iota_btc', 'iota_eth', 'kmd_btc', '
kmd_eth', 'knc_btc', 'knc_eth', 'lend_btc', 'lend_eth', 'link_btc', 'link_eth', 'lrc_btc', 'lrc_eth', 'lsk_bnb', 'lsk_bt
c', 'lsk_eth', 'ltc_bnb', 'ltc_btc', 'ltc_eth', 'ltc_usdt', 'lun_btc', 'lun_eth', 'mana_btc', 'mana_eth', 'mco_bnb', 'mc
o_btc', 'mco_eth', 'mda_btc', 'mda_eth', 'mod_btc', 'mod_eth', 'mth_btc', 'mth_eth', 'mtl_btc', 'mtl_eth', 'nano_bnb', '
nano_btc', 'nano_eth', 'nav_bnb', 'nav_btc', 'nav_eth', 'ncash_bnb', 'ncash_btc', 'ncash_eth', 'nebl_bnb', 'nebl_btc', '
nebl_eth', 'neo_bnb', 'neo_btc', 'neo_eth', 'neo_usdt', 'nuls_bnb', 'nuls_btc', 'nuls_eth', 'oax_btc', 'oax_eth', 'omg_b
tc', 'omg_eth', 'ont_bnb', 'ont_btc', 'ont_eth', 'ost_bnb', 'ost_btc', 'ost_eth', 'pivx_bnb', 'pivx_btc', 'pivx_eth', 'p
oa_bnb', 'poa_btc', 'poa_eth', 'poe_btc', 'poe_eth', 'powr_bnb', 'powr_btc', 'powr_eth', 'ppt_btc', 'ppt_eth', 'qsp_bnb'
, 'qsp_btc', 'qsp_eth', 'qtum_btc', 'qtum_eth', 'rcn_bnb', 'rcn_btc', 'rcn_eth', 'rdn_bnb', 'rdn_btc', 'rdn_eth', 'req_b
tc', 'req_eth', 'rlc_bnb', 'rlc_btc', 'rlc_eth', 'rpx_bnb', 'rpx_btc', 'rpx_eth', 'salt_btc', 'salt_eth', 'sngls_btc', '
sngls_eth', 'snm_btc', 'snm_eth', 'snt_btc', 'snt_eth', 'steem_bnb', 'steem_btc', 'steem_eth', 'storj_btc', 'storj_eth',
 'storm_bnb', 'storm_btc', 'storm_eth', 'strat_btc', 'strat_eth', 'sub_btc', 'sub_eth', 'tnb_btc', 'tnb_eth', 'tnt_btc',
 'tnt_eth', 'trig_bnb', 'trig_btc', 'trig_eth', 'trx_btc', 'trx_eth', 'ven_bnb', 'ven_btc', 'ven_eth', 'via_bnb', 'via_b
tc', 'via_eth', 'vib_btc', 'vib_eth', 'vibe_btc', 'vibe_eth', 'wabi_bnb', 'wabi_btc', 'wabi_eth', 'waves_bnb', 'waves_bt
c', 'waves_eth', 'wings_btc', 'wings_eth', 'wtc_bnb', 'wtc_btc', 'wtc_eth', 'xlm_bnb', 'xlm_btc', 'xlm_eth', 'xmr_btc',
'xmr_eth', 'xrp_btc', 'xrp_eth', 'xvg_btc', 'xvg_eth', 'xzc_bnb', 'xzc_btc', 'xzc_eth', 'yoyo_bnb', 'yoyo_btc', 'yoyo_et
h', 'zec_btc', 'zec_eth', 'zil_bnb', 'zil_btc', 'zil_eth', 'zrx_btc', 'zrx_eth']

#2

Hi,
Sorry on the late response.
We currently don’t hold historical data for Binance (therefore, returning an empty dict). We are working very hard on supporting it in the very near future.


#3

Thanks for the answer. I know get_exchange_symbols returns an empty dictionary, this is not the problem. I use the Binance API directly to fetch the symbols. The problem is that some pairs returned by the Binance API are not listed as supported symbols in Catalyst. Maybe those are newly listed pairs, idk.


#4

Once we will fully support Binance, it will be possible to make sure such issues won’t occur.
what are your intentions by fetching those symbols? it will be easier to debug this issue, if we understand the full picture.


#5

I fetch the symbols to build a universe of tradeable pairs, just like in the example in the doc:
https://enigma.co/catalyst/example-algos.html#simple-universe
But sure, i understand Binance is not officially supported yet.