I think it makes sense to have broker.getvalues(datas=None) to get all the position values plus the cash.
But it is very confusing to have broker.getvalues([datas[j]]) return all the next position values from ticker j plus all the cash in the broker?
IMHO, it is better designed in the way such coherence is expected that all_the_cash_in_the_broker + sum([broker.get_values(datas=[d]) for d in datas) == broker.get_values()