Quantopian's community platform is shutting down. Please read this post for more information and download your code.
Back to Community
HELP MEEEE

Hey, so I am having trouble with finishing the, for loop in the algorithm. Also the log.info.
The basic premise of the script it to have an evaluated price for a company and if it goes above that it shorts the company, and if it goes below it longs.
from quantopian.algorithm import attach_pipeline, pipeline_output
from quantopian.pipeline import Pipeline
from quantopian.pipeline.data.builtin import USEquityPricing
from quantopian.pipeline.factors import AverageDollarVolume
from quantopian.pipeline.filters.morningstar import Q1500US
import pandas as pd
import numpy as np

security_list = [sid(5061), sid(24), sid(9883), sid(19725), sid(16649)]

def initialize(context):
set_commission(commission.PerShare(cost=0.000, min_trade_cost=0))
context.security_list = [sid(5061), sid(24), sid(9883), sid(19725), sid(16649)]
"""
msf = sid(5061)
AAPL = sid(24)
ATVI = sid(9883)
NVDA = sid(19725)
LOGI = sid(16649)
"""
schedule_function(rebalance,
date_rules.week_start(days_offset=0),
time_rules.market_open())
schedule_function(record_vars,
date_rules.every_day(),
time_rules.market_close())
def compute_weights(context, data):
"""
hist = data.history(sid(24), 'price', 10, '1d')

esta = context.security_list = [sid(5061), sid(24), sid(9883), sid(19725), sid(16649)]  
"""  

context.security_list[0] = '70'  
context.security_list[1] = '150'  
context.security_list[2] = '60'  
context.security_list[3] = '150'  
context.security_list[4] = '36'  

weights =  150 - data.current(sid(24), 'price')  



longp = weights > 0  

shortp = weights < 0  

'''  
normalized_weghts = raw_weights / raw_weights.abs().sum()  

short = data.current(context.security_list, 'price') > context.security_list  

longp = data.current('price').security_list < context.security_list  

short = normalized_weghts.index[normalized_weghts > context.security_list]  

longp = normalized_weghts.index[normalized_weghts < context.security_list]  
'''  
"""  
log.info("This week's longs: " + ", ".join([lon.symbol for lon in longp]))  
log.info("This week's shorts: " + ", ".join([short.symbol for short in shortp]))  

price_10 = hist[-10:]  
price_30 = hist  

sma_10 = price_10.mean()  
sma_30 = price_30.mean()  

raw_weights = (sma_30 - sma_10) / sma_30  

normalized_weights = raw_weights / raw_weights.abs().sum()  

short_secs = normalized_weights.index[normalized_weights < 0]  
long_secs = normalized_weights.index[normalized_weights > 0]

log.info("This week's longs: " + ", ".join([long_.symbol for long_ in long_secs]))  
log.info("This week's shorts: " + ", ".join([short_.symbol for short_ in short_secs]))  

return normalized_weights  
"""  
return longp , shortp

def rebalance(context, data):
compute_weights(context, data)
"""
This function is called according to our schedule_function settings and calls
order_target_percent() on every security in weights.
"""
"""
weights = compute_weights(context, data)

for security in context.security_list:  
    if data.can_trade(security.sid):  
        order_target_percent(security, weights[security])  
"""  
for security in context.security_list:  
    if data.can_trade(security): #and compute_weights(security, security_list.index) > 0:                    <_______________________ problem  
        order_target_percent(context.security_list.index, 0.05)  
        order_target_percent(context.shortp.sid, -0.05)  

""" for security in context.security_list:
if data.current('price').security_list < security.security_list and data.can_trade(security):
order_target_percent(security, 0.05)
elif data.current('price') > context.security_list and data.can_trade(security):
order_target_percent(security, -0.05)
"""
def record_vars(context, data):

longs = shorts = 0
for position in context.portfolio.positions.itervalues():
if position.amount > 0:
longs += 1
elif position.amount < 0:
shorts += 1

# Record our variables.
record(leverage=context.account.leverage, long_count=longs, short_count=shorts)

1 response

Attach a backtest. If you want certain stocks you need to use StaticAssets. Check out my etf rotation strategy and it might help you. Your code is very hard to read, even if your backtest doesn't run, you can still share the backtest.