Hi all, I am new to python and what's wrong with my below code inside the "my rebalance"?
from quantopian.algorithm import attach_pipeline, pipeline_output
from quantopian.pipeline import Pipeline
from quantopian.pipeline import CustomFactor
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.factors import AverageDollarVolume, SimpleMovingAverage, RSI
from quantopian.pipeline import CustomFactor
import talib
import math
import numpy as np
import pandas as pd
import statsmodels.api as sm
def make_pipeline():
pipe = Pipeline()
return pipe
def before_trading_start(context, data):
context.output = pipeline_output('my_pipeline')
context.security_listF = {}
context.vix = context.output["VixClose"].iloc[0]
context.can_trade = 0
context.security_list = [symbol('MMM'),symbol('AXP'),symbol('AAPL'),symbol('BA'),symbol('CAT'),symbol('CVX'),symbol('CSCO'),symbol('KO'),symbol('DIS'),symbol('DD'),symbol('XOM'),symbol('GE'),symbol('GS'),symbol('HD'),symbol('IBM'),symbol('INTC'),symbol('JNJ'),symbol('JPM'),symbol('MCD'),symbol('MRK'),symbol('MSFT'),symbol('NKE'),symbol('PFE'),symbol('PG'),symbol('TRV'),symbol('UTX'),symbol('UNH'),symbol('VZ'),symbol('V'),symbol('WMT')]
def my_rebalance(context,data):
high1 = data.history(context.security_list,'high',20,'1d')
close1 = data.history(context.security_list,'close',20,'1d')
ma = close1.mean()
highest1 = max(high1)
y1 = close1 - highest1 - ma
high2 = data.history(context.security_list,'high',21,'1d')[:-1]
close2 = data.history(context.security_list,'close',21,'1d')[:-1]
ma2 = close2.mean()
highest2 = max(high2)
y2 = close2 -highest2 - ma2
val1 = sm.OLS(y1, 20).fit.params[0]
val2 = sm.OLS(y2, 20).fit.params[0]