Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
help w/ error - ValueError: Cannot convert NA to integer There was a runtime error on line 72.

When I run this code, with a start date of 1/1/2015, I eventually get the error:

ValueError: Cannot convert NA to integer There was a runtime error on line 72.

Any ideas?

# https://www.quantopian.com/posts/stat-arb-11-year-backtest-notebook

from quantopian.algorithm import attach_pipeline, pipeline_output, order_optimal_portfolio  
from quantopian.pipeline import Pipeline  
from quantopian.pipeline.factors import SimpleBeta  
import quantopian.optimize as opt  
from quantopian.pipeline.filters import QTradableStocksUS

import numpy as np  
import pandas as pd

def make_pipeline():  
    universe = QTradableStocksUS()  
    beta = SimpleBeta(target=sid(8554),regression_length=260,  
                      allowed_missing_percentage=1.0  
                     )

    pipe = Pipeline(columns = {  
        'beta':beta,  
    },  
    screen = universe  
                   )  
    return pipe

def initialize(context):

    attach_pipeline(make_pipeline(), 'long_short_equity_template')

    # Schedule my rebalance function  
    schedule_function(func=rebalance,  
                      date_rule=date_rules.every_day(),  
                      time_rule=time_rules.market_open(minutes=60),  
                      half_days=True)  
    # record my portfolio variables at the end of day  
    schedule_function(func=recording_statements,  
                      date_rule=date_rules.every_day(),  
                      time_rule=time_rules.market_close(),  
                      half_days=True)  
    # comment out lines below for realistic backtesting  
    set_commission(commission.PerShare(cost=0, min_trade_cost=0))  
    set_slippage(slippage.FixedSlippage(spread=0))  
def before_trading_start(context, data):

    context.pipeline_data = pipeline_output('long_short_equity_template')

def recording_statements(context, data):  
    num_positions=len(context.portfolio.positions)

    record(num_positions=num_positions)  
    record(excess_positions=num_positions-context.num_stocks)  
    record(leverage=context.account.leverage)

def rebalance(context, data):  
    pipeline_data = context.pipeline_data  
    num_stocks = pipeline_data.beta.size  
    context.num_stocks = num_stocks  
    w = 1.0*np.ones(num_stocks)/num_stocks  
    weights = pd.Series(w,index=pipeline_data.beta.keys())  
    objective = opt.TargetWeights(weights)  
    constraints = []  
    order_optimal_portfolio(  
                objective=objective,  
                constraints=constraints,  
                )  
4 responses

The values this time instead of all 0 are all 0.00046992481203,

Thanks...I've pinged Q support. It would seem to deserve a help ticket.

Any response?