Try this:
from quantopian.algorithm import attach_pipeline, pipeline_output
from quantopian.pipeline import Pipeline
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.factors import AverageDollarVolume
def initialize(context):
pipe = Pipeline()
attach_pipeline(pipe, name='my_pipeline')
dollar_volume = AverageDollarVolume(window_length=30)
pipe.add(dollar_volume, 'dollar_volume')
high_dollar_volume = dollar_volume.percentile_between(99, 100)
pipe.set_screen(high_dollar_volume)
context.securities = None
def before_trading_start(context, data):
results = pipeline_output('my_pipeline').index
context.pipeline_results = results
context.securities = results
def handle_data(context,data):
cash = context.portfolio.cash
for s in context.securities:
context.price = data.current(s,'price')
number_of_positions_possible = int((cash/len(context.securities))/context.price)
ma1 = data[s].mavg(30)
ma2 = data[s].mavg(60)
if ma1>ma2 and sid not in context.portfolio.positions:
order(s, number_of_positions_possible)
elif ma1<ma2 and sid not in context.portfolio.positions:
order(s, -number_of_positions_possible)