Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
Using Bollinger Bands with Pipeline to detect strong reaction to earnings

This is a variation of https://www.quantopian.com/posts/post-earnings-drift-trading-strategy-with-estimize-pead.
I am not sure if code in my custom Bollinger Bands factors is correct:

class BbUpper(CustomFactor):  
    inputs = (USEquityPricing.close,)  
    window_length = 20

    def compute(self, today, assets, out, closes):  
        out[:] = np.nanmean(closes, axis=0) + 2 * np.nanstd(closes, axis=0)  
class BbLower(CustomFactor):  
    inputs = (USEquityPricing.close,)  
    window_length = 20

    def compute(self, today, assets, out, closes):  
        out[:] = np.nanmean(closes, axis=0) - 2 * np.nanstd(closes, axis=0)

class BbMiddle(CustomFactor):  
    inputs = (USEquityPricing.close,)  
    window_length = 20

    def compute(self, today, assets, out, closes):  
        out[:] = np.nanmean(closes, axis=0)

I am not sure if I implemented selling logic correctly:

    for security in context.portfolio.positions:  
        if security in context.sell:  
            order_target_percent(security, 0)