I have read the quantopian example and build below code. "context.hold[s]" is zero after buy. However, it disappears afterwards.
What is the problem??
def my_rebalance(context,data):
op = data.history(context.security_list,'open',2,'1d')
cl = data.history(context.security_list,'price',2,'1d')
for s in context.portfolio.positions:
op = data.history(s,'open',2,'1d')
cl = data.history(s,'price',2,'1d')
if context.hold.get(s) is not None:
print context.hold[s]
context.hold[s] += 1
if context.hold[s] == 1 and cl[-2] < op[-2]:
order_target(s,0)
del context.hold[s]
elif context.hold[s] > 1:
del context.hold[s]
for s in context.security_list:
if context.vix <= context.vl:
#print s.symbol
context.security_listF[s] = s
MAX_LEVERAGE = calc_leverage(context.portfolio.cash)
context.pctx = diversify(context,data,context.security_listF,MAX_LEVERAGE)
if context.pctx == 0:
return
for s in context.security_listF:
cp = data.current(s,'price')
if s not in context.portfolio.positions and s not in get_open_orders():
#if context.portfolio.cash > 0:
if data.can_trade(s):
#shares = context.portfolio.portfolio_value * context.pctx / cp
order_target_percent(s,context.pctx,style=MarketOrder())
if context.hold.get(s) is None:
context.hold[s] = 0