scrtlabs / catalyst

An Algorithmic Trading Library for Crypto-Assets in Python
http://enigma.co
Apache License 2.0
2.49k stars 724 forks source link

ImportError: cannot import name 'information_ratio' #533

Closed Industrial closed 5 years ago

Industrial commented 5 years ago

Dear Catalyst Maintainers,

Before I tell you about my issue, let me describe my environment:

Environment

# packages in environment at /home/tom/anaconda3/envs/catalyst:
#
# Name                    Version                   Build  Channel
aiodns                    1.1.1                    pypi_0    pypi
aiohttp                   3.0.1                    pypi_0    pypi
alembic                   0.9.7                    pypi_0    pypi
async-timeout             2.0.0                    pypi_0    pypi
attrdict                  2.0.0                    pypi_0    pypi
attrs                     17.4.0                   pypi_0    pypi
backcall                  0.1.0                      py_0    conda-forge
bcolz                     1.2.1                    pypi_0    pypi
blas                      1.1                    openblas    conda-forge
bleach                    3.1.0                    pypi_0    pypi
boto3                     1.5.27                   pypi_0    pypi
botocore                  1.8.41                   pypi_0    pypi
bottleneck                1.2.1                    pypi_0    pypi
ca-certificates           2017.08.26           h1d4fec5_0
cchardet                  2.1.1                    pypi_0    pypi
ccxt                      1.17.94                  pypi_0    pypi
certifi                   2018.1.18                py36_0    conda-forge
chardet                   3.0.4                    pypi_0    pypi
click                     6.7                      pypi_0    pypi
contextlib2               0.5.5                    pypi_0    pypi
cycler                    0.10.0                     py_1    conda-forge
cyordereddict             1.0.0                    pypi_0    pypi
cython                    0.27.3                   pypi_0    pypi
cytoolz                   0.9.0                    pypi_0    pypi
dbus                      1.13.0            h4e0c4b3_1000    conda-forge
decorator                 4.3.0                    pypi_0    pypi
docutils                  0.14                     pypi_0    pypi
empyrical                 0.5.0                    pypi_0    pypi
enigma-catalyst           0.5.21                   pypi_0    pypi
entrypoints               0.3                   py36_1000    conda-forge
eth-abi                   1.1.1                    pypi_0    pypi
eth-account               0.2.2                    pypi_0    pypi
eth-hash                  0.1.3                    pypi_0    pypi
eth-keyfile               0.5.1                    pypi_0    pypi
eth-keys                  0.2.0b3                  pypi_0    pypi
eth-rlp                   0.1.2                    pypi_0    pypi
eth-utils                 1.0.3                    pypi_0    pypi
expat                     2.2.5             hf484d3e_1002    conda-forge
fontconfig                2.13.0               hd36ec8e_5    conda-forge
freetype                  2.8.1                hfa320df_1    conda-forge
glib                      2.53.6               h5d9569c_2
gmp                       6.1.2             hf484d3e_1000    conda-forge
gst-plugins-base          1.12.4               h33fb286_0
gstreamer                 1.12.4               hb53b477_0
hexbytes                  0.1.0                    pypi_0    pypi
icu                       58.2              hf484d3e_1000    conda-forge
idna                      2.6                      pypi_0    pypi
idna-ssl                  1.0.0                    pypi_0    pypi
intel-openmp              2018.0.0                      8
intervaltree              2.1.0                    pypi_0    pypi
ipykernel                 5.1.0           py36h24bf2e0_1001    conda-forge
ipython                   6.4.0                    py36_0    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
ipywidgets                7.4.2                      py_0    conda-forge
jedi                      0.13.2                py36_1000    conda-forge
jinja2                    2.10                       py_1    conda-forge
jmespath                  0.9.3                    pypi_0    pypi
jpeg                      9c                h14c3975_1001    conda-forge
jsonschema                3.0.0a3               py36_1000    conda-forge
jupyter                   1.0.0                      py_1    conda-forge
jupyter-contrib-core      0.3.3                    pypi_0    pypi
jupyter-nbextensions-configurator 0.4.0                    pypi_0    pypi
jupyter_client            5.2.4                      py_1    conda-forge
jupyter_console           5.2.0                    py36_1    conda-forge
jupyter_core              4.4.0                      py_0    conda-forge
kiwisolver                1.0.1           py36h6bb024c_1002    conda-forge
libedit                   3.1.20170329      hf8c457e_1001    conda-forge
libffi                    3.2.1             hf484d3e_1005    conda-forge
libgcc-ng                 7.3.0                hdf63c60_0    conda-forge
libgfortran               3.0.0                         1    conda-forge
libiconv                  1.15              h14c3975_1004    conda-forge
libpng                    1.6.34               ha92aebf_2    conda-forge
libsodium                 1.0.16            h14c3975_1001    conda-forge
libstdcxx-ng              7.3.0                hdf63c60_0    conda-forge
libuuid                   2.32.1            h14c3975_1000    conda-forge
libxcb                    1.13              h14c3975_1002    conda-forge
libxml2                   2.9.8                h422b904_2    conda-forge
logbook                   1.2.1                    pypi_0    pypi
lru-dict                  1.1.6                    pypi_0    pypi
lxml                      4.1.1                    pypi_0    pypi
mako                      1.0.7                    pypi_0    pypi
markupsafe                1.0                      pypi_0    pypi
matplotlib                2.2.2                    py36_1    conda-forge
mistune                   0.8.4           py36h14c3975_1000    conda-forge
mkl                       2018.0.1             h19d6760_4
multidict                 4.1.0                    pypi_0    pypi
multipledispatch          0.4.9                    pypi_0    pypi
nbconvert                 5.3.1                      py_1    conda-forge
nbformat                  4.4.0                      py_1    conda-forge
ncurses                   6.1               hf484d3e_1002    conda-forge
networkx                  2.1                      pypi_0    pypi
notebook                  5.7.4                 py36_1000    conda-forge
numexpr                   2.6.4                    pypi_0    pypi
numpy                     1.14.0          py36_blas_openblas_200  [blas_openblas]  conda-forge
openblas                  0.2.20                        8    conda-forge
openssl                   1.0.2n                        0    conda-forge
pandas                    0.19.2                   pypi_0    pypi
pandas-datareader         0.6.0                    pypi_0    pypi
pandoc                    2.5                           1    conda-forge
pandocfilters             1.4.2                      py_1    conda-forge
parsimonious              0.8.0                    pypi_0    pypi
parso                     0.3.2                      py_0    conda-forge
patsy                     0.5.0                    pypi_0    pypi
pcre                      8.41              hf484d3e_1003    conda-forge
pexpect                   4.6.0                 py36_1000    conda-forge
pickleshare               0.7.5                 py36_1000    conda-forge
pip                       9.0.1                    py36_1    conda-forge
prometheus_client         0.5.0                      py_0    conda-forge
prompt_toolkit            1.0.15                     py_1    conda-forge
pthread-stubs             0.4               h14c3975_1001    conda-forge
ptyprocess                0.6.0                 py36_1000    conda-forge
pycares                   2.3.0                    pypi_0    pypi
pycryptodome              3.6.1                    pypi_0    pypi
pyfolio                   0.9.0                    pypi_0    pypi
pygments                  2.3.1                      py_0    conda-forge
pyparsing                 2.3.1                      py_0    conda-forge
pyqt                      5.6.0           py36h13b7fb3_1008    conda-forge
pyrsistent                0.14.9          py36h14c3975_1000    conda-forge
pysha3                    1.0.2                    pypi_0    pypi
python                    3.6.4                hc3d631a_3
python-dateutil           2.7.5                      py_0    conda-forge
python-editor             1.0.3                    pypi_0    pypi
pytz                      2016.4                   pypi_0    pypi
pyyaml                    3.13                     pypi_0    pypi
pyzmq                     17.1.2          py36h6afc9c9_1001    conda-forge
qt                        5.6.2               hd25b39d_14
qtconsole                 4.4.3                      py_0    conda-forge
readline                  7.0               hf8c457e_1001    conda-forge
redo                      2.0.1                    pypi_0    pypi
requests                  2.20.1                   pypi_0    pypi
requests-file             1.4.3                    pypi_0    pypi
requests-ftp              0.3.1                    pypi_0    pypi
requests-toolbelt         0.8.0                    pypi_0    pypi
rlp                       0.6.0                    pypi_0    pypi
s3transfer                0.1.12                   pypi_0    pypi
scikit-learn              0.20.2                   pypi_0    pypi
scipy                     1.0.0           py36_blas_openblas_201  [blas_openblas]  conda-forge
seaborn                   0.9.0                    pypi_0    pypi
send2trash                1.5.0                      py_0    conda-forge
setuptools                40.7.1                   pypi_0    pypi
simplegeneric             0.8.1                      py_1    conda-forge
sip                       4.18.1          py36hf484d3e_1000    conda-forge
six                       1.12.0                py36_1000    conda-forge
sortedcontainers          1.5.9                    pypi_0    pypi
sqlalchemy                1.2.2                    pypi_0    pypi
sqlite                    3.22.0               h1bed415_0
statsmodels               0.8.0                    pypi_0    pypi
tables                    3.4.2                    pypi_0    pypi
terminado                 0.8.1                 py36_1001    conda-forge
testpath                  0.4.2                 py36_1000    conda-forge
tk                        8.6.7                         0    conda-forge
toolz                     0.9.0                    pypi_0    pypi
tornado                   5.1.1           py36h14c3975_1000    conda-forge
traitlets                 4.3.2                 py36_1000    conda-forge
urllib3                   1.22                     pypi_0    pypi
virtualenv                15.2.0                   pypi_0    pypi
wcwidth                   0.1.7                      py_1    conda-forge
web3                      4.4.1                    pypi_0    pypi
webencodings              0.5.1                      py_1    conda-forge
websockets                5.0                      pypi_0    pypi
wheel                     0.30.0                   py36_2    conda-forge
widgetsnbextension        3.4.2                 py36_1000    conda-forge
wrapt                     1.10.11                  pypi_0    pypi
xorg-libxau               1.0.8             h14c3975_1006    conda-forge
xorg-libxdmcp             1.1.2             h14c3975_1007    conda-forge
xz                        5.2.3                         0    conda-forge
yarl                      1.1.0                    pypi_0    pypi
zeromq                    4.2.5             hf484d3e_1006    conda-forge
zlib                      1.2.11            h14c3975_1004    conda-forge

Now that you know a little about me, let me tell you about the issue I am having:

Description of Issue

Traceback (most recent call last):
  File "first_algorithm.py", line 4, in <module>
    from catalyst.utils.run_algo import run_algorithm
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/__init__.py", line 25, in <module>
    from .utils.run_algo import run_algorithm
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/utils/run_algo.py", line 16, in <module>
    from catalyst.exchange.exchange_pricing_loader import ExchangePricingLoader, \
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/exchange_pricing_loader.py", line 17, in <module>
    from catalyst.exchange.utils.factory import get_exchange
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/utils/factory.py", line 4, in <module>
    from catalyst.exchange.ccxt.ccxt_exchange import CCXT
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/exchange/ccxt/ccxt_exchange.py", line 15, in <module>
    from catalyst.algorithm import MarketOrder
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/algorithm.py", line 80, in <module>
    from catalyst.finance.performance import PerformanceTracker
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/finance/performance/__init__.py", line 16, in <module>
    from . tracker import PerformanceTracker
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/finance/performance/tracker.py", line 69, in <module>
    import catalyst.finance.risk as risk
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/finance/risk/__init__.py", line 16, in <module>
    from . report import RiskReport
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/finance/risk/report.py", line 64, in <module>
    from . period import RiskMetricsPeriod
  File "/home/tom/anaconda3/envs/catalyst/lib/python3.6/site-packages/catalyst/finance/risk/period.py", line 29, in <module>
    from empyrical import (
ImportError: cannot import name 'information_ratio'

Here is how you can reproduce this issue on your machine:

Reproduction Steps

  1. Install Catalyst with Conda, 3.6 version
  2. pip install pyplot (It was not available with conda)
  3. This. ...

What steps have you taken to resolve this already?

Not sure what to do.

Anything else?

Nothing

Sincerely, Tom

Industrial commented 5 years ago

This code is here: It's a failing EMA Cross algorithm.

https://gist.github.com/Industrial/14eb3de59786a25cf6dbfbf428acd38f

Industrial commented 5 years ago

I have found that the problem is with pip install pyfolio, and trying to add that to my setup.