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.