Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Custom Factor Volume printing True instead of value

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   ...  
1 response

volume_over10m is a filter so it has a value of True or False. You are implicitly creating a filter when you compare (volume > 10**5).