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,
)