I cant figure out why my algo is printing
True
instead of value in the
volume10m
column
# The pipeline API requires imports.
from quantopian.pipeline import Pipeline
from quantopian.pipeline import CustomFactor
from quantopian.algorithm import attach_pipeline, pipeline_output
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.factors import SimpleMovingAverage
class Volume10m(CustomFactor):
inputs = [USEquityPricing.volume]
window_length = 1
def compute(self, today, assets, out, volume):
out[:] = volume[-1]
def initialize(context):
#Created and attached pipeline
pipe = Pipeline()
pipe = attach_pipeline(pipe, name = 'my_pipeline')
#Construct Factors
sma_10 = SimpleMovingAverage(inputs = [USEquityPricing.close], window_length = 10)
sma_30 = SimpleMovingAverage(inputs = [USEquityPricing.close], window_length = 30)
#Construct Filters
prices_under_5 = (sma_10 < 5)
volume = Volume10m()
volume_over10m = (volume > 10**5)
#Register outputs
pipe.add(sma_10, 'sma_10')
pipe.add(sma_30, 'sma_30')
pipe.add(volume_over10m, 'volume10m')
#Filter results
pipe.set_screen(prices_under_5 | volume_over10m)
def before_trading_start(context, data):
results = pipeline_output('my_pipeline')
print(results)
context.pipeline_results = results
results
2016-11-17 14:45 PRINT sma_10 sma_30 volume10m
Equity(2 [ARNC]) 18.303746 24.016357 True
Equity(21 [AAME]) 3.844500 3.803600 False
Equity(24 [AAPL]) 109.009000 113.087645 True
Equity(62 [ABT]) 39.692000 40.322579 True
Equity(64 [ABX]) 16.478000 16.546933 True
Equity(67 [ADSK]) 72.790000 71.469000 True
Equity(114 [ADBE]) 105.621000 107.300333 True
Equity(117 [AEY]) 1.777400 1.812033 False
Equity(122 [ADI]) 65.357900 63.799933 True
Equity(128 [ADM]) 44.959296 43.493178 True
Equity(154 [AEM]) 47.264000 47.694733 True
Equity(157 [AEG]) 4.761000 4.401133 True
Equity(161 [AEP]) 60.820577 61.776241 True
Equity(166 [AES]) 11.755000 11.715495 True
Equity(168 [AET]) 116.200000 112.342958 True
Equity(185 [AFL]) 70.823206 70.123038 True
Equity(216 [HES]) 48.441000 ...