Back to Community
Question on Zipline and Pandas Data Reader When Attempting to RunAlgo Through Python Spyder Notebook

Hello,

I have run into an error that I have spent countless hours on with no luck; hoping maybe someone can help me out.

Specifically, I am attempting to run the following simply algo from my Python Spyders Notebook that has an IPython console for debugging:

import pandas as pd  
from pandas_datareader import data, wb

from zipline.api import (  
    add_history,  
    history,  
    order_target,  
    record,  
    symbol,  
)


def initialize(context):

    # Register 2 histories that track daily prices,  
    # one with a 100 window and one with a 300 day window  
    add_history(100, '1d', 'price')  
    add_history(300, '1d', 'price')  
    context.i = 0

def handle_data(context, data):

    # Skip first 300 days to get full windows  
    context.i += 1  
    if context.i < 300:  
        return  
     # Compute averages  
    # history() has to be called with the same params  
    # from above and returns a pandas dataframe.  
    short_mavg = history(100, '1d', 'price').mean()  
    long_mavg = history(300, '1d', 'price').mean()  
    sym = symbol('AAPL')  
      # Trading logic

    if short_mavg[sym] > long_mavg[sym]:  
        # order_target orders as many shares as needed to  
        # achieve the desired number of shares.  
      order_target(sym, 100)  
    elif short_mavg[sym] < long_mavg[sym]:  
        order_target(sym, 0)  
    # Save values for later inspection  
    record(AAPL=data[sym].price,  
           short_mavg=short_mavg[sym],  
           long_mavg=long_mavg[sym])

Based on documentation from: http://pythonhackers.com/p/quantopian/zipline

It says I can run this algo by going to my command line and running:

python run_algo.py -f dual_moving_average.py --symbols AAPL --start 2011-1-1 --end 2012-1-1 -o dma.pickle

My issues is, I have already installed pandas data reader, however I keep getting this error when attempting to run the algo:

ImportError: The pandas.io.data module is moved to a separate package (pandas-datareader). After installing the pandas-datareader package (https://github.com/pandas-dev/pandas-datareader), you can change the import from pandas.io import data, wb to from pandas_datareader import data, wb.

Any idea what could be going on? I have installed pandas data reader already, and I am importing it with my initial commands at the top of the code (just as I have done for previous algos when coding in Python (but not using zipline though). Thanks in advance.

Sam Khorsand

Sam

7 responses

Hi Sam,

It looks like the documentation found on the link you posted is using deprecate API calls for zipline. You should refer to the zipline repo on GitHub, which has a sample algo. I'm also working on this PR which has a more up-to-date example of the dual moving average algo.

Disclaimer

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.

Hi Freddie,

Thanks so much for the response. I am attempting to install zipline 1.1.0 which supports pandas 0.18 off my Anaconda Command line. But, keep getting this error:

PackageNotFoundError: Package not found: '' Package missing in current win-32 channels:
- zipline 1.1.0*

Any idea what I need to do to get it installed correctly?

I also tried, conda install -c Quantopian zipline

but when I do that, I get this error:

UnsatisfiableError: The following specifications were found to be in conflict:
- bottleneck
- zipline
Use "conda info " to see the dependencies for each package.

Thanks in advance. Just want to get this setup so I can start coding in my Spyder Notebook with Zipline!

Sam Khorsand

Hi Sam,

Looks like you've got the 32-bit version of conda installed, but for some time now, we've only been building zipline packages for the 64-bit version. So you'll need to use win-64 conda to get the latest zipline. Sorry for the trouble.

-Rich

Disclaimer

The material on this website is provided for informational purposes only and does not constitute an offer to sell, a solicitation to buy, or a recommendation or endorsement for any security or strategy, nor does it constitute an offer to provide investment advisory services by Quantopian. In addition, the material offers no opinion with respect to the suitability of any security or specific investment. No information contained herein should be regarded as a suggestion to engage in or refrain from any investment-related course of action as none of Quantopian nor any of its affiliates is undertaking to provide investment advice, act as an adviser to any plan or entity subject to the Employee Retirement Income Security Act of 1974, as amended, individual retirement account or individual retirement annuity, or give advice in a fiduciary capacity with respect to the materials presented herein. If you are an individual retirement or other investor, contact your financial advisor or other fiduciary unrelated to Quantopian about whether any given investment idea, strategy, product or service described herein may be appropriate for your circumstances. All investments involve risk, including loss of principal. Quantopian makes no guarantees as to the accuracy or completeness of the views expressed in the website. The views are subject to change, and may have become unreliable for various reasons, including changes in market conditions or economic circumstances.

@ Rich thanks for the response kindly appreciated.

However, that does not seem to make much sense to me. I have just installed the 64-bit version based on what you said and in the command prompt i am using change directory to where I saved the path being:

(C:\Users\Sam\Anaconda2): cd C:\Users\Sam\Anaconda64new

Then after changing directory to the 64-bit location, I am running:

conda install -c quantopian zipline=1.1.0

Yet, still getting the same error:

PackageNotFoundError: Package not found: '' Package missing in current win-32 channels:
- zipline 1.1.0

You can search for packages on anaconda.org with
anaconda search -t conda zipline
*

Any idea what is going on here? Thanks in advance Rich.

It sounds like you're still using win-32 conda. conda info should tell you which conda you're using.

Good luck!

Yes it is still win-32 when I use conda info

Rich,

Any idea how I can upgrade this to win-64? I have downloaded 64 bit version as I mentioned in my previous message. However, why is it that my PC is still reading win-32 and not 64 when I check with conda info? Even though I downloaded 64 today?

Thanks in advance.

Best,

Sam

Hmm, I'm not certain.

Sounds like the win-32 one is still in your path. Probably however you installed it did that - maybe you need to uninstall it first?

-Rich