diff --git a/README.rst b/README.rst index 62a9ecc56..fb199b51c 100644 --- a/README.rst +++ b/README.rst @@ -15,7 +15,7 @@ Catalyst is an algorithmic trading library for crypto-assets written in Python. It allows trading strategies to be easily expressed and backtested against historical data (with daily and minute resolution), providing analytics and insights regarding a particular strategy's performance. Catalyst also supports -live-trading of crypto-assets starting with three exchanges (Bitfinex, Bittrex, +live-trading of crypto-assets starting with four exchanges (Binance, Bitfinex, Bittrex, and Poloniex) with more being added over time. Catalyst empowers users to share and curate data and build profitable, data-driven investment strategies. Please visit `catalystcrypto.io `_ to learn more about Catalyst. @@ -38,7 +38,7 @@ Overview provided. - Support for several of the top crypto-exchanges by trading volume: `Bitfinex `_, `Bittrex `_, - and `Poloniex `_. + `Poloniex `_ and `Binance `_. - Secure: You and only you have access to each exchange API keys for your accounts. - Input of historical pricing data of all crypto-assets by exchange, with daily and minute resolution. See diff --git a/catalyst/__main__.py b/catalyst/__main__.py index 846dfc061..055f0f190 100644 --- a/catalyst/__main__.py +++ b/catalyst/__main__.py @@ -586,7 +586,7 @@ def ingest_exchange(ctx, exchange_name, data_frequency, start, end, if exchange_name is None: ctx.fail("must specify an exchange name '-x'") - if exchange_name not in EXCHANGE_NAMES: + if not csv and exchange_name not in EXCHANGE_NAMES: ctx.fail( "ingest-exchange does not support {}, " "please choose exchange from: {}".format( diff --git a/catalyst/exchange/utils/bundle_utils.py b/catalyst/exchange/utils/bundle_utils.py index b65f17713..ba73bb8c5 100644 --- a/catalyst/exchange/utils/bundle_utils.py +++ b/catalyst/exchange/utils/bundle_utils.py @@ -17,7 +17,7 @@ from catalyst.data.bundles.core import download_without_progress from catalyst.exchange.utils.exchange_utils import get_exchange_bundles_folder -EXCHANGE_NAMES = ['bitfinex', 'bittrex', 'poloniex'] +EXCHANGE_NAMES = ['bitfinex', 'bittrex', 'poloniex', 'binance'] API_URL = 'http://data.enigma.co/api/v1' diff --git a/docs/source/beginner-tutorial.rst b/docs/source/beginner-tutorial.rst index 99444f0db..95e058841 100644 --- a/docs/source/beginner-tutorial.rst +++ b/docs/source/beginner-tutorial.rst @@ -241,9 +241,9 @@ the available options: is '-' the perf will be written to stdout. [default: -] --print-algo / --no-print-algo Print the algorithm to stdout. - -x, --exchange-name [poloniex|bitfinex|bittrex] + -x, --exchange-name [poloniex|bitfinex|bittrex|binance] The name of the targeted exchange - (supported: bitfinex, bittrex, poloniex). + (supported: binance, bitfinex, bittrex, poloniex). -n, --algo-namespace TEXT A label assigned to the algorithm for data storage purposes. -c, --quote-currency TEXT The quote currency used to calculate diff --git a/docs/source/features.rst b/docs/source/features.rst index 98922232a..876b62022 100644 --- a/docs/source/features.rst +++ b/docs/source/features.rst @@ -10,10 +10,10 @@ Current Functionality * Backtesting and live-trading modes to run your trading algorithms, with a seamless transition between the two. * Paper trading simulates order in live-trading mode. -* Support for 3 exchanges: Bitfinex, Bittrex and Poloniex in both modes +* Support for four exchanges: Binance, 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 + with daily resolution for all four exchanges, and minute resolution for + Binance, Bitfinex and Poloniex. No minute-resolution data is currently available for Bittrex. Refer to `Catalyst Market Coverage `_ for details. diff --git a/docs/source/live-trading.rst b/docs/source/live-trading.rst index 5d1f8b638..00cb79eb5 100644 --- a/docs/source/live-trading.rst +++ b/docs/source/live-trading.rst @@ -12,13 +12,13 @@ The most supported exchanges are as follows: The exchanges available for backtesting are fully supported in live mode: +- Binance, id = ``binance`` - Bitfinex, id = ``bitfinex`` - Bittrex, id = ``bittrex`` - Poloniex, id = ``poloniex`` -Additionally, we have successfully tested in live mode the following exchanges : +Additionally, we have successfully tested in live mode the following exchanges: -- Binance, id = ``binance`` - GDAX, id = ``gdax`` As Catalyst is currently in Alpha and in under active development, you are diff --git a/docs/source/releases.rst b/docs/source/releases.rst index a671f4df8..eb57ce790 100644 --- a/docs/source/releases.rst +++ b/docs/source/releases.rst @@ -2,6 +2,20 @@ Release Notes ============= +Version 0.5.15 +^^^^^^^^^^^^^^ +**Release Date**: 2018-07-02 + +Build +~~~~~ +- Add support for Binance historical data. + +Bug Fixes +~~~~~~~~~ +- Fixed a bug preventing ingestion from a csv if specifying an unsupported + exchange. +- Fixed issues with installing catalyst using pip. + Version 0.5.14 ^^^^^^^^^^^^^^ **Release Date**: 2018-06-21 diff --git a/etc/requirements.txt b/etc/requirements.txt index 03a7dedba..8cbaa5917 100644 --- a/etc/requirements.txt +++ b/etc/requirements.txt @@ -1,7 +1,7 @@ # Incompatible with earlier PIP versions pip>=7.1.0 # bcolz fails to install if this is not in the build_requires. -setuptools>36.0 +setuptools==38.5.1 # Logging Logbook==0.12.5 @@ -11,78 +11,80 @@ Logbook==0.12.5 pytz==2016.4 # FF: Upgraded numpy because of errors with version 1.11 -numpy==1.13.1 +numpy==1.14.0 # for pandas-datareader -requests-file==1.4.1 +requests-file==1.4.3 # scipy and pandas are required for statsmodels, # statsmodels in turn is required for some pandas packages -scipy==0.17.1 +scipy==1.0.0 pandas==0.19.2 -pandas-datareader==0.2.1 +pandas-datareader==0.6.0 # Needed for parts of pandas.stats -patsy==0.4.0 -statsmodels==0.6.1 +patsy==0.5.0 +statsmodels==0.8.0 -python-dateutil==2.4.2 -six==1.10.0 +python-dateutil==2.7.3 +six==1.11.0 # For fetching remote data -requests==2.9.1 +requests==2.18.4 -Cython==0.25.2 +Cython==0.27.3 # faster OrderedDict -cyordereddict==0.2.2 +cyordereddict==1.0.0 # faster array ops. -bottleneck==1.0.0 +bottleneck==1.2.1 -contextlib2==0.4.0 +contextlib2==0.5.5 # networkx requires decorator -decorator==4.0.0 +decorator==4.3.0 # Graph algorithms used by catalyst.pipeline -networkx==1.9.1 +networkx==2.1 # NumericalExpression pipeline terms. -numexpr==2.6.1 +numexpr==2.6.4 # On disk storage format for pipeline data. bcolz==1.2.1 # Command line interface helper -click==4.0.0 +click==6.7 # FUNctional programming utilities -toolz==0.8.2 -multipledispatch==0.4.8 +toolz==0.9.0 +multipledispatch==0.4.9 # for alembic -MarkupSafe==0.23 -Mako==1.0.1 +MarkupSafe==1.0 +Mako==1.0.7 # Asset writer and finder -sqlalchemy==1.0.8 +sqlalchemy==1.2.2 # For asset db management -alembic==0.7.7 +alembic==0.9.7 # for intervaltree -sortedcontainers==1.4.4 +sortedcontainers==1.5.9 intervaltree==2.1.0 # for caching -lru-dict==1.1.4 +lru-dict==1.1.6 # For financial risk calculations empyrical==0.2.1 -tables==3.3.0 +tables==3.4.2 + +certifi==2018.1.18 #Catalyst dependencies ccxt==1.12.131 -boto3==1.4.8 +boto3==1.5.27 redo==1.6 -web3==4.0.0b11; python_version > '3.4' +web3==4.2.1; python_version > '3.4' requests-toolbelt==0.8.0 diff --git a/setup.py b/setup.py index 9ff2d7873..3475e40d5 100644 --- a/setup.py +++ b/setup.py @@ -316,7 +316,8 @@ def setup_requirements(requirements_path, module_names, strict_bounds, 'Topic :: Scientific/Engineering :: Information Analysis', 'Topic :: System :: Distributed Computing', ], - install_requires=install_requires(conda_format=conda_build), + install_requires=install_requires(strict_bounds=True, + conda_format=conda_build), extras_require=extras_requires(conda_format=conda_build), **conditional_arguments )