Hi,
Occasionally I find that after I boght or seld stock the portfolio's status doesn't change. Following is my code:
...
log.info("Before buy: \n%s" %context.portfolio.positions)
order_target_percent(context.stock, 1)
log.info("After buy: \n%s" %context.portfolio.positions)
order_target_percent(context.stock, 0)
log.info("After sell: \n%s" %context.portfolio.positions)
...
After I ran this I got followings:
...
2016-01-05 my_rebalance:59 INFO Before buy:
{Equity(24, symbol=u'AAPL', asset_name=u'APPLE INC', exchange=u'NASDAQ GLOBAL SELECT MARKET', start_date=Timestamp('1993-01-04 00:00:00+0000', tz='UTC'), end_date=Timestamp('2016-05-11 00:00:00+0000', tz='UTC'), first_traded=None, auto_close_date=Timestamp('2016-05-16 00:00:00+0000', tz='UTC')): Position({'last_sale_date': Timestamp('2016-01-04 15:31:00+0000', tz='UTC'), 'amount': 48, 'last_sale_price': 104.20400000000001, 'cost_basis': 103.2608359698442, 'sid': Equity(24, symbol=u'AAPL', asset_name=u'APPLE INC', exchange=u'NASDAQ GLOBAL SELECT MARKET', start_date=Timestamp('1993-01-04 00:00:00+0000', tz='UTC'), end_date=Timestamp('2016-05-11 00:00:00+0000', tz='UTC'), first_traded=None, auto_close_date=Timestamp('2016-05-16 00:00:00+0000', tz='UTC'))})}
2016-01-05 my_rebalance:61 INFO After buy:
{Equity(24, symbol=u'AAPL', asset_name=u'APPLE INC', exchange=u'NASDAQ GLOBAL SELECT MARKET', start_date=Timestamp('1993-01-04 00:00:00+0000', tz='UTC'), end_date=Timestamp('2016-05-11 00:00:00+0000', tz='UTC'), first_traded=None, auto_close_date=Timestamp('2016-05-16 00:00:00+0000', tz='UTC')): Position({'last_sale_date': Timestamp('2016-01-04 15:31:00+0000', tz='UTC'), 'amount': 48, 'last_sale_price': 104.20400000000001, 'cost_basis': 103.2608359698442, 'sid': Equity(24, symbol=u'AAPL', asset_name=u'APPLE INC', exchange=u'NASDAQ GLOBAL SELECT MARKET', start_date=Timestamp('1993-01-04 00:00:00+0000', tz='UTC'), end_date=Timestamp('2016-05-11 00:00:00+0000', tz='UTC'), first_traded=None, auto_close_date=Timestamp('2016-05-16 00:00:00+0000', tz='UTC'))})}
2016-01-05 my_rebalance:63 INFO After sell:
{Equity(24, symbol=u'AAPL', asset_name=u'APPLE INC', exchange=u'NASDAQ GLOBAL SELECT MARKET', start_date=Timestamp('1993-01-04 00:00:00+0000', tz='UTC'), end_date=Timestamp('2016-05-11 00:00:00+0000', tz='UTC'), first_traded=None, auto_close_date=Timestamp('2016-05-16 00:00:00+0000', tz='UTC')): Position({'last_sale_date': Timestamp('2016-01-04 15:31:00+0000', tz='UTC'), 'amount': 48, 'last_sale_price': 104.20400000000001, 'cost_basis': 103.2608359698442, 'sid': Equity(24, symbol=u'AAPL', asset_name=u'APPLE INC', exchange=u'NASDAQ GLOBAL SELECT MARKET', start_date=Timestamp('1993-01-04 00:00:00+0000', tz='UTC'), end_date=Timestamp('2016-05-11 00:00:00+0000', tz='UTC'), first_traded=None, auto_close_date=Timestamp('2016-05-16 00:00:00+0000', tz='UTC'))})}
2016-01-06 my_rebalance:59 INFO Before buy:
{}
2016-01-06 my_rebalance:61 INFO After buy:
{}
2016-01-06 my_rebalance:63 INFO After sell:
{}
End of logs.
One can see on the action day 2016-01-05 there is no any change in the portfolio. One day later the status of the portfolio is changed (no stock). Why?
See my attached algo.