Hey guys, I updated my algorithm and it is making a pretty steady amount of money. I am also seeing that my returns are suffering a bit but this is in contrast to the money I am making. I want to know if this is an 'illegal' algorithm in the sense that it is using money I don't have or it is having false success. Thanks.
def initialize(context):
set_slippage(slippage.FixedSlippage(spread=.05))
set_commission(commission.PerTrade(cost=7))
context.jblu = sid(23599)
context.dal = sid(33729)
context.luv = sid(4589)
context.ual = sid(28051)
context.max_notional = 100000.1
context.min_notional = -100000.0
def handle_data(context, data):
record(Cash=context.portfolio.cash)
pavg = ((((data[context.jblu].close_price)-(data[context.jblu].open_price))/(data[context.jblu].open_price))*100)
pavg2 = ((((data[context.dal].close_price)-(data[context.dal].open_price))/(data[context.dal].open_price))*100)
pavg3 = ((((data[context.luv].close_price)-(data[context.luv].open_price))/(data[context.luv].open_price))*100)
pavg4 = ((((data[context.ual].close_price)-(data[context.ual].open_price))/(data[context.ual].open_price))*100)
price = ((((data[context.jblu].close_price)-(data[context.jblu].open_price))/data[context.jblu].open_price)*100)
average = ((pavg + pavg2 + pavg3 + pavg4)/4)
notional = context.portfolio.positions[context.jblu].amount * price
if price < (average) and notional > context.min_notional:
message = context.portfolio.positions[context.jblu].amount
log.info(message)
message = context.portfolio.cash
log.info(message)
message = 'Buy'
log.info(message)
order(context.jblu, -10)
elif price >= (average) and context.portfolio.positions[context.jblu].amount > 1 and notional < context.max_notional:
message = context.portfolio.positions[context.jblu].amount
log.info(message)
message = context.portfolio.cash
log.info(message)
message = 'Sell'
log.info(message)
order(context.jblu, +10)