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