+ +
+

Features

+

This page describes the features that Catalyst provides in the current version, +and what is planned for future releases.

+
+

Current Functionality

+
    +
  • Backtesting and live-trading modes to run your trading algorithms, with a +seamless transition between the two.
  • +
  • Support for 3 exchanges: Bitfinex, Bittrex and Poloniex in both modes +(backtesting and live-trading). Historical data for backtesting is provided +with daily resolution for all three exchanges, and minute resolution for +Bitfinex and Poloniex. No minute-resolution data is currently available for +Bittrex. Refer to +Catalyst Market Coverage for +details.
  • +
  • Standardized naming convention for all asset pairs trading on any exchange in +the form {market_currency}_{base_currency}. See +Naming Convention.
  • +
  • Output of performance statistics based on Pandas DataFrames to integrate +nicely into the existing PyData ecosystem.
  • +
  • Support for accessing multiple exchanges per algorithm, which opens the door +to cross-exchange arbitrage opportunities.
  • +
  • Support for running multiple algorithms on the same exchange independently of +one another. Catalyst performance tracker stores just enough data to allow +algorithms to run independently while still sharing critical data through +exchanges.
  • +
  • Benchmark defaults to Bitcoin price (btc_usdt in Poloniex exchange) for the +purpose of comparing performance across trading algorithms. A custom benchmark +can be specified through set_benchmark() (but see +issue #86).
  • +
  • Support for MacOS, Linux and Windows installations.
  • +
  • Support for Python2 and Python3.
  • +
+
+
+

Upcoming features

+
    +
  • Paper trading mode (v0.4 - mid Dec. 2017)
  • +
  • Support for additional exchanges (v0.4 - mid Dec. 2017)
  • +
  • Additional datasets beyond pricing data (Dec. 2017)
  • +
  • API documentation (Jan. 2017)
  • +
  • Support for decentralized exchanges (Jan. 2017)
  • +
  • Support for data ingestion of community-contributed data sets (Jan. 2017)
  • +
  • Pipeline support (Jan. 2018)
  • +
  • Web UI (Q2 2018)
  • +
+
+
+
+
+

Naming Convention

+

Catalyst introduces a standardized naming convention for all asset pairs +trading on any exchange in the following form:

+
+
{market_currency}_{base_currency}
+

Where {market_currency} is the asset to be traded using {base_currency} as +the reference, both written in lowercase and separated with an underscore.

+

This standardization is needed to overcome the lack of consistency in the +naming of assets across different exchanges, and making it easier to the user +to refer to the asset pairs that you want to trade.

+

Catalyst maintains a Market Coverage Overview +where you can check the mapping between Catalyst naming pairs and that of each +exchange. Catalyst will always expect in all its functions that you will refer to +the asset pairs by using the Catalyst naming convention.

+

If at any point, you input the wrong name for an asset pair, you will get an error +of that pair not found in the given exchange, and a list of pairs available on that exchange:

+
$ catalyst ingest-exchange -x poloniex -i btc_usd
+
+
+
Ingesting exchange bundle poloniex...
+Error traceback: /Volumes/Data/Users/victoris/Desktop/Enigma/user-install/catalyst-dev/catalyst/exchange/exchange.py (line 175)
+SymbolNotFoundOnExchange:  Symbol btc_usd not found on exchange Poloniex.
+Choose from: ['rep_usdt', 'gno_btc', 'xvc_btc', 'pink_btc', 'sys_btc',
+'emc2_btc', 'rads_btc', 'note_btc', 'maid_btc', 'bch_btc', 'gnt_btc',
+'bcn_btc', 'rep_btc', 'bcy_btc', 'cvc_btc', 'nxt_xmr', 'zec_usdt',
+'fct_btc', 'gas_btc', 'pot_btc', 'eth_usdt', 'btc_usdt', 'lbc_btc',
+'dcr_btc', 'etc_usdt', 'omg_eth', 'amp_btc', 'xpm_btc', 'nxt_btc',
+'vtc_btc', 'steem_eth', 'blk_xmr', 'pasc_btc', 'zec_xmr', 'grc_btc',
+'nxc_btc', 'btcd_btc', 'ltc_btc', 'dash_btc', 'naut_btc', 'zec_eth',
+'zec_btc', 'burst_btc', 'zrx_eth', 'bela_btc', 'steem_btc', 'etc_btc',
+'eth_btc', 'huc_btc', 'strat_btc', 'lsk_btc', 'exp_btc', 'clam_btc',
+'rep_eth', 'dash_xmr', 'cvc_eth', 'bch_usdt', 'zrx_btc', 'dash_usdt',
+'blk_btc', 'xrp_btc', 'nxt_usdt', 'neos_btc', 'omg_btc', 'bts_btc',
+'doge_btc', 'gnt_eth', 'sbd_btc', 'gno_eth', 'xcp_btc', 'ltc_usdt',
+'btm_btc', 'xmr_usdt', 'lsk_eth', 'omni_btc', 'nav_btc', 'fldc_btc',
+'ppc_btc', 'xbc_btc', 'dgb_btc', 'sc_btc', 'btcd_xmr', 'vrc_btc',
+'ric_btc', 'str_btc', 'maid_xmr', 'xmr_btc', 'sjcx_btc', 'via_btc',
+'xem_btc', 'nmc_btc', 'etc_eth', 'ltc_xmr', 'ardr_btc', 'gas_eth',
+'flo_btc', 'xrp_usdt', 'game_btc', 'bch_eth', 'bcn_xmr', 'str_usdt']
+
+
+

In the example above, exchange Poloniex does not use USD, but uses instead the +USDT cryptocurrency asset that is issued on the Bitcoin blockchain via the Omni +Layer Protocol. Each USDT unit is backed by a U.S Dollar held in the reserves of +Tether Limited. USDT can be transferred, stored, and spent, just like bitcoins +or any other cryptocurrency. Given its 1:1 mapping to the USD, is a viable alternative.

+
$ catalyst ingest-exchange -x poloniex -i btc_usdt
+
+
+
Ingesting exchange bundle poloniex...
+    [====================================]  Fetching poloniex daily candles: :  100%
+
+
+
+
+ + +