同学,你可能没有理解subportfolio--子账户信息这个对象的意义。
默认情况只有一个子账户!!!
子账户信息的业务意义是你购买股票的账户信息,包含里面的账户类型,累计出入金,可用资金,总资产,多单仓位,空单仓位等。它和股票池中的股票数量没有直接联系。
如果你仅仅只想查询账户可用资金,还是 log.info(context.subportfolios[0].available_cash)
如果你想查询可用买卖股票的持仓信息,需要采用long_positions多单仓位以及position对象,示例如下:
long_positions_dict = context.subportfolios[0].long_positions
for position in list(long_positions_dict.values()):
print("标的:{0},总仓位:{1},标的价值:{2}".format(position.security, position.total_amount, position.value))
print("持仓价值:{0}".format(context.subportfolios[0].positions_value))
print("总资产:{0}".format(context.subportfolios[0].total_value))